未来を担うプログラマーになるために―『The Pragmatic Programmer, 20th Anniversary Edition』を読んだ

本『達人プログラマー』の20周年版『The Pragmatic Programmer, 20th Anniversary Edition』(未訳)を読み終えたので読後記事を書いておきます。

本について

本書はソフトウェア開発コミュニティをリードするDavid Thomas, Andrew Huntによる共著で、初版の『The Pragmatic Programmer』(訳書名は『達人プログラマー』)は長くプログラマー必携の書として愛されてきました。本書は1999年に初版が発売されて以来初めてのアップデートとなる20周年記念版です。購入は著者自身が運営するThe Pragmatic Bookshelfにて可能です。

pragprog.com

僕自身も旧版を読んでかなりの影響を受けた本で、技術書を1ヶ月に1冊読む毎年少なくとも一つの言語を学習する、といった習慣はこの本を読んで開始したものです。 DRYといった言葉を広めたのもこの本でした。

53のトピックのうち1/3ものトピックが新しいものとなっており、既存のトピックも含め、かなりの改変が加えられています。ソフトウェア開発の世界で20年といったら相当な期間なため、それだけのアップデートが必要となることもうなずけます。

トピックは哲学から始まり、コーディングに関することや、ツールやプロジェクトの進め方や、並行性に関するものなど、広範囲に渡っています。

感想

Juggling the Real World トピックなど、 有限状態マシンといったコンピュータ・サイエンス的な要素も持ったトピックが増えており、大変楽しく読めました。Transforming Programming トピックではElixirといった著者が得意とする最新の言語も利用しつつ、パイプラインなどのモダンな手法について触れられており興味深かったです。Test to Code トピックの「テストは実行する時ではなく、考えたり書いたりする時に恩恵をもたらす」といった言葉にはハッとさせられました。

また、トピックの始まりの名言の引用など、テクノロジー以外の分野からの参照も多く示唆に富んでおり、説得力を持って響いてきました*1

対象読者

個人的には旧版を読んだのはまだ実務経験が浅かったころだったため理解が追いつかなかったこともありましたが、今回は具体的なイメージをしながら読めたため前回読んだ時より身になった感が強かったです。

そのことから、ある程度経験を積んだ上で読んだほうがいいかもしれないと思いました。Hacker News などのコメントを見ていると自明なことばかり書かれていてあまり得るものがなかった、という人も中にはいるようなので、ベテランというよりは初〜中級者が読むとより効果が高いのかな、と思います。

後書きに身が引き締まった

最後を締める後書きでは、「我々開発者は非常に特権的な立場にあり、文字通り未来を作っており、強力なパワーを持つ。そしてそれはとてつもない責任を伴う」と述べています*2。この言葉に改めて身が引き締まりました。

まとめ

20年ぶりの刷新となりますが、逆に言えばそれだけの間更新されなくても特定の言語やツールに囚われない普遍的な力を持った本だったということだと思います。

今回の20周年版も、広範囲に渡る53のトピックがこれからの20年を良いプログラマーとして過ごすために必要な知識や慣習を支えるものとして手助けしてくれそうです。

未来を担う責任を持つプログラマーの一員として、細部にこだわりながら*3これからも励んでいきたいと思いました。

pragprog.com

リンク

*1:著者のAndrew Huntによる『リファクタリング・ウェットウェア』も考え方を科学的に改める機会となるものとしてお勧めです

*2:"With great power comes great responsibility" ってやつですね

*3:著者は良いプログラマーになるためには実際のところ paranoid になる必要があると述べています