モニクル Advent Calendar 2024 10日目の記事です。
はじめに
この記事は、「プログラマー脳」という本を読んだ感想文です。
今年読んだ本の中で一番面白いと感じたので、ぜひこの本をまだ読んでいない方におすすめしたくて書きました。
どんな本?
この本は、プログラミングの認知プロセスについて解説した本です。
簡単に言えば、人がプログラムを読んだり書いたりする際に、どのようなプロセスを経て理解しているのかを、研究事例を交えながら解説しています。
どんな人におすすめの本?
プログラミングの認知プロセスを知りたい方や、これを活用して効率的にプログラミングスキルを向上させたい方におすすめの本です。
例えば、新しいプログラミング言語を学ぶときや、慣れていないコードベースで開発するとき、最初は環境に慣れるまで苦労します。この本では、「なぜ大変に感じるのか」「どのように理解を深めていくのか」といった認知プロセスを詳しく解説しています。
認知プロセスを知ることで、効率的な学習方法やアプローチを見つけるヒントを得られます。
この本を特におすすめしたいのは次のような方です。
- プログラミングの認知プロセスを学びたい
- プログラミング言語の文法を効率的に習得したい
- 慣れていないコードベースを素早く理解できるようになりたい
どんなことが書かれてる?
特に印象深かったトピック4つ紹介します。
- 文法を完璧に覚えていなくても、インターネットで調べればいいだけではない
- 潜在記憶
- フラッシュカード
- 専門知識の呪い
1. 文法を完璧に覚えていなくても、インターネットで調べればいいだけではない
記憶している知識が、いかに効率よくコードを読み解く能力に影響するかが書かれています。
私自身、「覚えなくても調べればいい」と思いがちなので、非常に刺さる内容でした。
脳の記憶システムは「長期記憶」「短期記憶」「ワーキングメモリ」の3つで構成されています。効率よくコードを理解するには、これらをうまく使う必要があります。
ただし、ネットで簡単に調べられることは記憶に残りにくく、結果として毎回同じことを調べる手間がかかります。このような状況が続くと、コードを効率よく理解する力は育ちません。
2. 潜在記憶
潜在記憶とは、意識しなくても自然にできるスキルや知識を指します。たとえば、自転車に乗るときに「右足を動かして…」と考える人はいません。このような記憶がプログラミングにも応用できます。
潜在記憶を増やすことで、コードの読み書きをより効率的に行えるようになります。無意識的にできることが増えると、記憶を管理する仕組みへの負荷が軽減されるためです。
3. フラッシュカード
フラッシュカードは、英単語の暗記カードのような方法です。表にタイトル、裏に記憶したい内容を書き、繰り返し学習します。
本書では、「効率よくコードを読み書きすること」と「効率よく記憶を管理すること」が密接に関係していると説明されています。そのため、フラッシュカードを使った学習が効果的であると感じました。
4. 専門知識の呪い
専門知識の呪いとは、知識やスキルを習得する過程の苦労を忘れてしまう現象です。たとえば、新人へのオンボーディングで、教える側には明白なことが、学ぶ側にとってはそうではない場合があります。
効果的なオンボーディングを行うには、認知プロセスの知識が役立ちます。
おわりに
本書は、プログラミングの認知プロセスについてまとまっており、あれ、普段どうやってコードの読み書きしてるんだっけ?を見直す機会になったいい本でした。
特に3章〜5章、10章と13章は興味深いトピックが多かったので、忘れたころにまた読み返そうと思います。
- プログラミング言語の文法を素早く習得する方法(3章)
- 複雑なコードの読み方(4章)
- コードの深い理解に到達する(5章)
- 複雑な問題をより上手に解決するために(10章)
- 新しい開発者のオンボーディング(13章)