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
shinnosuke
February 28, 2024
Technology
2
1.4k
「プログラマー脳」を読んで感覚的な部分が言語化された
めぐろLT #12「おすすめ書籍紹介LT」@日本橋 2024/02/28 (水)
https://meguro-lt.connpass.com/event/305704/
shinnosuke
February 28, 2024
Tweet
Share
More Decks by shinnosuke
See All by shinnosuke
「解くべき問題」を見つけたい
shinnosuke_kishida
0
52
広告データの集計基盤で使用するDB
shinnosuke_kishida
0
38
Go製のマイグレーションツールの git-schemalex の紹介と運用方法
shinnosuke_kishida
1
990
TiDB の SQL Parser を使用して CSV ファイルの不備を検知する仕組み
shinnosuke_kishida
0
130
システムと組織の課題克服を目指すリアーキテクチャとユーザ移行
shinnosuke_kishida
2
1k
go get で考慮している ファイルシステムの挙動について
shinnosuke_kishida
4
1.3k
広告代理店向けSaaSの開発をしている新卒3年目のこれまでのお話
shinnosuke_kishida
0
170
Ebitengineのイベントで発表するのでEbitengineを初めて触ってみた
shinnosuke_kishida
0
2.8k
只今、絶賛リプレイス中のシステムの取り組みについて
shinnosuke_kishida
2
790
Other Decks in Technology
See All in Technology
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
390
20250807 Applied Engineer Open House
sakana_ai
PRO
2
580
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
6.4k
[OCI Technical Deep Dive] OracleのAI戦略(2025年8月5日開催)
oracle4engineer
PRO
1
230
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
4
170
[kickflow]20250319_少人数チームでのAutify活用
otouhujej
0
150
Backlog AI アシスタントが切り開く未来
vvatanabe
1
170
2025新卒研修・Webアプリケーションセキュリティ #弁護士ドットコム
bengo4com
1
4.8k
AIが住民向けコンシェルジュに?Amazon Connectと生成AIで実現する自治体AIエージェント!
yuyeah
0
170
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
150
AWS DDoS攻撃防御の最前線
ryutakondo
1
180
ユーザー課題を愛し抜く――AI時代のPdM価値
kakehashi
PRO
1
130
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Optimizing for Happiness
mojombo
379
70k
Side Projects
sachag
455
43k
Docker and Python
trallard
45
3.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Navigating Team Friction
lara
188
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Code Review Best Practice
trishagee
69
19k
Designing Experiences People Love
moore
142
24k
Fireside Chat
paigeccino
39
3.6k
Facilitating Awesome Meetings
lara
55
6.5k
Transcript
「プログラマー脳」を読んで 感覚的な部分が言語化された 1 めぐろLT #12「おすすめ書籍紹介LT」@日本橋 2024/02/28 (Web) @mwudo / 岸田慎之介
2 自己紹介 • SO Technologies 株式会社 • 新卒3年目 • Go言語でAPI/バッチ処理の開発を主に行いつつ
問い合わせの調査も行っている グループ横断の取り組みで使うアプリの開発にも従事 • 毎週ボルダリングに通ってる 岸田 慎之介 @mwudo
プログラマー脳 出版社:秀和システム 発売日:2023/02/16 ページ数:288ページ 翔泳社主催の「ITエンジニア本大賞2024」で 技術書のベスト10に選出されている 3
読むきっかけ 4 出版イベントに参加してプレゼント企画(じゃんけん)で Get した
書籍は大きく4つのコンテンツに分かれている 5 コードをよりよく読むために 1 コードについて考える よりよいコードを書くために コーディングにおける共同作業 2 3 4
コードをよりよく読むために 6 なれないコードを読む際の混乱は認知プロセスの問題に関連 ❏ 知識不足 ❏ 情報不足 ❏ 処理能力の不足
コードをよりよく読むために 7 なれないコードを読む際の混乱は認知プロセスの問題に関連 ❏ 知識不足 ❏ 情報不足 ❏ 処理能力の不足 長期記憶(例:ハードディスク)
短期記憶(例:RAM) ワーキングメモリ(例:プロセッサ) サンプルコードを示しながら 3つの認知プロセスが互いに補完し合っていることを説明している
コードをよりよく読むために 8 プログラミング言語の文法や概念などの記憶の重要性 長期記憶 を使ってコードを読み進めることが可能 割り込みによる作業の中断があっても思い出す範囲を狭めることができる 覚える作業として フラッシュカードや積極的に何かを思い出そうとする練習(想起練習) 新しい情報を考え振り返る(精緻化)が取り上げられている
コードについて考える 9 コードの深い理解をするために • 変数の役割のフレームワーク 固定値、フラグ、ウォーカー etc • 問題を推論するために抽象化した メンタルモデル
を使った理解 「特定のコードが実行される」というものメンタルモデル 実際は対応したバイトコードが実行
コードについて考える 10 思考に潜むバグ(誤認識)を理解する必要がある 動的型付け言語を知っている人が静的型付けを学ぶ場合 身につけたメンタルモデルを変化させる必要がある 「唐辛子の種は辛い」は誤認識の一種 新米プログラマーが陥る誤認識が紹介されている
よりよいコードを書くために 命名 が重要 11 • 最もアクセスしやすいドキュメントになる • 初期の命名は永久的な影響を与える • 時間が経ても命名方法は改善されない
コーディング中は認知負荷が高く命名まで気が向かない レビューでの振り返りや名前の雛形を用意 しかし
コーディングにおける共同作業 割り込みが発生すると生産性が 低下 12 https://twitter.com/oshiroi_you/status/505686403053674496 生産性を下げないために備えが必要 割り込みをするタイミングについても言及
コーディングにおける共同作業 既存メンバーと新人メンバーとの違い 13 小さなバグや機能開発を 非常に簡単なタスク として渡しがち 「array index out of
bounds」などのエラーを見たときの反応 初心者や新しく来た人の行動を理解する必要がある オンボーディングプロセスを改善するための活動が紹介されている
プロダクト開発で実際にコーディング業務をしている人すべてに オススメ 日々のコーディング業務での無意識の行動の説明がされており納得感があった 14 まとめ プログラムをどのように読んでいるかサンプルコードを例にした内容が あったがその通りだった(かなり驚いた)
1 https://www.amazon.co.jp/dp/4798068535 購入はコチラ (アフィリエイトではありません) 15