私の仕事に影響を与えた4冊

2020年1月19日

私は日頃からそれなりに興味をもって技術書を読んでいますが、今回はその中で私にとって群を抜いて影響力のあった本について取り上げてみたいと思います。

Joel on Software

この本を挙げない訳にはいきません。

今では「Stack Overflow」の創設者として知られるジョエル・スポルスキーが、2000年~2004年にかけて公開していたブログをまとめた本です。技術書というよりはエッセイ集ですが、私はどの技術書よりも多くのこと、特に仕事の哲学を、この本から学びました。

この本の特筆すべき点は、ありきたりなことを絶対に言わないことです。著者はブログを書くにあたって、誰も言わないようなこと、あるいは主流とは対立する主張をあえてテーマに選択している節があり、それでいて核心を突いている点が面白いのです。たとえば仕様書のテンプレートが有害だなんて、この人以外が言っているのを聞いたことがない。今読めば時代錯誤を感じる部分もゼロではないですが、それでも大部分の主張はこの現代においても遜色ありません。

ブログの一部は今でもこちらで読むことができるので(2019/2/14 追記:リンクが切れました。ググれば単発の記事は掛かりますのでそちらからどうぞ)、肌に合うかを確かめてから購入するとよいかもしれません。

Effective C++

C++ の基礎を一通り習得している人に向けられた本です。

C++ という言語はこの本と併用することで初めて完成するといっても過言ではないくらい、C++ の語られない側面が語り尽くされています。私がこの本を読んでいなかったら、今でも実用に耐えない劣悪なコードを濫造していたかもしれません。仕事で C++ を使うなら、これは必読書です。

技術的には少し込み入った内容を取り上げているにもかかわらず、不思議と流れるように読めてしまうのも、この本のすごいところです。これ以降、Effective 何とかという名の技術書が雨後の筍のように現れたのも、さもありなんという感じがします。

リーダブルコード

プログラミングを仕事にする人にとっては、もはや常識に近い本です。学校の教科書にしてほしいぐらいです。

この本が出るまでは、コードをきれいに書くというのは、物好きがやることだと思われるようなところがありました(今でもそうかもしれませんが)。著者は、きれいなコードという概念を打ち立てるべく、あえて「リーダブル」という当時としては聞き慣れない単語を選んだのだそうです。その試みは成功していると思います。今では「リーダブルな」コードといえば、多くの人がそのイメージを思い浮かべることができます。

ただし何事もそうですが、原理主義に陥りたくはありません。この本の個別のテクニックはもちろん重要ですが、それを絶対的な教義と捉えるのではなく、この本に通底する価値観を掬い取って自分のものにするプロセスがより重要だと私は思います。その意味で、私はこの本からテクニックのみならず思想的な面にまでよい影響を受けました。

組込み現場の「C++」プログラミング

タイトルに「現場」という単語が入っているだけあって、貴重な「現場の知恵」がこの本には詰まっています。

組み込み系というのは、ウェブ系などと比べて明らかに情報発信の機運に乏しく、検索してもなかなか自分と同じ悩みを持つ人にぶち当たることがありません。

また、日本人は「プロセス」や「アーキテクチャ」といったような抽象レイヤーに価値を見出す傾向が強いせいか、このような実地に即した情報を見つけることは容易ではありません。ましてや C++ です。

要するに、「組み込み」「現場」「C++」という3つの AND 条件を満たす技術書に出会えたのは、私にとって奇跡のようなことでした。前例のない C++ による開発を私が始めようとした頃、この本はさまざまな罠を事前に回避するのに大いに役立ちました。何より、先人がいるという事実が励みとなり、C++ でやるという決断の拠り所になってくれました。

あいにく今では入手困難だそうですが、著者の方が善意で内容を公開してくれています。組み込みを C++ でやるという立場にある方には、ご一読をおすすめします。