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.3k
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
470
Testing Java With Spock
yonetty
0
110
Other Decks in Programming
See All in Programming
net-httpのHTTP/2対応について
naruse
0
500
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
660
The NotImplementedError Problem in Ruby
koic
1
840
Vite+ Unified Toolchain for the Web
naokihaba
0
320
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
590
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
13k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
RTSPクライアントを自作してみた話
simotin13
0
610
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
550
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
140
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
The untapped power of vector embeddings
frankvandijk
2
1.8k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Paper Plane (Part 1)
katiecoart
PRO
0
9.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
30 Presentation Tips
portentint
PRO
1
330
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
Facilitating Awesome Meetings
lara
57
7k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
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!