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
33
書籍「プログラマー脳」を完全に理解した
ツノ
November 07, 2023
Tweet
Share
More Decks by ツノ
See All by ツノ
エンジニア達の_完全に理解した_-コードでの契約ってなんだ_.pdf
2nofa11
1
91
Vite完全に理解した その1
2nofa11
1
160
年末年始に「chibivue」で Vueヂカラをつけた
2nofa11
0
250
「世界一流のエンジニアの思考法」 を完全に理解した
2nofa11
1
170
VuexからPinia移行に向けて
2nofa11
0
310
一か月半かけて、TypeScript本を写経した話
2nofa11
0
590
VueTestUtilbrのキホンの『キ』
2nofa11
0
130
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
135
6.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
43
2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
The Invisible Side of Design
smashingmag
295
50k
How to Think Like a Performance Engineer
csswizardry
16
960
A better future with KSS
kneath
235
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
Facilitating Awesome Meetings
lara
49
5.9k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
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
よい命名の原則 文法に基づいている コード内で一貫している ドメイン情報を含める
物事を習得するためのコツ ピアジュの認知発達理論 意味波