プログラマならいつかは読んでおきたい(と言っておけばかっこいい)本10冊

昨日の技術力をあげたいプログラマが読んでおかないと話にならない本10冊は本自体にはあまり意味がなくでその技術分野が大事で、あとエントリーレベルのものが多かったので、今日は読み甲斐のある本を。
本棚に飾っておくとかっこいい本です。あと、本屋でまとめて買って持って帰れるなら、値段的にも重さ的にも、尊敬します。
ぼくが持ってない本や持っててもほとんど読んでない本がかなり含まれてます。「この人こんな本も読んでるんだー」などと無用に尊敬したらダメですよ。むしろ、そのように誤解させて尊敬させるための本です。

アルゴリズムデザイン

アルゴリズムデザイン

読んで面白いし、アルゴリズムカタログじゃなくて設計方法の解説が多いので、とてもいい本です。途中までは読んでるので続きを読まねば。
あとアルゴリズムの本としてはアルゴリズムイントロダクションが定番ですが、第二巻の計算量の解析はほかの本でほとんどとりあげられてないので、目を通しておくといいと思います。

計算理論の基礎 [原著第2版] 1.オートマトンと言語

計算理論の基礎 [原著第2版] 1.オートマトンと言語

計算理論の基礎 [原著第2版] 2.計算可能性の理論
計算理論の基礎 [原著第2版] 3.複雑さの理論

基礎として重要なオートマトンや計算量について勉強するにはいい本です。3分冊で一冊ずつはコンパクトなので、物理的に読みやすいです。
1冊で軽く読みたいなら計算論への入門がまとまってていいです。

トランザクション処理 上

トランザクション処理 上

トランザクション処理 下

この本、大判でマージンも少なくてページ内の文字数がめちゃくちゃ多いんで、なかなか読み進まなくて萎えます。重いし。と思ったら、上巻は絶版なのかなぁ。下巻は在庫があるようだけど。
データベースの実装まで含めた勉強だと、あとは洋書でDatabase Management Systemsなんかいいですね。まあ、データベースシステムを実装するんじゃなくて、普通にデータベースを扱うならプログラマのためのSQLなんかがいいと思います。

コンピュータプログラミングの概念・技法・モデル (IT Architects' Archiveクラシックモダン・コンピューティング)

コンピュータプログラミングの概念・技法・モデル (IT Architects' Archiveクラシックモダン・コンピューティング)

ガウディ本です。青い本は案外少ないので、本棚の差し色としておすすめです。
分厚いけど判が小さくマージンも多いので、思いのほか早く読み進めれるのだけど、やはり分厚いのでなかなか残りページが減っていきません。プログラムモデルの話なので、ここにあげた10冊の中では一番読んだほうがいい本かも。と思ったので、がんばって続きを読みます。

コンパイラ―原理・技法・ツール (Information & Computing)

コンパイラ―原理・技法・ツール (Information & Computing)

ドラゴンブックです。いいですよね、ドラゴンブック。本棚に飾っておくと魔除けになりそうです。サムネイル画像がないのが残念。かっこいいのに。
結局は古い本なんで、今から勉強するなら、元から日本語で書かれていて新しい中田先生のコンパイラの構成と最適化を読んで 最新コンパイラ構成技法(通称タイガーブック)に進むというのがいいんじゃなかろうか。そこまで本気じゃなくて概要が知りたいだけならば、コンパイラの理論と実現が本文は130ページ程度なのでいいかも。

分散システム 第二版

分散システム 第二版

タネンバウムです。 コンピュータ本の著者として知っておくと偉そうにできる人のひとりです。ほかにモダン オペレーティング システムとか書いてます。オペレーティングシステムの本では、タネンバウムの本ではなくオペレーティングシステムの概念というのが最近でてるのですけど、こちらのほうが気になります。
あと、知っておくと偉そうにできる著者にはパターソンとヘネシーというコンビがいます。パタヘネだとかヘネパタだとか略されますが、それぞれ違う本を差すので注意です。パタヘネはコンピュータの構成と設計で、ヘネパタはコンピュータアーキテクチャ 定量的アプローチです。よく話題に出るのはパタヘネのほうだと思います。
このあたりは本棚の一番下の段にまとめて並べておくのがいいと思います。

コンピュータの数学

コンピュータの数学

この本、黒地に黄文字で装丁がかっこいいんで、本棚に飾るにはとてもいいです。読むなら結城さんのプログラマの数学でいいんじゃないですかね。

Numerical Recipes 3rd Edition: The Art of Scientific Computing

Numerical Recipes 3rd Edition: The Art of Scientific Computing

微分方程式などを解くプログラムを書くための数値計算の知識も、持っておいたほうがいいと思います。そこで定番のNumerical Recipesですけど、日本語版ではないのは、もちろん「日本語版は古くて今では適切といえないアルゴリズムが載ってるんだよねー」などとAmazonの書評あたりで手に入れた知識をひけらかすことでえらそうに見せるためです。教養として実際に数値計算の勉強をするなら 数値計算のはなしがコンパクトで読みやすいと思います。

パターン認識と機械学習 上 - ベイズ理論による統計的予測

パターン認識と機械学習 上 - ベイズ理論による統計的予測

パターン認識と機械学習 下 - ベイズ理論による統計的予測

通称PRMLです。PR & MLと覚えとけばいいでしょう。シュプリンガーの黄色い本は、何冊か本棚においておくと見栄えがいいと思います。理論の詳細は別として機械学習を適用するという目的なら、集合知・イン・アクションあたりでいいかと。あと実用的な話としては 言語処理のための機械学習入門とかフリーソフトでつくる音声認識システムなんかがよさげです。

ゲーデル、エッシャー、バッハ―あるいは不思議の環 20周年記念版

ゲーデル、エッシャー、バッハ―あるいは不思議の環 20周年記念版

GEBといわれる本です。ゲーデル不完全性定理チューリングマシンの停止性問題にもつながるので、知っておくほうがいいと思います。読み物だしエッシャーの絵もかわいいんですけど、分厚くて箱からだすのもめんどうなので、ゲーデル不完全性定理についてちょっと知りたいなら理性の限界とかでいいんじゃないでしょうか。

創るJava―NetBeansでつくって学ぶJava GUI & WEBアプリケーション

創るJava―NetBeansでつくって学ぶJava GUI & WEBアプリケーション

本棚にあると個人的に尊敬します。タイトルも筆文字でかっこいいですよね?ね?