はじめに
この記事では、「プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ」に記載されているコードを読むときに発生する3つの混乱とコードを読むことに影響を与える3つの認知プロセスについて、紹介していく
コードを読むときに発生する3つの混乱
見慣れないコードや久しぶりに書いたコードを読むと、混乱する(コードが何をするか、なぜそのように書かれているか理解できない)ことがあり、その種類は3つに分類できる
具体例で確認
与えられた数値 N または n を二進数表現に変換するコード
1. 知識不足
APLでの二進数表現変換コード
2 2 2 2 2 T n
=>演算子 T が何をするのかわからない
2. 情報不足
Javaでの二進数表現変換コード
public class BinaryCalculator {
public static void main(Integer n) {
System.out.println(Integer.toBinaryString(n));
}
}
=>toBinaryString() の内部でどうゆう処理が行われているのかわからない
(toBinaryString() の定義を見つけて読む必要がある、情報がすぐに得られない)
3. 処理能力不足
BASICでの二進数表現変換コード
LET N2 = ABS ( INT( N ) )
LET B$ = ""
FOR N1 = N2 TO 0 STEP 0
LET N2 = INT ( N1 / 2 )
LET B$ = STR$ (N1-N2*2) + B$
LET N1 = N2
NEXT N1
PRINT B$
RETURN
=>実行される処理のすべてを脳内で追いかけることはできない(メモしないとわからない)
コードを読むことに影響を与える3つの認知プロセス
1. 長期記憶
- 永続的に保存される記憶装置
cf. ハードディスク
2. 短期記憶
- 一時的に保存される記憶装置
- 目の前の問題が解決されると削除される
cf. RAM、キャッシュ
3. ワーキングメモリ
- 問題の処理に用いられる短期記憶
- 実際の思考が行われる
- 新しい考えやアイデア、問題の解決方法が形成される
cf. プロセッサ
短期記憶とワーキングメモリの具体例
- 短期記憶:電話番号を一時的に記憶
- ワーキングメモリ:計算処理
3つの認知プロセスのまとめ
- 長期記憶:長期間覚えておきたい情報を保持
- 短期記憶:読み聞きしたばかりの情報を一時的に保持
- ワーキングメモリ:上記の情報を処理して、新しい思考を形作る
3つの認知プロセスの相互作用
コードを読んでいるときは、3つの認知プロセスが相互作用しながらすべて働いている
まとめ
コードを読むときの混乱は3種類に分類でき、それぞれ認知プロセスの影響を受けている
今回紹介した混乱に対する対処法も「プログラマー脳」内で紹介されています。
参考文献
- Felienne Hermans 著、水野貴明 訳、水野いずみ 監訳「プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ」秀和システム、2023
-
elienne Hermans 著、水野貴明 訳、水野いずみ 監訳「プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ」秀和システム、2023、P11 ↩