付録 読書ガイド
本書は、プログラマーが「なぜそう考えるのか」をつかむための入口として書いた。ここから先は、ぜひ元になった本や論文そのものを読んでほしい。
全部を順番に読む必要はない。まずは、自分がいちばん引っかかった章から入るのがいい。そのうえで、「最初の一冊」と「次の一冊」を示す。
まず最初に読むなら
1. 『人月の神話』 フレデリック・P・ブルックス Jr.
複雑さ、見積もり、銀の弾丸探し。ソフトウェア開発がなぜ難しいのかを、流行語ではなく地に足のついた言葉で考えたいなら、まずここから入るのがよい。
向いている章:
2. 『リファクタリング』 マーティン・ファウラー
本書では思想や歴史の流れを中心に書いたが、実際にコードをどう整えるのかへ降りていくなら、この本が橋になる。読みやすさ、変更しやすさ、設計の手入れが、同じ実践の中に並んでいるとわかる。
向いている章:
3. 『XP エクストリーム・プログラミング』 ケント・ベック
変化を前提に作るとはどういうことかを、単なる精神論でなく実践の束として読むのに向いている。本書の第3章と第4章を、実際の開発の作法として読み直しやすくしてくれる。
向いている章:
4. Free Software, Free Society リチャード・ストールマン
第6章を読んで「自由」の意味をもう少し正面から受け止めたくなったら、やはり原典に近いところへ行くべきだと思う。賛成するにせよ距離を取るにせよ、一度は自分で読んでおく価値がある。
向いている章:
5. Weaving the Web ティム・バーナーズ=リー
Web が単なる技術の積み重ねではなく、どういう思想で作られたのかを知るにはよい入口になる。第9章の「誰のものでもない」という感覚に、作った本人の言葉で触れられる。
向いている章:
テーマ別に読むなら
複雑さと設計
読みやすいコード
- Structure and Interpretation of Computer Programs
- Donald E. Knuth, "Literate Programming"
- 『リファクタリング』
テストと変更
オープンソースと自由
言語と道具の思想
Web と公開性
読み方の勧め
- 一冊を全部理解してから次へ進まなくていい
- 難しい本ほど、まず目次と序文と結論だけ読むやり方でいい
- 本書の対応する章を読み返しながら往復すると、名著の言葉が急に自分の問題として読める
名著は、要約で知った気になるより、どこかで一度、原文や原典に当たるほうがいい。本書が、そのための助走になれば十分だと思っている。