インターネットデパート - 取扱い商品数1000万点以上の通販サイト。送料無料商品も多数あります。

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか

価格: ¥3,570
カテゴリ: 単行本
ブランド: エスアイビーアクセス
Amazon.co.jpで確認
ビットの楽しみ ★★★★★
非常に魅惑的な書名である。
なにせハッカーのたのしみだ。それは随分な"たのしみ"に違いない。
しかしこの本の実態は、ビット演算と機械命令を極めるテクニック集である。
この本の真価は、プログラマの関心と知識がビットの世界に到達したときに、
はじめて、かつ劇的に発揮される。

章立ても読み物と言うよりは、どちらかというとリファレンスに近いものだ。
文章は扱う内容と同じくらい洗練されて無駄が無い。そして難解だ。
これは全て読み通してハッカーになろうと無邪気に意気込む読者を、完膚なきまでに打ちのめすだろう。

本来この本は、プログラミングしていく中でふと高速化のヒントが欲しいときに、
ピンポイントでつまみ食いするようなものである。
そして、この本をそうした目的でつまみ食いする事が出来る人は、
もう既にハッカーの世界にいるはずだ。

だから、"ハッカーのたのしみ"なのである。
たのしみ? たしなみ? ★★★★★
知人に指摘されるまで、ずっと「嗜み(たしなみ)」と空目していました。

この本に書かれたことは、Hackerにとっての「楽しみ(たのしみ)」であり、同時にごく当たり前の「嗜み(たしなみ)」であるとも感じました。
ちゃんと読むと得した気分になれます ★★★★★
素晴らしい内容であり、星の数による評価はもちろん五つです。買って良かったと思います。「計算をビット演算のレベルに落として色々やる」という内容(しかも洗練されたもの)です。濃い勉強になりました。そんな本なので、レビューで普通に褒めるのでは正直言ってつまんないし熱意のある初学者にとって参考にならない。だから、このレビューでは対象読者層の説明と些細な不満の吐露をやろうと思う。

(1)
本書の内容は普通の大学の教科書レベルの話ではありません。そんなものよりも高度な内容です。「Cは難しいからJavaが好き」なんて学生や教員にとっては今は買うべき本ではありません(難しくて読めないでしょう)。

(2)
本書を読むためにプログラミング言語やプロセッサの知識が強く要求されるわけではありません。どちらかと言うと論理数学の知識や数学の証明を文脈を自分で埋めながら読む技術が要求されます。と、いうのも、「事実」は書かれていても「証明」は省略されているんですから。後者ができるならプログラミングの知識はそれほど要らないと思います。

(3)
一部の章は非常に読みにくいと思います(一章とか)。評者の推測では、この読みにくさは直訳どころか逐語訳が行われていることに起因します。僕は「あ、ここはきっと"if and only if"を逐語訳したんだろうな」などと推測しながら読みました。日本語の文章を英語に置き換えて読むとわかりやすいと思います。訳が悪い章が最初に来ているので、最初だけ読んで挫折しないように注意してね。
最後の頑張りに効きます ★★★★★
内容は間違いなく星5つ。ですが、あえて、欠点をあげつらってみます。

この書に挙げられたテクニックは確実に計算量の係数を減らしますが、次数を減らせるかというと違うことも多いです。そもそも計算する必要があるのかについては疑問を挟まないスタンスをとっています。

未熟なプログラマ -つまり私のような- は、アルゴリズムの選択を間違えて、データ量の定数倍の時間ですむはずの計算を二乗・三乗にしてしまうとか、そもそもやらなくてもいい計算をやってしまうとか、直視したくない放蕩をやってしまうものです。そんな無駄に気付かせてくれるのは、もっとありふれたアルゴリズムのアンチョコだったりします。Knuth の The Art of Computer Programming まで引っ張り出す必要はありません。高校教科書さえあれば旧帝大に合格できるように、3000円程度の和書をマスターするだけで中級のプログラマになれます。

土台から考え直すときには、むしろ別の本を探す方がいいです。土台を固めた上で最後の無駄を削る、つまり真のハッカーにこの書は役に立ちます。

Hackっていうのは、こういうコトさ ★★★★★
 単純なビット演算のトピックス集と侮ること無かれ。

 コードから贅肉を殺ぎ落とす工夫、例えばビット演算をすることによってバッファ変数を用いずに入れ替え(C/C++では不可能だ!)、空いたレジスタに次の演算のための変数を読んでおくことが出来たなら、あるいは秒間数千回ものループのなかで条件分岐を一段削減できたなら・・・

 単純な処理であっても、大量のデータを前に真に効率がよいコードを書ける人は少ない。Cの汎用性に馴染んでCPUのマニュアルを見ないどころか、下手したら配列の添え字の割り当て方すら考えていない人のほうが多かったりする現状では、こういう本の存在は貴重で、読まないことは先人の業績に対する冒涜的ですらあろう。

 プログラマをアーキテクトに導く、貴重な知恵の宝庫だ。