もくもく読書会とは?
もくもく読書会とは, 積読消化のためにもくもくしてわいわいする会のことである.
以下, ちゃんと説明する.
How to もくもく読書会
読む本は決っているものとする.
- 毎週など定期的にカレンダーに枠をふたつ (A, B) を入れておく.
- A の時間になったら各自でもくもくする. 本文を読んだり気になったことを Web や論文で調べる. Google docs に疑問点や深掘りした結果や話したいことを書いておく.
- B の時間になったら全員わいわいする. Discord のボイスチャンネルに集まって docs に書いてあることを上から話していく.
だいたい A を2時間, B を1〜1.5時間くらいで枠を取っています.
- 仕事が遲くなって A の時間が十分取れなかったりとか, 他の人よりも進捗が遅れているなどのときは次回に向けて余分に時間を取って追いつくようにする.
- そもそもコンスタントに A の時間にもくもくできない場合はその人が別日に予習しておく.
- B の時間中に脱線して論文を調べ始めるときもある. 参加者の合意が (ゆるく) 取れているなら OK.
何故この形式なのか?
- 積読を 各自で 消化できるから.
- 輪読会は負担が大きいから.
最初のモチベーションは積読を消化したいというものでした. 気にはなっているけど読む時間をがっつり取れなさそうなものを圧をかけて読みたかった.
以前輪読会や論文読み会に参加していましたが, あれは以下の様な課題がありました:
- 自分の担当箇所以外で手を抜いてしまいたがち. (意思が弱いため.)
- 自分の担当箇所を詰めるのが重い. 詰めるのに2週〜4週くらいかかる. (特に慣れてない分野の論文だと.)
それに対してこの形式であれば
- 基本的に各自で事前に読んでくることが期待される. (但し単発で読めてない回があっても別によい.)
- 理解したと自信を持てるようになるまで延々議論できる.
- (進捗が遅れてなければ) 準備は A の時間のみ.
といった感じで, 心理的な負荷がかなり軽いというのが利点です.
やってみた結果
2023年の初頭くらいからやり始めた気がします. 以下の本を読みました:
- [試して理解]Linuxのしくみ
- 1ヶ月くらいな記憶
- プログラマーのためのCPU入門
- 1ヶ月
- Rust Atomics and Locks
- 3ヶ月
- Learning eBPF
- 3ヶ月
- 詳解 システム・パフォーマンス 第2版
- 12ヶ月
- マイクロプロセッサ・アーキテクチャ教科書
- なう
他にも Linkers & loaders, Database System Concepts, Paxos Made Simple などが積読されています.
最初は前職の同僚に声をかけて始めて, 何人か知り合いにも声をかけて参加してもらいました.
参加者の感想
個人的には, 目的が良い感じに達成されており満足しています. 最近は (相対的に) (書籍で省略されていても) 理解に妥協しない感じになっており時間がかかるようになってきている気がします 1.
アンケートを取ったところ他には次の様な意見がありました:
- 「話す人が半固定化している」「自分が喋りすぎ」「もっと積極的に議論に参加したい (お前がやれ)」
- 理解を深めるための場なのでわかっていなくても積極的に誘導に沿って議論に参加することが求められます. 議論の前にサイコロを振るなどでランダム化してみるつもりです.
- 「本文流し読みしがち」
- 本の読み方に個人差があって, それを補強するための B という面はあります. 個人で全部詰められるなら B 要らないし, 読んでなれば議論に参加できないしでバランスが難しいところ.
- 「後半集中力がなくなりがち」
- 開催時間を早めました.
課題
- 折角調べても誰も blog とかに纏めないので知識が閉じてしまいがち
- お前がやれ案件なんですが... いや裏取りをちゃんとするのめちゃくちゃ時間かかるんですよね... コンスタントに blog 書いてる人偉すぎ.
- もくもく論文読み会やりたい
- 今の負荷的に絶対時間なくなるので保留中...
告知
興味ある人は声をかけてもらえれば招待します. 今は マイクロプロセッサ・アーキテクチャ教科書 の1章です. 毎週月曜, B は 21:00 -- 23:00 です.
要件は 1. 趣旨に沿えること, 2. 他の参加者と協調できること です.
人数が増えすぎるとファシリテートが難しくなるので予告なく締めます.
まとめ
もくもく読書会フォーマットオススメ. 他でも立ててみてください. (僕も参加しに行きたい.)
例えば詳解 システム・パフォーマンスの演習問題の大半をやったり, 準仮想化について gVisor と Firecracker を 自分達で論文などを調べてまとめたり.