社内読書会でThe Rust Programming Languageを読破した
Table of Contents
1. Introduction
社内でRust本の読書会を開催したのですが、大成功で終わりました。 過去に社内読書会に参加した経験から、読書会というのはうまくいかないものだと思っていました。 途中で自然消滅したり、一部の人だけが話して終わったり、結局何も身につかなかったりと、苦い経験がいくつもあります。
今回は全員満足度も理解度も高く大成功に終わったという実感があるので、何が良かったのか後学の為に纏めておきます。
あくまで私個人の経験に基づく独断と偏見が多分に含まれている点をご了承ください。
2. 開催情報
2.1. 基本情報
次の期間/時間に開催しました。
- 2025年9月〜2025年12月
- 毎日平日 17:00〜17:30
20章と分量のあるThe Rust Programming Language 日本語版を読破しました。 メンバーは8人程度で、2人がRust熟練者、それ以外はRust初学者という構成でした。
2.2. 時間設定の意図
17:00〜17:30という時間帯は業務の終盤で集中力が切れやすい時間帯です。 読書会にあてることでリラックスできたかなと思っています。
30分という短い時間の意図はそもそもが業務時間内というのと毎日継続するのにちょうどよい長さだからでした。 長時間の読書会は準備も負担も大きくなりがちですが、30分であれば「今日はちょっと疲れているな」という日でも参加しやすかったです。
2.3. 進め方
30分間の内訳は以下です。 ドキュメントツールに開催日付で記事を作り、共同編集で学んだことをメモする形式にしていました。
- 前半20分: 前回の続きから読書、学んだことや発見や疑問を雑にメモする
- 後半10分: メモを見ながら全員に共有
3. 個人的な目標
「落ち着いて座学をやる」というのが年々苦手になってきていた実感があったので、「ちゃんと机に座ってひとつずつ落ち着いて理解しながら進めていく」というのを目標に掲げていました。 プログラミング言語の勉強といえど、手を一切動かさず、頭だけで理論を理解することを徹底しました。
特に今回の題材は理論を丁寧に理解していく必要があるRustだったので、題材としてはうってつけでした。
また、「他言語で得た知識で知ったかぶりしない」という目標もありました。 良くも悪くも普段プログラムを書いているせいで大体の言語は手なりに書けてしまっていますし、特に最近はAIのせいで深く考えなくても良くなってしまっています。 これが成長の足枷になってしまっているなという実感があったので、今回は理解が浅い部分の理解をサボらないことにしました。
4. うまくいった理由の考察
主に次の3パターンの取り組みをしました。
- 元の文章を読む
- Geminiで理解の浅い所を深堀する
- 自分の理解した部分を有識者に語る会を開く
4.1. Geminiの活用
普段の読書会中は、その日に読む分をGeminiに質問しまくりながら読んでいました。 Geminiに「自分の理解ではこうだけどあってる?」のようにとにかく聞いて正確な理解に努めました。 一般的な知識なのでハルシネーションがほぼなかったです。
具体的には次のような質問を投げていました。
- 「このコードがコンパイルエラーになる理由を、ライフタイムの観点から説明して」
- 「自分の理解ではこうだけど合ってる?」という確認
疑問点をすぐに解消できたのが助かりました。
4.2. 有識者に語る会
とはいえ、Rustは「所有権」や「借用」や「ライフタイム」や「スマートポインタ」など理解しにくい概念がいくつもあります。 そこで、必要に応じて「自分の理解した部分を有識者に語る会」を30分設けてもらいました。有識者にひたすら自分の理解を喋りまくるという形式です。
「有識者に語る」というのが非常に重要でした。 言葉を適当に濁せないし、用語を適当に使えないし、ちゃんと準備をしないといけないのが体験としてよかったです。 Geminiに質問攻めして「何が説明できれば俺は理解してるといえると思う?」とプロンプトに投げまくってました。
有識者に説明すると新しい知識が出てきたり、自分の中でしっくりする理解ができたのが良かったです。
世間的にはファインマンテクニックと呼ばれる手法です。
人生を変える最強学習メソッド、ファインマン・テクニック - Qiita
4.3. チーム構成と継続性
自分以外にもRust初心者が多かったので、他の人の質問から派生した知識も理解できました。読書会はチーム構成が重要だなと思いました。 有識者は必ず1人は必要ですね。
「毎日必ず集まって読む」というのもよい取り組みでした。 日によっては眠かったりやる気がない日もありましたが、時間を固定化することによってコツコツ進められました。 現代社会に自分を最適化すべく「要点だけをうまく抽出して速習をしなくちゃいけない」ものだと思い込んでいた節があったので反省させられました。
5. 今後やりたいこと
この3ヶ月で座学レベルでそれなりにRustを理解できたはずですが、ほぼプログラムを手元のエディタで書かずに終わってしまいました。
プログラムは動かしてなんぼなので、まずはJSONパーサを書いてみたいと考えています。 JSONパーサは練習題材としてちょうど良さそうですね。
他にも、家に積読が山のようにあるのでゆっくりコツコツ読んでいきたいです。 理解した内容を文章に纏めておき、必要に応じて説明できるようにしておくことは年々忘れっぽくなってる今こそ必要なことのように感じています。 ZettelkastenでいうところのLiterature Notesを積極的に書いていきたいです。