カレーなる辛口Javaな転職日記 RSSフィード

2007年 05/22 Javaのおすすめ参考書

Java&オブジェクト指向参考書リスト(2007年版)

http://d.hatena.ne.jp/JavaBlack/20050909/p1の改訂.*1基本的に改訂版への差し替えと一部の新刊の追加程度になっている.

お奨めのJava&オブジェクト指向プログラミング関連の書籍/参考文献リスト.初心者向け入門書や参考書から上級者向けの専門書まで,オブジェクト指向だとかJava言語とかの初心者〜中級者が学習をすすめる上での参考にすることを想定して作っている.



オブジェクト指向プログラミング

とりあえず初心者なら「オブジェクト指向プログラミング入門」「オブジェクト指向における再利用のためのデザインパターン」と,あと「リファクタリング―プログラムの体質改善テクニック (Object Technology Series)」くらいかな.ただしリファクタリングは最初は難しく感じるので,ある程度慣れてからの方が無難だろう.

追記:「C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)」も初心者向け良書で,特にC++の人なら必携だろう..Javaの人でも参考になるくらい.

他に「アジャイルソフトウェア開発の奥義」などもぜひ検討してもらいたい.


Introduction to Object-Oriented Programming, An (3rd Edition)

Introduction to Object-Oriented Programming, An (3rd Edition)

OOPに関する良き解説書.日本語版は第二版.洋書は第三版.

通称「カモノハシ本」.まともなオブジェクト指向プログラミングをやっていれば,一度はお目にかかったことがあるだろう古典的名著の一つ.*2


オブジェクト指向入門 第2版 方法論・実践 (IT Architects’Archive CLASSIC MODER)

オブジェクト指向入門 第2版 方法論・実践 (IT Architects’Archive CLASSIC MODER)

Object-Oriented Software Construction (Book/CD-ROM) (Prentice-Hall International Series in Computer Science)

Object-Oriented Software Construction (Book/CD-ROM) (Prentice-Hall International Series in Computer Science)

OOPの原典.難しいので間違いなく中上級者向け.ただし多重継承の部分はちょっとね.ようやく日本語版も英語版においつきました.使用言語はEiffel*3長所短所はあれど,オブジェクト指向の専門家を自認するなら,一度は読んでおくべきだろう.


必携.いわゆる『GoFデザインパターン』.オブジェクト指向プログラミング言語を使う実践的開発者の必須科目.これを知らないOOP開発者はモグリだ*4.上記二つの書籍に比べて,遙かに実践的な書で,開発者にとっては今や必要不可欠.経験の少ない初心者には理解不能だけれど,一日も早く手にとってもらいたい本の一つ.

訳書改訂版と初版があるが,訳書改訂版にはパターン部分のHTMLとサンプルコードを収録したCDが付くので,訳書改訂版の方が絶対お勧め.


Head First Design Patterns

Head First Design Patterns

デザインパターンの入門書.パラパラとめくった感じでは,上記GoF本の副読本として良さそうな気がする*5.人を選ぶと思うので購入する時はそのつもりで.


必携.これを知らない以下同文.外部仕様を変更せずに内部実装を洗練させる手法.OOPの基本である「カプセル化」や「仕様と実装の分離」を前提としているので,そういう実装になっていないコードをリファクタリングすることは不可能に近い.いかにリファクタリングでも「銀の弾丸」ではないのだ.


Agile Software Development, Principles, Patterns, and Practices (Alan Apt Series)

Agile Software Development, Principles, Patterns, and Practices (Alan Apt Series)

アジャイル開発全体の入門書.プログラミングを知らない人には良さそう.*6


同じくOOPの入門書.良書の一つ.


Pitfalls of Object-Oriented Development

Pitfalls of Object-Oriented Development

オブジェクト指向開発や開発方法論の「べからず集」みたいなもん.少し古い本なのだが,未だに通用する部分があるのが悲しい現実だ.


基礎的なJava参考書

これは「プログラミング言語Java (The Java Series)」「Effective Java プログラミング言語ガイド」で決まりかな.

Java™ Programming Language, The (Java Series)

Java™ Programming Language, The (Java Series)

Javaの原典.CでいうK&Rアーキテクチャにおけるヘネシー&パターソン.Java言語を勉強するならこの本で決まり.Java5対応の第4版.

第3版はJava2ベースなので,古いアプリをメンテする時以外は使い道はないだろう.



Head First Java

Head First Java

入門書.全部目を通したわけではないが,パラパラと見た感じでは他の入門書と違って「正しいことが書いてある」という感じだ*7.上記「プログラミング言語Java」の副読本という位置付けでなら良さそうに思える.人を選ぶと思うので,購入時はそのつもりで.

なおHead Firstシリーズは洋書でなら「Head First Servlets & JSP」「Head First Ejb: Passing the Sun Certified Business Component Developer Exam」など,多数出ているそうだ.洋書としてはこういう初心者向け入門書は珍しいのかも.


「プログラミング言語Java第3版」のJava5のための補遺.良くも悪くも上記第4版の登場で価値は半減した.


Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)

Effective Java (Java Series)

Effective Java (Java Series)

Javaプログラミングイディオムの名著.中級レベル以上向け.(Java5対応の)原著第二版(ISBN:0321356683)が今年中には出る予定.*8

この本の内容を理解してない人はJava開発者としては二流以下です.

追記:原書第二版も登場.差し替え.


Java言語の重箱の隅をつついて楽しむパズル.これは同時にべからず集でもある.


Java Concurrency in Practice

Java Concurrency in Practice

Javaでのconcurrent and parallel programmingの良書.中級以上向け.Javaのマルチスレッドは原則concurrentなので,マルチスレッドプログラミングを行う者にとっては基礎知識.ただしこの本自体は扱っている内容もあって極めて難解で初心者向けではない.


Java™ Language Specification, The (Java Series)

Java™ Language Specification, The (Java Series)

言語仕様.Javaコンパイラ作成者,言語設計者以外では,パズラーを解く時くらいしか役にたつ時はない.


Java™ Virtual Machine Specification, The (Java Series)

Java™ Virtual Machine Specification, The (Java Series)

VM仕様.以下同文.バイトコードやクラスローダなどの仕様もこれに含まれる.普通の開発者にとっては全くの無用の長物.


JavaWorldメモリアルDVD

JavaWorldメモリアルDVD

古いJavaWorldの全記事のPDFを収録したDVD.書籍はおまけ.


Java 応用/各種API

Java Cookbook

Java Cookbook

良くも悪くもサンプルコード集.ただしJava開発者必携.第二版がJava5対応.日本語版は初版しかない模様.Web上でもサンプルコードは転がっているが,残念なことに玉石混淆でJava5対応となるとかなり少ない.しかも悪貨が良貨を駆逐して久しい.今となっては,良いサンプルを探すのに非常に時間がかかるのだ.

以下同文.オライリーの原書には他にも様々なクックブックが出ているらしいので,自分の利用する分野のものは,前もって調べて揃えておくと良い.


よほど下手なコードを書かない限り滅多に必要とはならないが,教養としてもっておくべき.


各種ツールのテクニック等.


Core Servlets and JavaServer Pages: Volume 1: Core Technologies (Sun Core Series)

Core Servlets and JavaServer Pages: Volume 1: Core Technologies (Sun Core Series)

ServletJSP開発の良書.初級〜中級程度向け.初版なら日本語訳あり.Vol2はずっと前から近日出版予定のまま.*9今となっては利用する機会はあまりないかもしれないが,Servletの基本も知らずに行うWeb開発は危険だ.


WEB+DB PRESS 総集編 [Vol.1~36]

WEB+DB PRESS 総集編 [Vol.1~36]


STRUTS・イン・アクション

STRUTS・イン・アクション


HIBERNATE イン アクション

HIBERNATE イン アクション

Hibernate in Action

Hibernate in Action


Junit in Action

Junit in Action

各種How to物."in Action"系の書籍は原書なら他にも多数出版されている.



他オブジェクト指向プログラミング言語

Java以外のOOP言語を知ることも,オブジェクト指向プログラミングへの理解を深める上でとても重要です.

以下にあげる書籍の中でも,「C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)」はC++以外のOOP言語開発者も読んでおいて損はない良書です.

Ruby
プログラミングRuby 第2版 言語編

プログラミングRuby 第2版 言語編

プログラミングRuby 第2版 ライブラリ編

プログラミングRuby 第2版 ライブラリ編

Programming Ruby: The Pragmatic Programmer's Guide

Programming Ruby: The Pragmatic Programmer's Guide

Rubyの解説書.あんまり詳しくないのでコメントはパス.


同じくRuby on Rails本.洋書が第二版で和書が初版だったと思う.

追記:二版の和書も出ていたので差し替え.


Ruby Pocket Reference (Pocket Reference (O'Reilly))

Ruby Pocket Reference (Pocket Reference (O'Reilly))


C++


C++のコーディングの基本.初級〜中級向けだが,上級者でも基本の再確認に有益.なかなかの良書で,OOPの入門としてもよくまとまっており,C++開発者以外にもお薦めできる*10


C++のべからず集.これを知らないC++開発者は論外と.


新訂版 More Effective C++

新訂版 More Effective C++

More Effective C++―最新35のプログラミング技法 (ASCII Addison Wesley Programming Series)の改訂版らしいので差し替え.もちろん未読.


プログラミング一般

プログラミング作法

プログラミング作法

名著.プログラミングそのものの入門書.普通はプログラミングを経験していれば誰でも知ってるはずのこと.これを知らない人にとっては目から鱗.まともな教育を受けてない人にとっては必読の書.



もしあなたがプログラミングの初心者であるというのならば,この他にも様々な言語を学習するのは意味のあることだ.ここに一例を挙げておく.*11

番外

この章だけ別にしても良い気がしてきた.

ソフトウエア開発やプロジェクトマネジメントの古典.「銀の弾丸はない」とか「ブルックスの法則」とか「ソフトウエアの持つ本質的な複雑さ」の元ネタのハズ.


Joel on Software

Joel on Software

関連:http://local.joelonsoftware.com/mediawiki/index.php/Japanese


ソフトウエア開発 55の真実と10のウソ

ソフトウエア開発 55の真実と10のウソ


UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)

マーティンファウラー御大によるUML入門書.UMLの欠点,UMLですべきでないことを知りたい人にお奨め.


Writing Effective Use Cases (Agile Software Development Series)

Writing Effective Use Cases (Agile Software Development Series)

あんまり詳しくないけど,ユースケースの名著らしい.


ちょっと古いが,デザインパターンを誤解している人は必見.理解している人にとっては雑学.「オブジェクト指向プログラミング的/デザインパターン的な考え方」といものが垣間見える良書.

関連:

*1:amazonアフィリエイト設定記念.:-)
Google Adsense設定記念でもある

*2:和書はAmazonで品切れになっていた.ひょっとしたら第三版が翻訳中かも?

*3:おそらく「エッフェル」と読む.エッフェル塔のエッフェル.

*4:理解さえしていればいいので,既にマスターした人ならば,必ずしもこの本を読む必要はない.復習がてらに目を通すべきだとはおもうけどね.

*5:GoF本は紛れもなく歴史的名著だが,初心者に理解しにくいのも事実なのだ.

*6:第2版登場.リンク追加.

*7:初心者向けの入門書では,分かりやすいようにかみ砕いて説明されてはいるものの,内容の記述が不正確なものが目立つ.

*8:去年も同じことを言ってたな.

*9:未確認だが,これは出たらしい.

*10:"coding standard"を「コーディング規約」と訳すこともあるようだが,私は賛成しかねる."coding convention"(しきたり,因習,協定)が「コーディング規約」,"coding standard"(標準規格,規範)は「コーディング標準」と使い分ける方が良いと思う.しかもこのstandardという単語は"level of quality"を意味するので,「単に標準的になっている」というよりは「広く一般的に受け入れられる(高い)品質レベル」と捕らえるべきものと思う.

*11:あくまで一例.

torutktorutk 2007/05/25 02:29 なんと、ほとんど同じ本持ってます・・・。例外はRubyとカモノハシ原本、Meyer原本、core servlet原本、Commons本かな。。。
GoF本はJavaプログラマーにはちょっとお勧めしにくい所があって、他に良書ないか探しています。

暇人暇人 2008/01/04 08:40 始めてみますが、大変参考に9なります
「Javaの鉄則」は私はお勧めです

暇人暇人 2008/01/04 08:40 始めてみますが、大変参考に9なります
「Javaの鉄則」は私はお勧めです

暇人暇人 2009/02/19 01:17 java5系で最高にお勧めの名著
http://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0JavaEE5-CD-ROM%E4%BB%98-Programmer%E2%80%99s-SELECTION-UFJIS%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE/dp/479811281X/ref=cm_cr-mr-title

AlphaAlpha 2010/08/29 22:52 「Head First 頭とからだで覚えるデザインパターンの基本」っていいですよね。うちの研究室にもあります。
おすすめ本リスト、2010年版も書いてもらえないでしょうか><

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。