Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
書籍「プログラマー脳」を完全に理解した
Search
ツノ
November 07, 2023
0
57
書籍「プログラマー脳」を完全に理解した
ツノ
November 07, 2023
Tweet
Share
More Decks by ツノ
See All by ツノ
エンジニア達の_完全に理解した_-コードでの契約ってなんだ_.pdf
2nofa11
1
140
Vite完全に理解した その1
2nofa11
1
230
年末年始に「chibivue」で Vueヂカラをつけた
2nofa11
0
260
「世界一流のエンジニアの思考法」 を完全に理解した
2nofa11
1
240
VuexからPinia移行に向けて
2nofa11
0
390
一か月半かけて、TypeScript本を写経した話
2nofa11
0
740
VueTestUtilbrのキホンの『キ』
2nofa11
0
140
Featured
See All Featured
It's Worth the Effort
3n
184
28k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
780
Adopting Sorbet at Scale
ufuk
77
9.4k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Building Adaptive Systems
keathley
43
2.6k
Faster Mobile Websites
deanohume
307
31k
Documentation Writing (for coders)
carmenintech
71
4.9k
Music & Morning Musume
bryan
46
6.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
900
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Transcript
書籍「プログラマー脳」を 完全に理解した ツノ:@2nofall
自己紹介 ① 名前 ツノ(28 歳:既婚) 職歴 富士通 2016~:官公庁系の SIer ラクス
2021~2022 営業部門の社内 SE 2022~ 勤怠システム フロントエンドエンジニア
自己紹介 ② 趣味 銭湯&サウナ クライミング 登山 ボルダリング 今年の目標 フロントレバーをできるようになる 月一1冊技術書を読書
書籍:プログラマー脳
書籍の情報 書籍名 プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ~ 発売日 2023/1/28 説明 すべてのプログラマーのために、認知科学を応用してプログラミングをもっ と効率的に、もっと楽しくするメソッドを解説します。 本書を読むと「ああ、なるほど!」「それは思いつかなかった!」という体
験が繰り返されることでしょう。(amazon より)
読む前の課題感 直近の悩み コーディングスキルって意識的につけられるのか? 脳死で写経を繰り返しているが、実務に活かせていない。 将来的な悩み 教える側になったときに、的確な教え方ができるのか?
理解した内容
コーディング中の脳のプロセスは 3 つ 長期記憶 → 例 : HD、プログラミング言語の文法 短期記憶 →
例 : メモリ、メソッド名や変数 ワーキングメモリ → 例: CPU、ループ中のインデックス値、スタイルの調整
長期記憶を活かすためのキーワード 活性化させるコツ 間隔をあけて、繰り返し学習 思い出そうとする 長期記憶のメカニズム 貯槽強度:どれだけきちんと保存されているか(例:九九表) 検索強度:長期記憶から思い出す容易さ(例:JS の filter() 関数)
(プログラマは検索強度が大切)
短期記憶を活かすためのキーワード 保存容量は 2~6 個 脳内のメモリを以下に効率的につかうか。 抽象的な概念を活用して情報を圧縮する チャンク化 チェスの盤面を記憶する実験。熟練者は覚えるための魔法を使った?
ワーキングメモリを活かすためのキーワード ワーキングメモリの定義 問題の処理に要いられる短期記憶(計算と電話番号) 認知負荷:ワーキングメモリがどれだけ使われているか 課題内在性負荷:その問題自体の複雑性 課題外在性負荷:その問題の妨げとなる要因 軽減方法 リファクタリング(認知的リファクタイング) 状態遷移表
実務への応用について
変数の役割フレームワーク適用 変数は 11 種類に分けられる。 Zenn でまとめの記事、書きました。 これを覚えると認知負荷が下がるはず。
フラッシュカードアプリを使う 以下を繰り返し覚える チャンク化 文法を覚えるとき デザインパターン 自動化 三日坊主で終わっている
コードの臭いの言語化 コードスメルの定義を初めて知った。面白かったもの抜粋。
プログラミング中の活動 検索:コード内を調べ、特定の情報を探す作業(例:バグ発生個所の調査) 検索したコードにコメントを書く 理解:コードを読んで、その機能を把握すること(例:コードレビュー) コードのモデル化や状態遷移図を作成する 転写:「単にコード」を書く(例:単純なコーディング)
増強:上の 3 つを組み合わせたもの。 コードを追加する場所と方法を検索・理解し、実装する 小さなサブタスクに分割して、上の 3 つの単位の持っていく 探索:漠然とした考えのままプログラムを書く。 意識しようとしてるが、増強がほとんどになってしまう。
問題解決力のつけ方 問題解決力は長期記憶に依存する 潜在記憶と顕在記憶 潜在記憶:自動化、あるいは、インスタンス理論 顕在記憶:コードディングのレシピを教わる
EOF
None
よい命名の原則 文法に基づいている コード内で一貫している ドメイン情報を含める
物事を習得するためのコツ ピアジュの認知発達理論 意味波