プログラミングとは...
- 抽象化し
- 要素を分解し
- 論理に置き換える
という3つのステップが必要になる(と個人的には思っている)。実は、こういう能力は、日常の中で無意識に使っている人と使っていない人で差が出てくる、というのを妻との会話で気がついた。何気ない日常の行動の中で、プログラミング的な思考をしている自分と、そうでない妻との話を簡単にまとめてみます。
非プログラミング的な記憶と行動
なかなか道を覚えない妻
3月に引越したのだが、ある日妻が車の運転をする際に「未だに道が良くわからない」「どっち行ったら良いの?」と言われ驚愕した。何度も私の運転する車の助手席に乗って、見ているのにも関わらずである。
妻はどうやって道を覚えるのか?
色々とヒアリングした結果、以下のように道を覚えるらしい
- 1度カーナビや他人にナビしてもらいながら運転をする
- 曲がるポイントや、道の風景画像を記憶する
- 過去の運転した画像記憶や、運動記憶を参照する
- 上記を繰り返す事で、画像と画像の位置関係をマッピングする
ということらしい。なので、妻に「道順を教えて」というと、覚えた画像を説明されるのである。
妻の頭の中
昔住んでいた金沢文庫→海の公園のルートの記憶方法はこんな具合らしい
他にも、学生時代のテストの問題の解き方を聴くと「教科書が頭の中にあって、それを読んで対応した」と言っている。圧倒的に画像記憶である。
どちらかと言うとプログラミング的な記憶と行動
自分の道の覚え方
- ざっくり、大きな道路と、スタート地点、ゴール地点の位置関係を抽象化する
- 以下の3つに分類する
- スタート地点→大きな道への移動
- 大きな道→ゴール付近の大きな道の移動
- ゴール付近の移動
- 重要なポイントでの論理を覚える
- 例:踏切を超えた次の交差点を右折
- 例:○○の看板が見えたら左折
- 例:まっすぐ突き当りを左折
昔住んでいた金沢文庫→海の公園のルートの記憶方法はこんな具合に脳内に記憶される
※曲がるポイント注意の所に具体的なロジックを入れていく。(緑の道が見えたら曲がる、まっすぐ行ってローソンが有る道なら正解、等)
脳の使い方は人それぞれで得手不得手がある
前述した、記憶の方法、実はどちらも利点欠点有り、また人それぞれだと思う。が、少なくともプログラミングをする上で画像記憶術に頼っているとプログラミングという点では余り強さを発揮しないと思われる。実際問題妻はプログラミング等はそこまで得意ではなく、エクセルの関数の作り方等でたまに助けを求めてくる。
一方で、自分は画像記憶などは弱く、絵を書いたりするのが苦手。絵のバランスが崩れていても違和感を感じないのだ。
自分の脳の使いやすい筋肉は本当にプログラマー向きか?
いずれにせよ、脳の使い方は誰かに教わったわけでもなく、意識してやっているわけでもなく、なんとなく「自分流」なのだ。その結果、不向きな仕事の選択をした場合、普段使わない"脳の筋肉"を使うことになり、苦痛を感じてしまうことは容易に想像が付く。
例えば子供にプログラミングを教える場合、プログラマーを目指すというキャリア選択をする前に、普段どんな脳の使い方をしているのか、例えば道を覚えるといった日常の作業を言語化し、自分の脳の筋力がプログラマー向きか把握しておいても良いかもしれない。