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
920
「プログラマー脳」を読んで感覚的な部分が言語化された
めぐろ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
2
700
go get で考慮している ファイルシステムの挙動について
shinnosuke_kishida
3
670
広告代理店向けSaaSの開発をしている新卒3年目のこれまでのお話
shinnosuke_kishida
0
39
Ebitengineのイベントで発表するのでEbitengineを初めて触ってみた
shinnosuke_kishida
0
2.2k
只今、絶賛リプレイス中のシステムの取り組みについて
shinnosuke_kishida
2
630
仕事で使っているものを紹介します
shinnosuke_kishida
2
810
Other Decks in Technology
See All in Technology
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
5
950
Oracle Modern Data Platform Reference Architecture (Autonomous Data Warehouse編)
oracle4engineer
PRO
0
490
EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する #nakanoshima_dev
masahirokawahara
1
150
Cloud Nativeを支える要素技術・プロダクト・プラクティスの歩み / infrastudy-returns-01-amsy810
masayaaoyama
3
370
俺的 Four Keys 解釈
tetsuya28
0
170
こんなに違うよ MySQLとPostgreSQL /
sakaik
19
11k
What's New in OpenShift 4.16
redhatlivestreaming
1
280
負荷テスト on AWS のすすめ (AWS Summit Japan 2024 - Ministage session)
mabuchs
0
120
Introducing Azure Automation Runtime Environment
mappie_kochi
0
120
OpenTelemetry Meetup 2024-06 - ABEMA と分散トレーシングのあゆみ
tetsuya28
1
260
LeanとDevOpsのためにE2Eテストができること
magicpod
1
150
Kotlin Collection関数をマスター
ldf_tech
0
140
Featured
See All Featured
Web development in the modern age
philhawksworth
203
10k
Happy Clients
brianwarren
93
6.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
23
1.5k
The Brand Is Dead. Long Live the Brand.
mthomps
51
36k
For a Future-Friendly Web
brad_frost
173
9.1k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
The Cost Of JavaScript in 2023
addyosmani
25
4.1k
Agile that works and the tools we love
rasmusluckow
325
20k
Facilitating Awesome Meetings
lara
44
5.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
9k
Robots, Beer and Maslow
schacon
PRO
155
8k
Atom: Resistance is Futile
akmur
260
25k
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