“面白い”技術書

Blog Single

みなさん、技術書って読んでいますか?

 
世の中には数多の種類の本がありますが、その中でも技術書はなかなかハードルの高い部類に入ります。
一般的な本に比べて高額なものが多いのも否めませんし、挫折してしまう可能性もどうしても付き纏います。
そして、”味気なく、面白くない“というイメージから手を伸ばさない方も実は多いんじゃないかなと思います。
 
言うまでもなく、主に技術習得や勉強のために読むものなので面白さは二の次ではあるのですが、好むと好まざるとに関わらず必要に駆られて否応無しに読むような状況でもない限り、面白さというのは案外重要なんじゃないかと個人的には思っています。
 
そこで今回は、僭越ながら自分が読んでて特に「面白いな」と感じた技術書を紹介していきたいと思います。
挿絵が多いだとか変な誤字があるとかではなく、技術書としての面白さ・興味深さを重視しました。
 
 
「コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方」(オライリー社)
 
プログラムを正しく書けばコンピュータが動く、というのは決して間違いではないのですが、コーディングから実行までの間に我々の見えないところで色々な過程を踏んでいます。
昨今、プログラミングは一般的に人間が読んでも意味を理解しやすい”高級言語”と呼ばれるプログラミング言語で描かれることがほとんどですが、そのコードをコンピュータにとって理解しやすい言語へと噛み砕いてあげる必要があり、コンパイルなどを経て”アセンブリ言語”や”機械語”と呼ばれる状態まで翻訳されます。
さらに、ハードウェア階層にてハードウェアプラットフォームから回路へと、最終的には0と1で表されるブール論理によって動く論理ゲートまで噛み砕かれ、ようやくコンピュータが動いてくれます。
つまりどんなコードも最終的にはブール論理まで噛み砕かれるということです。
「コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方」は、上記の説明を逆から実行します。つまり、0と1で動く論理ゲートをまず実装し、徐々に複雑にしていって最終的にテトリスができるコンピュータを作るのを目的としている本です。

とはいえ詳しく説明すると各段階に関して一冊の本が出来るぐらいなので、かなり要点に絞った説明になっており、それゆえなかなか難しい内容になっています。それでもめちゃくちゃ面白いです。
コードに狂いがなければコンピュータが動くという謂わば魔法のような状況を半ば当然の如く受け入れてしまいがちですが、その魔法を少しだけ身近に感じれるようになります。
    

「オブジェクト指向のこころ」 (丸善出版)
 
プログラミングを勉強していると”オブジェクト指向”という言葉は度々登場し、プログラミング初学者を怯えさせます。
自分がそうだったのですが、オブジェクト指向のいくつかの特徴を教えられ「なるほど」とは思うものの、どうしてオブジェクト指向がこんなにもプログラミング界で席巻しているのか、どうしてここまで重宝されているのかが実はそこまで理解できませんでした。

この本では、オブジェクト指向は何のために存在しているのか、どうしてそんな特性を持っているのか、がわかりやすく説明されています。
さらに、オブジェクト指向を使いこなすのが目的ではなく、色々な目的に応じてオブジェクト指向の特色を利用する、ということを教えてくれます。
実現したい幾つかの要件が提示され、それらがオブジェクト指向の特性を生かして実装されていくのを目の当たりにして自分は「なるほど」と思いました。

本の中盤からは、これまた度々耳にする”デザインパターン”も上手く取り入れたプログラミングの実装を提示してくれます。
何で使うんだかわからないけどとりあえず便利なものとしてではなく、何か実現したいものがあってそのためのツールとして効果的に用いる方法を教えてくれるので、存在意義が理解しやすいです。
    

「JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング」 (翔泳社)
 
JavaScriptとNinjaというおよそ出逢いそうもなかった言葉の組み合わせからイロモノ本のように思われてしまうかもしれませんが、この本の筆者であるJohn ResigはなんとjQueryの産みの親です。
移り変わりが激しいフロントエンド業界で10年以上現役のJSプラグインを生み出した人が解説するJavaScriptの本なので、かなりマニアックですし難解です。JavaScriptの勉強を始めようとして本書を最初に手に取るのはお薦めしません。
とはいえ、すぐに混乱しがちなクロージャ周りやイベント関連の話題、果てはクロスブラウザ開発を見据えたコーディング方など、JavaScriptで陥りがちな罠と回避方法が理論立てて説明されててかなり圧巻です。

ただし、タイトルから想像される通り、筆者はかなりの日本マニアらしく、変数名に”shuriken”や”kunai”や”makibishi”などを用いており、癖は多少あります。
関数の中で手裏剣を呼び出したりしてるのを想像すると混乱してしまうので、想像しないのをお薦めします。
ちなみに筆者は今現在、浮世絵を嗜んでいるそうです。
      
いかがでしたでしょうか。
少しでも興味の惹かれる本があったのならば幸いです。

技術書は勿論、本全般が好き。品揃えの良い本屋に行くとテンション上がりすぎて後で具合が悪くなる。

Other Posts: