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
43
書籍「プログラマー脳」を完全に理解した
ツノ
November 07, 2023
Tweet
Share
More Decks by ツノ
See All by ツノ
エンジニア達の_完全に理解した_-コードでの契約ってなんだ_.pdf
2nofa11
1
120
Vite完全に理解した その1
2nofa11
1
190
年末年始に「chibivue」で Vueヂカラをつけた
2nofa11
0
260
「世界一流のエンジニアの思考法」 を完全に理解した
2nofa11
1
190
VuexからPinia移行に向けて
2nofa11
0
340
一か月半かけて、TypeScript本を写経した話
2nofa11
0
640
VueTestUtilbrのキホンの『キ』
2nofa11
0
130
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
How STYLIGHT went responsive
nonsquared
95
5.2k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Why Our Code Smells
bkeepers
PRO
335
57k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Building Your Own Lightsaber
phodgson
103
6.1k
Navigating Team Friction
lara
183
15k
A Tale of Four Properties
chriscoyier
157
23k
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
よい命名の原則 文法に基づいている コード内で一貫している ドメイン情報を含める
物事を習得するためのコツ ピアジュの認知発達理論 意味波