本サイトは広告・プロモーションが含まれています
開発プラクティス

【読書感想文】「プログラマー脳 優れたプログラマーになるための認知科学に基づくアプローチ」


綺麗なコーディングをしたいな〜と思いつつも、部屋のソファーでダラダラ。
そんな時期が今年も829回目。焼肉食べたい。

アマゾンで、「これを読めば最強プログラマー(ムキムキ)」みたいな本がないかとスマホぽちぽち。

そんな中見つけたのが
「プログラマー脳 優れたプログラマーになるための認知科学に基づくアプローチ」という本。


いろんな人がこの本の内容を要約したり一部抜粋してるし、めっちゃ気になりました。


じゃあ私も読んでみたい。と思って購入。
だいたい250ページで、仕事前と終わりに読み進めて1週間ほどで読み終わりました。

感想:大満足じゃ〜

ってことで感想文を備忘録的に書かせてもらいます。

どんな本?

「プログラマー脳」は、Felienne Hermansさんというプログラミング教育と認知科学の専門家が書かれた本で、日本語版が2023年の2月に出版されました。

認知科学という確かな土台の上に、コード読解、学習戦略、集中力の維持、チーム内コミュニケーション、そして人材育成といった、プログラマーが日々直面する課題への具体的かつ実践的な解決策が提示してくています。

正直、プログラミングだけに通ずる話じゃないなと思うので、プログラミングやらない人でも読んでもらいたい本だと思います。

この本は、こんな人にオススメ

・エクセルマクロでも市民開発Pythonでもなんでもプログラム書いている方。
・チームでプログラマーを育成している方
・技術習得しようとしている方(スポーツや芸術やゲーム等なんでも)

本書から得られた知見

チャンク化とは?「プログラマー脳」に学ぶ短期記憶の克服法

本書の大きな特徴の一つが、プログラマーの時間の多くがコードを書くことよりも「読むこと」に費やされているという事実に注目している点です。なので本書ではコードを効率的に、かつ深く理解するための方法論を提示してくれています。

例えば第2章「コードを速読する」では、短期記憶の限界を克服するための「チャンク」の重要性が語られます。チャンクとはデータや情報を小さな単位にまとめたもので、チャンクを使って物事を考えることが、脳の負荷に大きく影響するそうです。

例えば8文字のアルファベットをお「tpaxfada」のような8文字を1分で覚えて、と言われるよりも「baseball」を1分で覚えて、と言われた方が楽ですよね。みたいな。

同じことがプログラミングでも言えて、経験や知識がコードの読解速度にどう影響するかが明確に理解できました。

新しい情報を覚える際、脳は情報をチャンクと呼ばれる認識可能な塊に分割しようとします。長期記憶に十分な関連情報があれば、(中略)抽象的な概念として記憶できるため、必要な短期記憶の容量も少なくて済みます

プログラマー脳 優れたプログラマーになるための認知科学に基づくアプローチ Felienne Hermansら p39

プログラミング文法は暗記不要?「プログラマー脳」が示す記憶の重要性

これは私の反省も踏まえた内容なのですが、少し前の私は正直プログラミングの文法はあんまり覚えなくてもいいと思っていました。

最近は生成AIですぐ教えてくれるし、生成AIが流行る前もググればいいかって思ってました。

しかし、「プログラマー脳」はこの考えに警鐘を鳴らしてました。第3章「プログラミング言語の文法を素早く習得する方法」では、文法知識が長期記憶にしっかりと定着していることのメリットが強調されています。

プログラミングに関する概念、データ構造、文法を知っていればいるほど、より多くのコードを簡単にチャンク化でき、その結果、より多くの情報を記憶し、処理することができるようになります。

プログラマー脳 優れたプログラマーになるための認知科学に基づくアプローチ Felienne Hermansら p42

さらに、情報を検索するという行為自体が「割り込み」となり、生産性を著しく低下させるらしいです。

僕もエラー内容について調べていると、いつのまにか大谷翔平のニュース記事を読んでいる時が多々あります。

文法を積極的に記憶し、検索の頻度を減らすことが、結果として思考の流れを維持し、深い集中と思考を可能にするそうです。

情報を検索するためにWebブラウザを開くと、メールをチェックしたり、ちょっとしたニュースを読んだりといった、今やっている仕事とは関係ない作業をしてしまうかもしれません。また、情報を探している最中に、プログラミング関連サイトでの議論ややりとりを見て、それに夢中になってしまう可能性もあります。

プログラマー脳 優れたプログラマーになるための認知科学に基づくアプローチ Felienne Hermansら p42

集中が途切れたら?「プログラマー脳」流、プログラミング中断対策

仕事ではよくあるのですが、コーディング中に話かけられたり、メッセージを読むのって嫌ですよね。

「プログラマー脳」の第11章「コードを書くという行為」では、この「中断されるプログラマー」というテーマに深く切り込み 、その影響を最小限に抑えるため戦略を提示してくれています。

特に、「割り込みに備えるためのよい方法」として紹介されている、作業再開の手がかりを外部化するアプローチは実践的で良い感じだと思いました。

例えば自分だったら「自分が何をしていたのか、次は何をするつもりだったのかを書き留めておく」ことや、「下位目標のラベルづけ」として「コードの該当箇所にコメントとして『TODO:~』や『FIXME:~』といったラベルを残す」といったことを話しかけられたらやってみようかなって思いました。

能力の「育ち方」のヒント、自分にもチームにも使えそう!

「プログラマー脳」では、主に新しいメンバーの「オンボーディングプロセス」、つまり新人教育の話がたくさん出てきます。

しかし内容は、ピアジェの認知発達理論にも触れながら、人がどういうステップで物事を理解し、アウトプットが上達するのかを説明するという面白い内容です。題材が新人プログラマーの成長過程の話でしたが、自分が新しいことを学ぶときにも「今、自分はこの段階かな?」って客観的に見るのに役立ちそうだと思いました。

少し話を広げると、この本に書かれている内容は、プログラミング以外の分野、例えばスポーツでも楽器でも、何か新しいことを始めるときの心構えとか、どうやってステップアップしていくかのヒントがたくさん詰まってるなと感じました。

技術習得一般に役立つ視点が得られて非常に満足な一冊でした。

まとめ


というわけで、ダラダラしがちな私が珍しく(?)一気に読み終えてしまった「プログラマー脳」、巷の評判通り良い本でした!大満足です。

この本を読んだ直接的な効果として、「あー、もっとちゃんとデザインパターンとかデータ構造とか勉強し直したいな…」っていう、向学心がムクムクと湧いてきました。

本書で語られる「チャンク化」とか「長期記憶の活用」って、基礎的な知識や概念の理解が深ければ深いほど効果を発揮するんだなって痛感しました。小手先のテクニックじゃなくて、もっと根本からプログラミングという行為を見つめ直すきっかけをもらいました。

正直、「これを読めば明日からコードが爆速で書ける!」みたいな魔法の本ではないです。でも、自分がどうやってコードを読んで、どうやって新しいことを覚えて、どうやって問題解決してるのか、その「自分の脳のクセ」みたいなものを知ることで、日々のプログラミングや学習が、もっと効率的に、そして何より「楽しく」なるヒントがたくさん詰まっています。

プログラムを書くすべての人に、心からおすすめしたい本です。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA