2008年 04/01 わたしが知らないクズ本は、きっとあなたが読んでいる
■[bib][Java][OOP]自己流オブジェクト指向&Java参考書 『非』お勧め版
お奨め本リスト*1と対をなす,非お勧め版の入門書・参考書リスト.*2
あくまで『非』お勧めの、駄本、屑本リストである点に注意。しかし皮肉な話だが,初心者を惑わす入門書を避けるためにも要チェックだろう.
主に「何故か有名だけど悪い本」を取り上げる予定.「無名だけど悪い本」はきりがないので,ここではパス.結果として持ってない本が中心になるので詳細について触れるつもりはない.*3
「オブジェクト指向本」
実は「オブジェクト指向」というのは,あまり専門的な用語ではない.*4オブジェクト指向プログラミング(OOP),オブジェクト指向設計(OOD),オブジェクト指向分析(OOA)などと,きちんと区別すべきだ.ただ口頭で話す時は「オブジェクト指向プログラミング」と言うのは冗長だしOOPと言っても理解してもらえない.しかたがないので省略して「オブジェクト指向」と言う時も少なくない.
ここで挙げるのは「いわゆるオブジェクト指向」であって,そのほとんどはOODが基本となっていることが多いようだ.
栄えあるワースト1.
いわゆる憂鬱本.有名且つ悪質な本で,日本のIT業界におけるオブジェクト指向プログラミングの普及に著しい悪影響を与えた元凶ではないだろうか.*5 *6
しかも厄介なことに,なぜか素人受けがいい.OOP初心者がこの本を読むと完全に間違った認識を刷り込まれてしまい*7,その後の学習にも支障が出るなど,悪影響が非常に大きい.これは金と時間の無駄使いにしかならない屑本なので,間違って買ってしまった場合はさっさと廃棄処分にするのが得策だ.廃棄処分にしても失った金は戻ってこないが,少なくともそれ以上時間を無駄にしなくてすむ.
- 実際ぼく自身この本を読んでしまったことによって,随分長い間オブジェクト指向を理解した「つもりになってしまって」いた.
- 初心者でもサクサク読めるので,何も知らないと簡単に洗脳されてしまう感じで怖いです.実際されたのですが.
タイトルは「憂鬱な人も楽しくなれる」という意味なんだろうが,まともなプログラマがコレを読むと日本のIT業界の将来を憂いて憂鬱になるのが現実.この本が何故絶賛されるのかは大きな謎だ.ひょっとしたらFizz-Buzz問題も分からない「自称プログラマ」や「自称プロマネ」や「自称設計者」がコレを読むと,今まで理解できなかったことが理解できたつもりになって,自己満足に浸れるせいかもしれない.
以下順不同.
「オブ能」にしろ「ゲーム能」にしろ,そんなものは存在しない*8.ある意味で憂鬱本を継ぐ物かも.*9
「オブジェクト指向でなぜ作るのか」というタイトルに反して,作り方は説明されていない.
入門 オブジェクト指向設計―変更に強く生産性が高いシステムを
- 作者: 滝沢克泰
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/12
- メディア: 単行本
類書多数.
Java
この本を読めば,あなたはオブジェクト指向からますます遠ざかること受け合い.
昔パラパラ見て,タイトルに反して良いコードの参考にはならなかったことだけは覚えている.
Java入門書
たしかに初心者にはこういう本も必要なのは認める.しかし入門書としては許容範囲なのかもしれないが不適切な表現や間違いも多く,これらの本で得られる知識をベースにする限りはまともなJava開発者になるのは非常に厳しいだろう.この一冊で終わった人は,Java開発者としても終わってる.
例えるならこのような入門書は中学生用の英和辞典のようなものだ.中学1年で,"This is a pen."も"I am coffee."も分からないレベルだと,こういう辞書も便利だ.だが中学生用の辞書で勉強する限りは永遠に英検4級レベル*10から抜け出せない.プロを目指すなら,あるいは高校受験に備えるなら一刻も早くそんな辞書を捨てて,まともな辞書に買い換えることが重要だ.
パラパラと見た限りでは,内容は未だにJDK1.1以前のものを引きずっている.Java5対応は望み薄*11.これは大半の入門書で同じことが言える.*12
- 作者: 高橋麻奈
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2005/09/01
- メディア: 単行本
ベストセラーだからと言って良書とは限らない好例.コンパクトで手取り足取り教えてくれるので,入門書としては悪くはないが,これを全部マスターしてもようやく低レベル開発者になるのがやっとだ.
Web
- 「オブジェクト指向を正しく理解する」http://itpro.nikkeibp.co.jp/article/lecture/20061204/255699/
- 「いまからでも遅くないJava 第二回 オブジェクト指向、本当に分かってる?」http://jibun.atmarkit.co.jp/lskill01/rensai/imajava02/imajava01.html
- 「UMLモデルをどうやってC言語に落とし込むか」http://www.atmarkit.co.jp/fembedded/robocon/etrobo06/road03/road03a.html
- 「基礎からのオブジェクト指向」http://itpro.nikkeibp.co.jp/article/COLUMN/20061128/255110/
- 「開発をもっと楽にするNAgileの基本思想」http://www.atmarkit.co.jp/fdotnet/nagilemind/index/index.html
- 「オブジェクト指向の世界」http://www.atmarkit.co.jp/farc/rensai/column/world10/world10.html
- 「矢沢流 これで納得!オブジェクト指向入門」http://itpro.nikkeibp.co.jp/article/COLUMN/20070531/273154/
- 「初心者がJavaを“超高速”で学ぶためのコツ」http://itpro.nikkeibp.co.jp/article/COLUMN/20060927/249181/
- 「オブジェクト指向分析・設計の基本」http://itpro.nikkeibp.co.jp/article/lecture/20070419/268987/
- 「Javaオブジェクトモデリング」http://www.atmarkit.co.jp/im/carc/serial/jobjmdlindex/jobjmdindex.html
- 「羽生田栄一の「オブジェクト論」」http://itpro.nikkeibp.co.jp/article/COLUMN/20061128/255060/
その他多数.
番外
ダメコードの例.本そのものは名著なので勘違いしないように.
C言語のダメプログラム集.こういうコードを書いている初心者は反面教師から学ぶことは多いはずだ.こういうコードを書いている「熟練者」は,さっさと引退した方が良いだろう.
- 作者: ジョシュア・ブロック, ニール・ガフター, 柴田芳樹
- 出版社/メーカー: ピアソン・エデュケーション
- 発売日: 2005/11/14
- メディア: 大型本
言わずとしれたJoshua BlochとNeal Gafterによる,Javaの重箱の隅をつついたパズル本.パズルとしては名著だが,間違ってもこの本の書き方はマネしないように.仕事でこんなコードを書く奴は,開発者としては最低だ.
関連 :-)
- http://slashdot.jp/developers/article.pl?sid=06/12/19/0657215
- http://d.hatena.ne.jp/yupo5656/20061215/p1
備考:憂鬱本について
SFはどこまで実現するか―重力波通信からブラック・ホール工学まで (ブルーバックス)
- 作者: ロバート・L.フォワード, 久志本克己
- 出版社/メーカー: 講談社
- 発売日: 1989/11
- メディア: 新書
- 作者: 柳田理科雄
- 出版社/メーカー: メディアファクトリー
- 発売日: 2003/07
- メディア: 文庫
前者は副業がハードSF作家で本職物理学者のロバートLフォワードによる,SF的なオーバーテクノロジー*13を真面目に論じた本.後者は....まあ説明するまでもるまい*14.憂鬱本は後者に近い.
アレを「最新テクノロジーの進歩だ」と真面目に信じる人がいるとすれば,憂鬱にもなるだろ.
HAL―Hyper Academic Laboratory (ガムコミックスプラス)
- 出版社/メーカー: ワニブックス
- 発売日: 2006/01/25
- メディア: コミック
前者は最新科学の真面目なマンガ解説本(のはず).後者は同じ著者による似非科学のパロディ*15 *16.似非科学とは言っても科学知識のない人間には,まともな解説本に見えることだってあるかもしれない.
「独習Java第3版」や「やさしいJava 第3版 (やさしいシリーズ)」は前者に,憂鬱本は後者に近い存在です.パロディの方がまだ救いがある.
*1:http://d.hatena.ne.jp/JavaBlack/20070522/p1
*2:ものの性質上,書くのはあんまり気が進まない.コレを見ているだけで気分が悪くなる.しかもアフィリエイトでの売上も期待できないし...orz
*3:屑本というのは,パラパラとめくるだけで屑本だと分かるものだ.
*4:そもそも"Object-Oriented"は形容詞であって名詞ではない.「オブジェクトを重視する」「物本意の」というような意味.いずれにせよ専門用語なので字義通りの解釈にはさほど意味はない.
*5:コレと同じくらい内容が悪い本なら他にもある.コレが問題なのは,一部で絶賛し,回りに広めようとした人がいること.この本の評判を見ていたら,いわゆる『工作員』説を信じたくもなる.
*6:日本語のWebや入門書を探すと,これと同レベルの質の悪い情報が氾濫している.英語圏の方が遙かにマシだと信じたいな.
*7:平たく言って洗脳されてしまう.
*8:「英語能」の方がまだマシだな.これでさえも科学的というには程遠いのだが.
*9:「これが最後の憂鬱本とは思えない.いずれ第二第三の憂鬱本が……」がシャレにならんとは.「愚昧を敵としては神々自身の戦いさえ虚しい」.
*10:あんまり深い意味はない.ようするにプロ以下ってこと.
*11:よくみると原書はしっかり版を重ねているようだ。ひょっとして日本語版は原書の初版相当のままで訳書改訂版ということ?
Sams Teach Yourself Java 6 in 21 Days (Sams Teach Yourself)
- 作者: Rogers Cadenhead, Laura Lemay
- 出版社/メーカー: Sams
- 発売日: 2007/05
- メディア: ペーパーバック
*12:つまりグダグダ言ってないで「プログラミング言語Java 第4版 (The Java Series)」を買えと.結局はそれが一番の近道なのだ.
*13:軌道エレベーターとかバサードラムジェットとかタイムマシンとか.
*14:後者については「こんなにヘンだぞ!『空想科学読本』」という本まで出ている.いくらパロディでも初歩的な計算違いや論理の破綻はいただけない.少しはラリー=ニーブンを見習って欲しいぞ.
*15:なにしろ帯に「このマンガには、一部真実が含まれている場合があります」と書いてあるほど。大半の大嘘の中に小さな嘘と,ほんの僅かな真実が含まれている.
*16:HALと言っても2001年とは全く関係ない....連載が2000-2001年ということを除けば.
- 121 http://reader.livedoor.com/reader/
- 29 http://www.google.co.jp/reader/view/
- 23 http://www.google.com/reader/view/
- 16 http://d.hatena.ne.jp/Voluntas/20080413/1208057254
- 16 http://d.hatena.ne.jp/tonotonotono/
- 15 http://d.hatena.ne.jp/ymScott/
- 14 http://ja.reddit.com/r/ja
- 11 http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/JavaBlack/20080401/p1
- 11 http://b.hatena.ne.jp/hotentry/diary
- 11 http://fastladder.com/reader/