プログラマー脳~優れたプログラマーになるための認知科学に基づくアプローチ を読んだ感想と個人的見解
はじめに
プログラマー脳を1月の旅行中に読んだので、その感想を書く。
概要
基本的に脳科学的な観点で、コードが複雑に感じるのはなぜか・複雑に感じた場合どう解決していくか、を考えられるケースごとにまとめてくれている。
前提として、コードを理解するにあたって、
- 長期記憶: 書かれている言語・フレームワークの文法・使い方を引き出す
- 短期記憶: 読んでいる箇所に存在する変数やメソッドの型や名前を引き出す
- ワーキングメモリ: 長期記憶・短期記憶から引き出したものから、現在読んでいる箇所が何をしているのかを理解する
三つの脳の役割が大事になる。長期記憶が十分でないと、毎度Googleで検索して内容を記憶する際に短期記憶を使ってしまい効率が落ちたり、一方で短期記憶が十分でないと、毎度変数やメソッドを見に行かないといけなくなったりする。その結果、処理の理解に時間がかかる。
結果的にワーキングメモリに負担をかけすぎない、つまり認知負荷を下げるように努めるのが大事。具体的には、メソッドをわかりやすい名前かつ単一責任の原則を守って、あくまで一つの役割をメソッドとしてまとめる、ということをやっていく必要がある。
あとは、
- 別言語を触るにあたって気の持ちよう(メンタルモデル)を変える (概念的には同じでも、記法は違ったりするので)
- 記憶として定着させるには、反復が大事
など、あくまで無意識に皆している・していたことを脳科学的に説明してくれている。
感想
総じて、読み物として面白かった。
大学時代必死にC言語を勉強して、変数・メソッド・配列・ポインタ..etcの概念を理解したから、長期記憶の部分が今いかせており、またメソッドの引数の数や変数の名前を詰め込みすぎず、明確な名前にすることで、短期記憶が働くようにできているのかなと。
単位のためとはいえ、なんだかんだで苦しんで覚えたC言語が今の礎になっているのは間違いないので、その点は同意。
逆に、今新しい技術スタックを触ることも増えているので、その時にどう取り組んでいたかを思い出して(マインドだけでも)実行していくのが、実は身に付く一番早い方法と思うので、仕事が忙しい等あるが毎日仕事以外でもきっちり決められた時間をとってコードを書いている。
できるだけ早く、長期記憶から引き出せるスピードと幅を上げるために、日々精進します