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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
shinnosuke
February 28, 2024
Technology
1.5k
2
Share
「プログラマー脳」を読んで感覚的な部分が言語化された
めぐろLT #12「おすすめ書籍紹介LT」@日本橋 2024/02/28 (水)
https://meguro-lt.connpass.com/event/305704/
shinnosuke
February 28, 2024
More Decks by shinnosuke
See All by shinnosuke
「解くべき問題」を見つけたい
shinnosuke_kishida
0
81
広告データの集計基盤で使用するDB
shinnosuke_kishida
0
56
Go製のマイグレーションツールの git-schemalex の紹介と運用方法
shinnosuke_kishida
1
1.2k
TiDB の SQL Parser を使用して CSV ファイルの不備を検知する仕組み
shinnosuke_kishida
0
180
システムと組織の課題克服を目指すリアーキテクチャとユーザ移行
shinnosuke_kishida
2
1.1k
go get で考慮している ファイルシステムの挙動について
shinnosuke_kishida
4
1.5k
広告代理店向けSaaSの開発をしている新卒3年目のこれまでのお話
shinnosuke_kishida
0
220
Ebitengineのイベントで発表するのでEbitengineを初めて触ってみた
shinnosuke_kishida
0
3k
只今、絶賛リプレイス中のシステムの取り組みについて
shinnosuke_kishida
2
890
Other Decks in Technology
See All in Technology
Agent Skillsで実現する記憶領域の運用とその後
yamadashy
2
1.5k
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.4k
生成AIはソフトウェア開発の革命か、ソフトウェア工学の宿題再提出なのか -ソフトウェア品質特性の追加提案-
kyonmm
PRO
2
860
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
250
ハーネスエンジニアリング入門
hatyibei
0
110
「QA=テスト」「シフトレフト=スクラムイベントの参加者の一員」の呪縛を解く。アジャイルな開発を止めないために、10Xで挑んだ「右側のしわ寄せ」解消記 #scrumniigata
nihonbuson
PRO
3
940
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
260
[Oracle TechNight#99] 生成AI時代のAI/ML入門 ~ AIとオラクルデータベースの関係 (前半)
oracle4engineer
PRO
2
240
生成AIが変える SaaS の競争原理と弁護士ドットコムのプロダクト戦略
bengo4com
1
3.6k
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
360
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
290
AI時代に、 データアナリストがデータエンジニアに異動して
jackojacko_
0
490
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
32
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
So, you think you're a good person
axbom
PRO
2
2k
Evolving SEO for Evolving Search Engines
ryanjones
0
190
Building Applications with DynamoDB
mza
96
7k
Raft: Consensus for Rubyists
vanstee
141
7.4k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
We Have a Design System, Now What?
morganepeng
55
8.1k
From π to Pie charts
rasagy
0
180
Faster Mobile Websites
deanohume
310
31k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
240
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