エンジニア生活を送っていく上で、技術書を買うことは必須に近いと考えています。では、どんな買い方をすればいいでしょうか。
技術書のメリット・デメリット
コンピューター技術の具現化であるインターネットの世界には、当然のごとくコンピューター技術に関する情報が転がっています。そして、その情報は、(ものにもよりますが)いちばんの最先端のものまで、その気になれば調べ上げることができます。
となれば、わざわざお金を出して本を買う意味はどこにあるのでしょうか。自分としては、「一貫性」と「深さ」がポイントになるかなと考えています。
一冊の本にまとめる以上、本の全体としてみれば、あるテーマについて一貫して取り上げています。1ページ単位の断片的な情報や、単なるリファレンスのデータベースとしてでなく、そのテーマの「世界観」についてつかむことができます。
また、Webサイトで簡単に得られる情報は、多くの場合ものの「使い方」程度ですが、書籍だと深掘りして追究されていることもあります。表面的な知識でとりあえずその場に対応するのと、深いベースまで考えを巡らせた上で実践していくのでは、やれることが大きく違ってきます。
どんな本を買うか?
自分としては上のようなところに書籍の魅力を見出しているので、ネットで調べてもそこまで手間がかからないだろうし、すぐに交代してしまうような、テクニック集はあまり買う気になりません(すぐに役に立つことは、すぐに役に立たなくなること)。だいたい自分なりの基準として、「1つの『世界』をしっかりと掘り下げているもの」を買う、という感じです。
どんなのがいいのかわからなかったら、先輩に聞いてみるのも一案でしょう。また、JavaScriptの「サイ本」や、Webセキュリティの「徳丸本」のように、略称がつくほどに定番化している本があることもあります。
自分が買った本の例
もちろん実際にはもっと買っているのですが、何冊か紹介しておきます。
C言語による最新アルゴリズム事典
この本は小学生か中学生の時に買って、今でもときおり見返しています。実際のアルゴリズムをどう起こすかという部分について、豊富なサンプルが多くのものを伝えてきてくれます。また、$O (n)$ のようなアルゴリズムの計算量見積もりは、ちょっと大きなデータを扱う段になれば、必須な知識となってきます。1991年発行と、「最新」というには程遠くなっていますが、クイックソートやユークリッドの互除法、級数展開といったものは少なくとも数十年前から、ものによっては数百年、数千年と生き残ってきた、「枯れた」アルゴリズムなので、そこまで気にするほどのことではありません。
ECMA-262 Edition5.1を読む
この本は、JavaScriptのベースとなっているECMAScript(ECMA-262)の仕様書を、そのまま和訳したものです。こうして読みやすい形になった言語の仕様書というのもあまり見ないので、微に入り細にわたるまでびっしり決まっていることに、ある種の感動も覚えました。
なお、これに限らず、いざというときは「仕様書」あるいは「ソースコード」まで戻ってみると、見えるものがあります。表面的な挙動に左右されるのではなく、コアの理解を進めて行きましょう。
暗号技術入門 秘密の国のアリス
単なるWebサイトまでがSSL化へと進んでいく世の中で、暗号技術は欠かせないものとなっています。そんな社会の中で、「暗号技術はオープンなものを使ったほうがむしろ安全」など、一般常識とはかなり異なっている「秘密の国」のガイドブックとして持っておきたい一冊です。