$30 off During Our Annual Pro Sale. View Details »

技術書を読む技術(JJUG CCC 2023 Fall)

yonetty
November 12, 2023

技術書を読む技術(JJUG CCC 2023 Fall)

yonetty

November 12, 2023
Tweet

More Decks by yonetty

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

  3. 技術書を愛してますか?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 技術書の場合
    のサンプル

    View Slide

  13. タイトル、カバー

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. 三⾊ボールペン情報活⽤術



    客観的に⾒て、
    最も重要な箇所
    客観的に⾒て、
    まあ重要な箇所
    主観的に⾒て、
    ⾃分がおもしろいと感じたり、
    興味を抱いたりした箇所

    View Slide

  22. 技術書に書き込む場合のマイルール



    本や章の主題や主張に通じる、
    重要な箇所
    それ以外の、
    重要な箇所
    わからなかった箇所、
    ⾯⽩いと感じた箇所、
    アイデアが得られた箇所など

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. ⾃分だけのマップを作る

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  39. まとめ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  43. Happy Reading!

    View Slide