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
技術書を読む技術(JJUG CCC 2023 Fall)
Search
yonetty
November 12, 2023
Programming
1.2k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
技術書を読む技術(JJUG CCC 2023 Fall)
JJUG CCC 2023 Fallでの登壇資料
yonetty
November 12, 2023
More Decks by yonetty
See All by yonetty
Spockで学ぶテスト駆動開発のコツ
yonetty
1
1.3k
『アジャイルソフトウェア開発の奥義』から学ぶテスト駆動開発
yonetty
0
460
Testing Java With Spock
yonetty
0
110
Other Decks in Programming
See All in Programming
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
730
net-httpのHTTP/2対応について
naruse
0
450
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.5k
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
770
Lessons from Spec-Driven Development
simas
PRO
0
150
dRuby over BLE
makicamel
2
320
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
160
柔軟なPDFレイアウトエディタを支える型システム設計 — Discriminated UnionとConditional Typeの実践
minako__ph
4
1.5k
AIエージェントの隔離技術の徹底比較
kawayu
0
470
OSもどきOS
arkw
0
470
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.7k
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Design in an AI World
tapps
1
230
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Being A Developer After 40
akosma
91
590k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
技術書を読む 技術 Nov. 11th, 2023 JJUG CCC 2023 Fall Takeshi
Yonekubo
About Me • 名前:⽶久保 剛(Takeshi Yonekubo) • 所属:株式会社電通国際情報サービス (ISID) •
職種:ソフトウェアアーキテクト • 得意分野:テスト駆動開発 • X:@tyonekubo https://www.youtube.com/watch?v=KZHYh2X6ZXw
技術書を愛してますか?
技術書を読むエンジニアの課題 •内容を完全には理解できなかった •得た知識を実践で活⽤しきれていない •記憶に定着しない
名著『本を読む本』 を技術書に応⽤する テクニックをご紹介 します ※第⼀版は1940年に⽶国で出版され、 各国で読み継がれている
2通りの読書 ❶ 情報を得るための読書 • 新聞、雑誌のようなものを読んで情報の量を増やす • 技術書だと⾔語やフレームワークなど要素技術に関する本 ❷ 理解を深めるための読書 •
⾃分の理解を上まわる本を読みなおして理解を深める • 技術書だと⽅法論やプロセスに関する本
読むに値する良書 “本当に読書法や⼈間の⽣きか たを教えてくれるような本” “100冊に⼀冊、いや⼀万冊に⼀ 冊しかないかもしれないが” エンジニアとしてのあり⽅ に影響を与える良書を⾒つ けて徹底的に読み抜く
読書のレベル 第⼀レベル 初級読書 ⼩中学校までに⾝に付ける、基本的な読 み⽅ 第⼆レベル 点検読書 拾い読みや下読みで本を品定めし、表⾯ 的に読み込んで内容を把握する読み⽅ 第三レベル
分析読書 深く理解するために分析的な⼿法を⽤い て徹底的に読み抜く、系統だった読み⽅ 第四レベル シントピカル読書 同⼀主題について⼆冊以上の本を⽐較し て読み、主題と向き合う読み⽅
本⽇お話しする内容 第⼀レベル 初級読書 第⼆レベル 点検読書 第三レベル 分析読書 第四レベル シントピカル読書 イテレーション0:
下読みする イテレーション1: 通読する イテレーション2: 精読する イテレーション3: 読書マップを作る イテレーション4: 輪読会を⾏う
イテレーション0: 下読みする
下読みすべき箇所 拾い読みのヒント: 1. 表題や序⽂ 2. ⽬次 3. 索引 4. カバーのうたい⽂句
5. かなめと思われるいくつかの章 6. ところどころ拾い読み
技術書の場合 のサンプル
タイトル、カバー
はじめに はじめに、には本の主 題が書かれており重要 ご丁寧に本の構成や読み⽅が 説明されていることも
⽬次 第I部、第II部などの パート分けには意味が ある
参考⽂献 本のバックグラウンド や著者が影響を受けた ものが伺い知れる
著者紹介 著者のバックグラウン ドから、本の主題やそ の背景が知れる
イテレーション1: 通読する
まずは表⾯読み 読者がすべき質問: 1. 全体として何に関する本か。 2. 何がどのように詳しく述べられ ているか。 3. その本は全体として真実か、あ るいはどの部分が真実か。
4. それにはどんな意義があるか。 “難解な本にはじめて取り組むときは、とにかく読 み通すことだけを⼼がける”
⾏間に書く 効果的な書き⼊れの⼯夫: 傍線を引く ☆印、※印、そのほかの印をつける 余⽩に数字を記⼊する キーワードを◦で囲む 余⽩に書き⼊れをする ・・・ “(本を)⾃分の⾎⾁とする最良の⽅法は−それが ⾏間に書くことなのだ。”
三⾊ボールペン情報活⽤術 ⾚ ⻘ 緑 客観的に⾒て、 最も重要な箇所 客観的に⾒て、 まあ重要な箇所 主観的に⾒て、 ⾃分がおもしろいと感じたり、
興味を抱いたりした箇所
技術書に書き込む場合のマイルール ⾚ ⻘ 緑 本や章の主題や主張に通じる、 重要な箇所 それ以外の、 重要な箇所 わからなかった箇所、 ⾯⽩いと感じた箇所、
アイデアが得られた箇所など
(書き込みサンプル) 実際には、⾊分けが厳 密である必要はない。 考えることが⼤事。 重要なページは 折込みを⼊れたり。
判定する 繰り返し読むに 値する本か? 「精読する」へ 本棚へ YES NO “熟読するに値する本も数多く あるが、それにもまして点検 読書にとどめるべきもののほ
うがずっと多い。”
イテレーション2: 精読する
分析読書とは 分析読書の三段階: 1. 概略−何についての本であるかを ⾒分ける− 2. 解釈−内容を解釈する− 3. 批評−知識は伝達されたか− “『本を読む本』は、読むに値する良書を、知的か
つ積極的に読むための規則を述べたものでありま す。”
技術書の分析読書に役⽴つツール •本や章の概略を掴み、著者の提⽰する命題やそ れに対する解決を正しく解釈するためのツール をご紹介します • マインドマップ • UML • グラフィックレコーディング(グラレコ)
• 要約
マインドマップ ここでも3⾊ボール ペンを活⽤する 本のままではなく、 ⾃分にとっての アウトラインを作る
UML 例)[9章 プラクティス5 「CLEAN」コードを作る]の概念を整理したクラス図 概念をモデル化する ことで理解を深化 ⽂章より図の⽅が後 から⾒て理解が容易
グラフィックレコーディング ⽂字だけではなく ビジュアルを活⽤ ⾃分⽤なので絵⼼が なくても⼤丈夫!
要約 •各章の要約⽂を書いてみる ◼ 9章 プラクティス5 「CLEAN」コードを作る 良いソフトウェアの⼟台となるコード品質は5つにまとめられ、頭⽂字を取るとCLEAN となる。 • Cohesive(凝集性)
• Loosely Coupled(疎結合) • Encapsulated(カプセル化) • Assertive(断定的) • Nonredundant(⾮冗⻑) これらのコード品質は相互に関連性があり、どれか⼀つを改善すると他も改善されると いう性質がある。また、テストのしやすさと⾮常に関連が強く、テストしやすいコード を書くことがコード品質の向上につながる。 技術的負債が膨れ上がると開発が遅くなり、⾒積もりを狂わせる。コード品質を向上し ベロシティを保つことが、⾼品質のソフトウェア開発の⼟台となる。
イテレーション3: 読書マップを作る
⾃分だけのマップを作る
オリジナルの帯を考える コード品質こそが ソフトウェア企業を勝ち組にする ソフトウェア開発者が持つべき価値観と ⾼品質なコードを⽣み出すための実⽤的な プラクティスを提⽰するアジャイル実践書 他⼈に推薦するため キャッチフレーズを考え てみよう なぜ⾃分にとって
良書だと感じるの かを⾔語化
イテレーション4: 輪読会を⾏う
輪読会 • 複数⼈で同じ本を読み、集まっ て発表や意⾒交換を⾏う • 持ち回りで発表者を決め、発表 者は1〜2章の内容を資料にまと めて発表を⾏う • 感想の共有や意⾒交換、ディス
カッションを⾏う
発表者のメリット •⼈前で発表することを意識するため、本への 向き合い⽅がより真剣になる •⼈に説明できるレベルになるまで内容理解を 深めることができる •⾔語化、資料化するアウトプットプロセスに よって記憶に定着する
参加者のメリット •⼀⼈で読んでいる時には思いもよらなかった 視点など、新たな気づきが得られる •他の参加者が持っている知識を活⽤して 疑問点を解消することができる •チームでの議論を通して理解を深めることが できる
まとめ
技術書を読む技術 • 良い技術書は何度も読んでようやく⾎⾁とな るまで理解することができる • 著者が提⽰する命題とその解決を正しく解釈 し⾃分なりに咀嚼することで、実務で活⽤で きるようになる • 何度も繰り返し読むことで記憶の定着効果も
期待できる(cf.エビングハウスの忘却曲線)
(参考)My Favorite Books https://book.mynavi.jp/ec/products/detail/id=134252 https://www.sbcr.jp/product/4797347784/ https://www.oreilly.co.jp/books/9784873118864/
参考⽂献 • M.J.アドラー・C.V.ドーレン(1978)『本を読む本』⽇本ブリ タニカ(⽂庫版『本を読む本』講談社学術⽂庫) • David Scott Bernstein(2019)『レガシーコードからの脱却− ソフトウェアの寿命を延ばし価値を⾼める9つのプラクティ ス』オライリー・ジャパン
• 齋藤孝(2003)『三⾊ボールペン情報活⽤術』⾓川書店
Happy Reading!