1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのアドベントカレンダーAdvent Calendar 2023

Day 25

「プログラマー脳」から学ぶコードを読むときの混乱とその原因

Last updated at Posted at 2023-12-24

はじめに

この記事では、「プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ」に記載されているコードを読むときに発生する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つの認知プロセスのまとめ

  1. 長期記憶:長期間覚えておきたい情報を保持
  2. 短期記憶:読み聞きしたばかりの情報を一時的に保持
  3. ワーキングメモリ:上記の情報を処理して、新しい思考を形作る

3つの認知プロセスの相互作用

コードを読んでいるときは、3つの認知プロセスが相互作用しながらすべて働いている

image.png (65.7 kB)1

まとめ

コードを読むときの混乱は3種類に分類でき、それぞれ認知プロセスの影響を受けている

今回紹介した混乱に対する対処法も「プログラマー脳」内で紹介されています。

参考文献

  • Felienne Hermans 著、水野貴明 訳、水野いずみ 監訳「プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ」秀和システム、2023
  1. elienne Hermans 著、水野貴明 訳、水野いずみ 監訳「プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ」秀和システム、2023、P11

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?