技術書を自分のお金で買うようになってから、かれこれ十数年。
ダメな技術書が放つ独特のニオイがやっとわかるようになってきたので、書いてみました。
以下、主観を多分に含みます。「あー、あるある」と思いながら軽く読んでくださいね。
(逆バージョンの「良書のみつけかた」は、近日公開予定でございます。)
ダメな技術書の「あるある」
誤字・脱字が多い
推敲に時間を割いてないことの証拠である。よって誤字・脱字が多い本は技術書としてもクソ本である確率が高い。
正誤表・サポートページがない
多少の誤字・脱字は仕方がないとしても、それを Web で補う気すらない著者がいる。そういう方の書いた本は、えてしてクソ本であることが多い。
レビュアーの名前が献辞に載ってない
レビューを経ていないと、著者のひとりよがりな内容だったり、技術的に正しくない内容があったりするので要注意だ。(※レビューなしで良書を出してる方もいるので、これだけでクソ本判定してはいけない。)
監訳者がいない or いるけど監訳してない
翻訳書の場合、その道に詳しい人に監訳をしてもらわずに出版されてしまった本がある。監訳者がいたとしてもほとんど仕事をしていないような場合がある。ひどい場合だと翻訳会社にベロンと丸投げしてそのまま出してしまったような本すらある。それらのどれであったとしても、訳文がしっちゃかめっちゃかになるのは避けられない。
この場合、原書が良書であったとしてもクソ本と化す。ただ単にクソ本を出すことでも大罪なのだが、翻訳独占権によって他の良識ある人が別訳を出すことができなくなってしまうので、その業は深い。
サンプルコードがバグバグ or 動かない
こういうのに遭遇するたびに、コードは実際に動かしてチェックしてくれよ、と思う。
サンプルコードに脆弱性がある
高木先生に首を刈られる危険性を知らずに出版してしまっている時点でヤバい。
著者のプロフィールが長い or カッコ良すぎる
プロフィールがやたら長いと、クソ本率が高まる。海外大学卒とか、何かの資格を当時最年少で取得したとか、ナントカ協会の理事だとか、そういうのをひけらかしている場合なぜか技術的な内容もクソであることが多い。バズワード (「クラウド」とか「BYOD」とか) がそこに含まれていると、クソ本率がMAXになる。不思議だ。
やたらと多い参考文献
参考文献が何ページにもわたってずらずらと列挙されている本は、何故かクソ本であることが多い。
RFC・I-D・本・Webページ・言語仕様・リファレンス、その他やたらめったらとリストアップされている (しかも本文中との関係が示されていない) 本があって、内容をみたら案の定クソであった。
無意味な付録
本文と関係がない無意味なものを、そのままベロンと巻末に採録している本はクソ本率高し。PHPの言語仕様を採録している本があった。内容をみたら案の定クソであった。GPLの翻訳全文を無意味に採録している本があった。内容をみたら案の定クソであった。
危険人物
クソ本ばかりのくせに何冊も出版している著者がいる。なぜそんなことが可能なのかよく分からないけど、本当にそんな人がいるんだよ!
買う前にググって、著者がネタ人物扱いされていないかどうかよくよくチェックするべき。
油断してはいけない……
以下はダメとはいえないまでも、注意しておいたほうが良い場合。
古い
技術書は経年劣化が激しい。
ものすごくおおざっぱに言うと、2005年以前のJavaの本、2009年以前の Ruby・Ruby on Rails の本、2006年以前の JavaScript の本、2005年以前の MySQL の本は概ね使えないと思っておいたほうが良いと思う。
もちろんそのなかにも良書はあるので、よくよく確かめてから買ってほしい。
「○○公式」「○○認定」
「公式と書いてあるから」と安心して買ってしまうとひどい目に遭ったりする。よくよく考えてみれば公式だろうと認定を受けていようとダメな本はダメな本だし、良い本は良い本である。
内容の良さにはあまり関係がない。
ポケットリファレンスの類
個人的にはイマイチ。買ったけど結局使わないことが多い。
クックブックの類
同じく。好きな人もいるみたいなので、相性の問題かも。
余談
誤字・脱字がやたらと多いことで有名な、とある方がいる。そのお方、著書について Amazon のレビューで誤字・脱字についてボロクソに書かれたら、自身のブログで「誤字・脱字が多少あったとしても技術書なんだから別に良いだろ、普通わかるだろ」みたいなことを言って開き直っていた。多少ってレベルじゃねーよ、とツッコミはさておき、開き直ってる時点で書き手として論外でしょ、と思った。
実はつい最近、似たようなことを言ってる人を他にも見つけた。良書とクソ本の区別がつきやすくなるので助かるなぁと思った。
もちろん、その本には正誤表が無かった。