「プログラマが知るべき97のこと」(通称:きのこ本)は2010年12月に初版がでてから現在にいたるまで読み継がれているオライリーの本です。エンジニアやプログラマのなかではよくおすすめ本に名が上がるほどの良著です 。

世界中の経験豊かなプログラマが自らの体験を踏まえて解説したエッセイが収録されており、読者であるエンジニアやプログラマを勇気づけ、新たな気づきをもたらしてくれる一冊となっています。

IT業界のエンジニアやプログラマの方々、新人から中堅~上級まで幅広くの人にこの本の存在を知ってもらいたい、と思うほどの良本でした。

現在はすべてのエッセイがWeb版で無料公開されていますので、この機会に気になるタイトルに目を通してみることをおすすめします。

プログラマが知るべき97のこと(Web版)

以下、エッセイタイトルの抜粋です。

 01.分別のある行動
 02.関数型プログラミングを学ぶことの重要性
 03.ユーザが何をするかを観察する(あなたはユーザではない)
 04.コーディング規約を自動化する
 05.美はシンプルさに宿る
 06.リファクタリングの際に注意すべきこと
 07.共有は慎重に
 08.ボーイスカウト・ルール
 09.他人よりまず自分を疑う
 10.ツールの選択は慎重に

[出典] プログラマが知るべき97のこと O’REILLY

感想

私が新人のときに上司に勧められて読み始め、現在にいたるまで愛読している書籍です。

この本は、各プログラマの思想や哲学をそれぞれ綴っていますが、「一番伝えたいことはなにか」「今の自分の状況に当てはめるとどうか」など自分なりに考えさせられることが多くあります。

入社1年目のときは文中の技術用語や概要から理解できないこともありましたが、“プログラムは動かすだけではいけない ” ということをこの本を読みながら新人ながらに理解しようとしたのを覚えています。
その後、開発現場で経験を積んでからこの本を読み返すと、1年目のころに読んだ印象とは違いプログラマ達が伝えたいことが手に取るように分かるようになっているのです。


例えば、

「09.他人よりまず自分を疑う」

文頭から“プログラマは自分の書いたコードに何か誤りがあるとは考えようとしない人種 ” だと書かれています。

確かに、仮に自分の書いたコードが想定と違う動きをしたとき、プログラムを見返してもデバッグしても原因が分からないとなると、「コンパイラのせいかもしれない」と考えることがあるでしょう。

それは経験年数が上がりある程度プログラムが書けるようになるとなおさらそのような考えがよぎるようになった気がします。

私が「本当にコンパイラのバグが問題の原因だった」という経験をしたのはたった1度だけで、ループ変数の最適化に関わるバグでした。それよりも、コンパイラあるいはOSのバグのせいだとばかり考えて時間を無駄にした回数のほうがずっと多いのです。自分の時間、サポート担当の時間、管理者の時間をさんざん無駄にした挙句、結果は自分のミスが原因だったと判明して力が抜けたということが何度もありました。

著者アラン・ケリー(Allan kelly)

自分の経験を思い返してみると本当にその通りで、結局は自分のコードの思わぬところにバグがあったりするんです。
新人の頃はコンパイラのせいなんて思うことはなかったのに、いつの間にか初心を忘れ自分のプログラムスキルを過信してしまうようになっていたことを気づかされました。“プログラマは自分の書いたコードに誤りがあるとは考えようとしない人種 ” という言葉に改めて納得してしまう自分がいました。

この本の中の著者たちが言いたいこと・伝えたいことは、必ずしも全て共感できるという訳ではありません。

しかし世界で活躍するプログラマの著者達によって書かれたエッセイは、はっと気付かせてくれる力強い言葉や共感できる体験談が多く、新人プログラマにも中級上級プログラマにも新たな気づきをあたえてくれます。

まだこの本を読んだことないエンジニア・プログラマは、この機会に手に取ってみることをおすすめします。