Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

子どもの話し方とプログラムの読みやすさの共通点

f:id:tbpg:20160612232559j:plain

私はソフトウェア開発者です。
そして私には3人の娘がいます。今回は小学1年生の長女の話。

長女の話し方はお題が不明確で、しかも一文が長いという特徴がありました。
とはいえ、まだ小学1年生ですし、始まったばかりの小学校生活を必至に伝えている
ところに話し方の悪さを指摘するのもなー、と思い学校の生活が安定するまではそのままにしておきました。

GWも終わり学校にも大分なれてきたし、そろそろこの点に関してアドバイスする時期かな、
ということで今日アドバイスをしました。その内容と共有するとともに「これってプログラムにも通じる話だな」
と感じたのでその点をまとめます。

長女へのアドバイ

1. 不明確さの再現

お題を伝えずに読点がずっと続いてながーい一文になるように話をして
分かりにくい話し方の見本をみせます。

2. お題を伝えることを教える

今度は最初に何の話か伝えることについて説明し、実演してみせました。
ながーい一文の説明のままにしてありますが、お題がわかっているためかなり理解しやすくなったようです。

3. 長い文を細かく分解する

ながーい文章を最低限の小さい文章に分割して伝えた方がわかりやすいんだよ、という説明をし、実演してみせました。
長女はわかりやすさに感動しています。

4. 実践

今日は私と長女・次女でお出かけしていて、その帰りにこの話をしていたので
『今日あったことをママに分かりやすく伝える』
というテーマで長女にわかりやすい話し方を実践してもらいました。
うまくできるたびに褒めます。本当に抜群に分かりやすくなってるので心から褒めることができました。

5. 本番

帰宅後、ママに報告する長女。
各お題ごとに話す内容の概要を最初に伝えています。
その上で、文章を短く切って分かりやすく伝えています。
とても分かりやすく伝わり、ママに褒めてもらいご満悦の長女です。

プログラムの読みやすさとの会話のわかりやすさの共通点

プログラム

わかりやすい名前がついていなかったり、そもそも関数化されていない(名前がない)と
処理の出だしの段階で処理内容を把握するのは困難です。
注意して処理内容全体を見る必要があります。

延々と続く長い処理。
その内容を理解する難易度は長くなればなるほど上がります。

逆に最小単位で関数化されて、わかりやすい名前(=見出し)がついている場合、
その見出しだけでもおおまかな内容を把握できます。
またその見出し内の処理も見出し名と中身の短さのため把握が容易になります。

会話

お題の説明がわかりにくかったり、お題の説明がないと
会話の出だしの段階でその会話で伝えたいことを把握するのは困難です。
注意して会話全体をきく必要があります。

延々と1文で途切れなく続く説明。
その内容を理解する難易度は長くなればなるほど上がります。

逆に最小単位に分割されて、別れた文章ごとの概要が付いている場合、
その概要だけでもおおまかな内容を把握できます。
またその各概要ごとの話の中身も概要があることと、その中身の話自体の短さのため把握が容易になります。

まとめ

  • わかりやすいお題(命名)
  • 短い文章(処理)

これだけでもプログラム、会話のわかりやすさは格段に違うなということを再認識できました。
長女よ、ありがとう。