Slide 1

Slide 1 text

書籍「プログラマー脳」を 完全に理解した ツノ:@2nofall

Slide 2

Slide 2 text

自己紹介 ① 名前 ツノ(28 歳:既婚) 職歴 富士通 2016~:官公庁系の SIer ラクス 2021~2022 営業部門の社内 SE 2022~ 勤怠システム フロントエンドエンジニア

Slide 3

Slide 3 text

自己紹介 ② 趣味 銭湯&サウナ クライミング 登山 ボルダリング 今年の目標 フロントレバーをできるようになる 月一1冊技術書を読書

Slide 4

Slide 4 text

書籍:プログラマー脳

Slide 5

Slide 5 text

書籍の情報 書籍名 プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ~ 発売日 2023/1/28 説明 すべてのプログラマーのために、認知科学を応用してプログラミングをもっ と効率的に、もっと楽しくするメソッドを解説します。 本書を読むと「ああ、なるほど!」「それは思いつかなかった!」という体 験が繰り返されることでしょう。(amazon より)

Slide 6

Slide 6 text

読む前の課題感 直近の悩み コーディングスキルって意識的につけられるのか? 脳死で写経を繰り返しているが、実務に活かせていない。 将来的な悩み 教える側になったときに、的確な教え方ができるのか?

Slide 7

Slide 7 text

理解した内容

Slide 8

Slide 8 text

コーディング中の脳のプロセスは 3 つ 長期記憶 → 例 : HD、プログラミング言語の文法 短期記憶 → 例 : メモリ、メソッド名や変数 ワーキングメモリ → 例: CPU、ループ中のインデックス値、スタイルの調整

Slide 9

Slide 9 text

長期記憶を活かすためのキーワード 活性化させるコツ 間隔をあけて、繰り返し学習 思い出そうとする 長期記憶のメカニズム 貯槽強度:どれだけきちんと保存されているか(例:九九表) 検索強度:長期記憶から思い出す容易さ(例:JS の filter() 関数) (プログラマは検索強度が大切)

Slide 10

Slide 10 text

短期記憶を活かすためのキーワード 保存容量は 2~6 個 脳内のメモリを以下に効率的につかうか。 抽象的な概念を活用して情報を圧縮する チャンク化 チェスの盤面を記憶する実験。熟練者は覚えるための魔法を使った?

Slide 11

Slide 11 text

ワーキングメモリを活かすためのキーワード ワーキングメモリの定義 問題の処理に要いられる短期記憶(計算と電話番号) 認知負荷:ワーキングメモリがどれだけ使われているか 課題内在性負荷:その問題自体の複雑性 課題外在性負荷:その問題の妨げとなる要因 軽減方法 リファクタリング(認知的リファクタイング) 状態遷移表

Slide 12

Slide 12 text

実務への応用について

Slide 13

Slide 13 text

変数の役割フレームワーク適用 変数は 11 種類に分けられる。 Zenn でまとめの記事、書きました。 これを覚えると認知負荷が下がるはず。

Slide 14

Slide 14 text

フラッシュカードアプリを使う 以下を繰り返し覚える チャンク化 文法を覚えるとき デザインパターン 自動化 三日坊主で終わっている

Slide 15

Slide 15 text

コードの臭いの言語化 コードスメルの定義を初めて知った。面白かったもの抜粋。

Slide 16

Slide 16 text

プログラミング中の活動 検索:コード内を調べ、特定の情報を探す作業(例:バグ発生個所の調査)     検索したコードにコメントを書く 理解:コードを読んで、その機能を把握すること(例:コードレビュー)     コードのモデル化や状態遷移図を作成する 転写:「単にコード」を書く(例:単純なコーディング) 増強:上の 3 つを組み合わせたもの。    コードを追加する場所と方法を検索・理解し、実装する     小さなサブタスクに分割して、上の 3 つの単位の持っていく 探索:漠然とした考えのままプログラムを書く。 意識しようとしてるが、増強がほとんどになってしまう。

Slide 17

Slide 17 text

問題解決力のつけ方 問題解決力は長期記憶に依存する 潜在記憶と顕在記憶 潜在記憶:自動化、あるいは、インスタンス理論 顕在記憶:コードディングのレシピを教わる

Slide 18

Slide 18 text

EOF

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

よい命名の原則 文法に基づいている コード内で一貫している ドメイン情報を含める

Slide 21

Slide 21 text

物事を習得するためのコツ ピアジュの認知発達理論 意味波