9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

知ってた?話が噛み合わない理由は、たった1つ。

はじめに

話が噛み合わなかった経験、ない人いますか?
いませんよね?いたら連絡ください。

では、話が噛み合わない本当の理由を知ってますか?
実は知識の違いでも、前提の違いでも、話の組み立て方でも整理不足でも話を聞かないわけでも思い込みが激しいわけでもなく、抽象度の違いです。

抽象度を合わせることができれば、どんな人とも話を噛み合わせることができます。

そしてエンジニアは、抽象度を操ることでコンピュータとの対話をコントロールします。

『文章題で身に付くプログラミング思考入門️』は、日常や文章問題からプログラミング思考を身に付けていく、簡単で身近で、あなたをちょっと輝かせてくれるシリーズです。

今回は抽象度についてお話ししていきましょう。

対象者

  • プログラミングを学びたい人
  • プログラミングに挫折したことのある人
  • 論理的思考を鍛えたい人
  • 文系の人
  • エンジニアの思考を理解したい人

概要

ところで、国語のテストでバツをもらって、納得いかなかったことはありませんか?
それも、抽象度の違いが原因なんですね。

例えば、夏目漱石『吾輩は猫である』の冒頭部分から借りてきましょう。

吾輩は猫である。名前はまだ無い。
どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。

さて、問題です。

①「吾輩」は 何と 泣いていたでしょうか?

答えは

  • ニャーニャー

ですね。

②「吾輩」は どんな所 で泣いていたでしょうか?

  • じめじめした所
  • 薄暗い所
  • 薄暗いじめじめした所
  • じめじめした薄暗い所

文脈的には、どれも正しいですよね。
ただし、これがテストだったら、どれも正解なんてことはないでしょう。
だって、テストは『正答とあなたの回答が同じであれば正解』ですから。
厳格なルールがあります。正答と同じ答えを出さないといけません。

では、なぜ①ではたった一つの答えが導けたのでしょうか?

①「吾輩」は 何と 泣いていたでしょうか?

そうです、質問が明確だったからです。
別の言い方をすると、あなたの中で、答えるべき内容が明確に特定できたからです。

逆に、どんな所?と聞かれたときは、イメージの細かさが人によって変わってきます。

②「吾輩」は どんな所 で泣いていたでしょうか?

人は、あらゆる情報をイメージで理解しています。
ですから、曖昧な質問は、イメージの抽象度を曖昧にするので、答えを曖昧にします。
逆に言えば、何が知りたいのかを明確に定義すれば、明確な答えを得ることができます。

質問と答えの明確さを揃えましょう。これがプログラミングの本質です。

日常会話でも、情報の明確さ・曖昧さを相手と合わせることがコミュニケーションの助けになります。
知らない概念が出てくれば、聞き返せば良いのです。自分が理解できる抽象度で「例えば・つまり、こういうことですか?」と聞いてみましょう。
言いたいことがわかってもらえないのなら、相手の経験に例えて伝えてみましょう。イメージ化に成功すれば、伝わります。

諦める必要はありません。重要なのは、相手を理解しようとする姿勢です。
その姿勢が伝われば、相手はあなたと向き合ってくれます。
そして、人でもコンピュータでも同じ。やりとりする情報を、相手の抽象度に合わせることです。

では試しにやってみましょうか。
②をどのように変えたら、「吾輩」が泣いていた場所について明確な答えが得られるでしょうか?

②「吾輩」は どんな所 で泣いていたでしょうか?

例えば、私はこのように変えてみました。

②「吾輩」は、どのような暗さの所で泣いていたでしょうか?
②「吾輩」が泣いていたのは、からっとした所でしたか?それともじめじめした所でしたか?

どうですか?さっきよりもずっと明確に答えられそうですね。

質問と答えの明確さを揃える。
これができるようになれば、プログラミングのコードが書けます。

よく日本語は難しい言語だと言われますが、そのおかげで、日本語を話す私たちは曖昧を理解して意味を特定するトレーニングを日常的に行っています。

要するに、曖昧さを明確にできる能力を既に持っているのです。

質問の曖昧さに気づいたあなたは素晴らしい。
すでにプログラマーの素養があります。

質問を明確にする大切さを知ったあなたは素晴らしい。
このシリーズを読み終わる頃には、プログラミングの基本を習得しているでしょう。

次回は、なぜプログラミング思考力に文章題が有効なのかについて解説します。

まとめ

  • エンジニアは、抽象度を操ることでコンピュータとの対話をコントロールします。
  • 質問と答えの明確さを揃えましょう。これがプログラミングの本質です。
  • 日本語を話す私たちは、曖昧さを明確にできる能力を既に持っているのです。

最後に

ここまで読んでくださってありがとうございます!
ちょっとでも役に立ったら「いいね」をください。続ける励みになります。
あと、初めてQiita Advent Calendarに参加してみてます。よくわからないです。ぬいぐるみ欲しいです。
どうしたらいいんでしょうか。これで合ってますか?
知ってる方、コメントで教えてください。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?