Slide 1

Slide 1 text

技術書を読む 技術 Nov. 11th, 2023 JJUG CCC 2023 Fall Takeshi Yonekubo

Slide 2

Slide 2 text

About Me • 名前:⽶久保 剛(Takeshi Yonekubo) • 所属:株式会社電通国際情報サービス (ISID) • 職種:ソフトウェアアーキテクト • 得意分野:テスト駆動開発 • X:@tyonekubo https://www.youtube.com/watch?v=KZHYh2X6ZXw

Slide 3

Slide 3 text

技術書を愛してますか?

Slide 4

Slide 4 text

技術書を読むエンジニアの課題 •内容を完全には理解できなかった •得た知識を実践で活⽤しきれていない •記憶に定着しない

Slide 5

Slide 5 text

名著『本を読む本』 を技術書に応⽤する テクニックをご紹介 します ※第⼀版は1940年に⽶国で出版され、 各国で読み継がれている

Slide 6

Slide 6 text

2通りの読書 ❶ 情報を得るための読書 • 新聞、雑誌のようなものを読んで情報の量を増やす • 技術書だと⾔語やフレームワークなど要素技術に関する本 ❷ 理解を深めるための読書 • ⾃分の理解を上まわる本を読みなおして理解を深める • 技術書だと⽅法論やプロセスに関する本

Slide 7

Slide 7 text

読むに値する良書 “本当に読書法や⼈間の⽣きか たを教えてくれるような本” “100冊に⼀冊、いや⼀万冊に⼀ 冊しかないかもしれないが” エンジニアとしてのあり⽅ に影響を与える良書を⾒つ けて徹底的に読み抜く

Slide 8

Slide 8 text

読書のレベル 第⼀レベル 初級読書 ⼩中学校までに⾝に付ける、基本的な読 み⽅ 第⼆レベル 点検読書 拾い読みや下読みで本を品定めし、表⾯ 的に読み込んで内容を把握する読み⽅ 第三レベル 分析読書 深く理解するために分析的な⼿法を⽤い て徹底的に読み抜く、系統だった読み⽅ 第四レベル シントピカル読書 同⼀主題について⼆冊以上の本を⽐較し て読み、主題と向き合う読み⽅

Slide 9

Slide 9 text

本⽇お話しする内容 第⼀レベル 初級読書 第⼆レベル 点検読書 第三レベル 分析読書 第四レベル シントピカル読書 イテレーション0: 下読みする イテレーション1: 通読する イテレーション2: 精読する イテレーション3: 読書マップを作る イテレーション4: 輪読会を⾏う

Slide 10

Slide 10 text

イテレーション0: 下読みする

Slide 11

Slide 11 text

下読みすべき箇所 拾い読みのヒント: 1. 表題や序⽂ 2. ⽬次 3. 索引 4. カバーのうたい⽂句 5. かなめと思われるいくつかの章 6. ところどころ拾い読み

Slide 12

Slide 12 text

技術書の場合 のサンプル

Slide 13

Slide 13 text

タイトル、カバー

Slide 14

Slide 14 text

はじめに はじめに、には本の主 題が書かれており重要 ご丁寧に本の構成や読み⽅が 説明されていることも

Slide 15

Slide 15 text

⽬次 第I部、第II部などの パート分けには意味が ある

Slide 16

Slide 16 text

参考⽂献 本のバックグラウンド や著者が影響を受けた ものが伺い知れる

Slide 17

Slide 17 text

著者紹介 著者のバックグラウン ドから、本の主題やそ の背景が知れる

Slide 18

Slide 18 text

イテレーション1: 通読する

Slide 19

Slide 19 text

まずは表⾯読み 読者がすべき質問: 1. 全体として何に関する本か。 2. 何がどのように詳しく述べられ ているか。 3. その本は全体として真実か、あ るいはどの部分が真実か。 4. それにはどんな意義があるか。 “難解な本にはじめて取り組むときは、とにかく読 み通すことだけを⼼がける”

Slide 20

Slide 20 text

⾏間に書く 効果的な書き⼊れの⼯夫: 傍線を引く ☆印、※印、そのほかの印をつける 余⽩に数字を記⼊する キーワードを○で囲む 余⽩に書き⼊れをする ・・・ “(本を)⾃分の⾎⾁とする最良の⽅法は−それが ⾏間に書くことなのだ。”

Slide 21

Slide 21 text

三⾊ボールペン情報活⽤術 ⾚ ⻘ 緑 客観的に⾒て、 最も重要な箇所 客観的に⾒て、 まあ重要な箇所 主観的に⾒て、 ⾃分がおもしろいと感じたり、 興味を抱いたりした箇所

Slide 22

Slide 22 text

技術書に書き込む場合のマイルール ⾚ ⻘ 緑 本や章の主題や主張に通じる、 重要な箇所 それ以外の、 重要な箇所 わからなかった箇所、 ⾯⽩いと感じた箇所、 アイデアが得られた箇所など

Slide 23

Slide 23 text

(書き込みサンプル) 実際には、⾊分けが厳 密である必要はない。 考えることが⼤事。 重要なページは 折込みを⼊れたり。

Slide 24

Slide 24 text

判定する 繰り返し読むに 値する本か? 「精読する」へ 本棚へ YES NO “熟読するに値する本も数多く あるが、それにもまして点検 読書にとどめるべきもののほ うがずっと多い。”

Slide 25

Slide 25 text

イテレーション2: 精読する

Slide 26

Slide 26 text

分析読書とは 分析読書の三段階: 1. 概略−何についての本であるかを ⾒分ける− 2. 解釈−内容を解釈する− 3. 批評−知識は伝達されたか− “『本を読む本』は、読むに値する良書を、知的か つ積極的に読むための規則を述べたものでありま す。”

Slide 27

Slide 27 text

技術書の分析読書に役⽴つツール •本や章の概略を掴み、著者の提⽰する命題やそ れに対する解決を正しく解釈するためのツール をご紹介します • マインドマップ • UML • グラフィックレコーディング(グラレコ) • 要約

Slide 28

Slide 28 text

マインドマップ ここでも3⾊ボール ペンを活⽤する 本のままではなく、 ⾃分にとっての アウトラインを作る

Slide 29

Slide 29 text

UML 例)[9章 プラクティス5 「CLEAN」コードを作る]の概念を整理したクラス図 概念をモデル化する ことで理解を深化 ⽂章より図の⽅が後 から⾒て理解が容易

Slide 30

Slide 30 text

グラフィックレコーディング ⽂字だけではなく ビジュアルを活⽤ ⾃分⽤なので絵⼼が なくても⼤丈夫!

Slide 31

Slide 31 text

要約 •各章の要約⽂を書いてみる ◼ 9章 プラクティス5 「CLEAN」コードを作る 良いソフトウェアの⼟台となるコード品質は5つにまとめられ、頭⽂字を取るとCLEAN となる。 • Cohesive(凝集性) • Loosely Coupled(疎結合) • Encapsulated(カプセル化) • Assertive(断定的) • Nonredundant(⾮冗⻑) これらのコード品質は相互に関連性があり、どれか⼀つを改善すると他も改善されると いう性質がある。また、テストのしやすさと⾮常に関連が強く、テストしやすいコード を書くことがコード品質の向上につながる。 技術的負債が膨れ上がると開発が遅くなり、⾒積もりを狂わせる。コード品質を向上し ベロシティを保つことが、⾼品質のソフトウェア開発の⼟台となる。

Slide 32

Slide 32 text

イテレーション3: 読書マップを作る

Slide 33

Slide 33 text

⾃分だけのマップを作る

Slide 34

Slide 34 text

オリジナルの帯を考える コード品質こそが ソフトウェア企業を勝ち組にする ソフトウェア開発者が持つべき価値観と ⾼品質なコードを⽣み出すための実⽤的な プラクティスを提⽰するアジャイル実践書 他⼈に推薦するため キャッチフレーズを考え てみよう なぜ⾃分にとって 良書だと感じるの かを⾔語化

Slide 35

Slide 35 text

イテレーション4: 輪読会を⾏う

Slide 36

Slide 36 text

輪読会 • 複数⼈で同じ本を読み、集まっ て発表や意⾒交換を⾏う • 持ち回りで発表者を決め、発表 者は1〜2章の内容を資料にまと めて発表を⾏う • 感想の共有や意⾒交換、ディス カッションを⾏う

Slide 37

Slide 37 text

発表者のメリット •⼈前で発表することを意識するため、本への 向き合い⽅がより真剣になる •⼈に説明できるレベルになるまで内容理解を 深めることができる •⾔語化、資料化するアウトプットプロセスに よって記憶に定着する

Slide 38

Slide 38 text

参加者のメリット •⼀⼈で読んでいる時には思いもよらなかった 視点など、新たな気づきが得られる •他の参加者が持っている知識を活⽤して 疑問点を解消することができる •チームでの議論を通して理解を深めることが できる

Slide 39

Slide 39 text

まとめ

Slide 40

Slide 40 text

技術書を読む技術 • 良い技術書は何度も読んでようやく⾎⾁とな るまで理解することができる • 著者が提⽰する命題とその解決を正しく解釈 し⾃分なりに咀嚼することで、実務で活⽤で きるようになる • 何度も繰り返し読むことで記憶の定着効果も 期待できる(cf.エビングハウスの忘却曲線)

Slide 41

Slide 41 text

(参考)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/

Slide 42

Slide 42 text

参考⽂献 • M.J.アドラー・C.V.ドーレン(1978)『本を読む本』⽇本ブリ タニカ(⽂庫版『本を読む本』講談社学術⽂庫) • David Scott Bernstein(2019)『レガシーコードからの脱却− ソフトウェアの寿命を延ばし価値を⾼める9つのプラクティ ス』オライリー・ジャパン • 齋藤孝(2003)『三⾊ボールペン情報活⽤術』⾓川書店

Slide 43

Slide 43 text

Happy Reading!