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
50
書籍「プログラマー脳」を完全に理解した
ツノ
November 07, 2023
Tweet
Share
More Decks by ツノ
See All by ツノ
エンジニア達の_完全に理解した_-コードでの契約ってなんだ_.pdf
2nofa11
1
130
Vite完全に理解した その1
2nofa11
1
210
年末年始に「chibivue」で Vueヂカラをつけた
2nofa11
0
260
「世界一流のエンジニアの思考法」 を完全に理解した
2nofa11
1
210
VuexからPinia移行に向けて
2nofa11
0
360
一か月半かけて、TypeScript本を写経した話
2nofa11
0
670
VueTestUtilbrのキホンの『キ』
2nofa11
0
140
Featured
See All Featured
It's Worth the Effort
3n
184
28k
Designing for humans not robots
tammielis
250
25k
A designer walks into a library…
pauljervisheath
205
24k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
GitHub's CSS Performance
jonrohan
1030
460k
Adopting Sorbet at Scale
ufuk
74
9.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Music & Morning Musume
bryan
46
6.3k
RailsConf 2023
tenderlove
29
1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
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
よい命名の原則 文法に基づいている コード内で一貫している ドメイン情報を含める
物事を習得するためのコツ ピアジュの認知発達理論 意味波