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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
AIエージェントの隔離技術の徹底比較
kawayu
0
470
New "Type" system on PicoRuby
pocke
1
660
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
430
LLM Plugin for Node-REDの利用方法と開発について
404background
0
160
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.7k
dRuby over BLE
makicamel
2
320
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
4.5k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
220
OSもどきOS
arkw
0
470
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
110
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
260
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
730
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
Navigating Weather and Climate Data
rabernat
0
210
Raft: Consensus for Rubyists
vanstee
141
7.5k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
210
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
410
Believing is Seeing
oripsolob
1
140
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
How GitHub (no longer) Works
holman
316
150k
Visualization
eitanlees
152
17k
Art, The Web, and Tiny UX
lynnandtonic
304
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!