概要
新入社員に「何から勉強すればいいですか」と言われたら、「とりあえず基本情報の資格を取りましょうか」と答えるようにしている。
資格不要論も根強いが、個人的にIPAの資格試験は全体的に良くできていると思うし、真面目に勉強すればその分得られるものも多いと思っている。
ただ、それだけでは即効性がないというか、目の前の仕事が楽にならないのも事実。
幸いJavaの書籍は数多くあり学ぶ材料には事欠かないが、多すぎるあまり「どれから手を付ければ…」という気持ちになるのも分かる。(今さらJavaの本を紹介するのもどうかと思ったが、今だからこそ必要な気もする)
そこで、これまでJavaやオブジェクト指向の本を読み漁ってきた自分が、入社1、2年目あたりで読んで良かった本、もしくは読むべきだったと今感じている本を紹介する。
おすすめ書籍
Javaの文法
『Java言語プログラミングレッスン 第3版(上)・(下)』結城浩 / SBクリエイティブ
まずは基本的な文法を知らないと何も始まらない。自分の場合は結城さんの本を選んだが、実際入門レベルではどれもだいたい同じことが書いてあるので、立ち読みして自分にあったものを探そう。
Amazonのレビュー的には「スッキリわかる」シリーズが人気。
UML
『UML モデリングのエッセンス 第3版』マーチン・ファウラー / 翔泳社
薄いのでさらっと読める。
UMLは仕事でも使うだろうし、このあと紹介する書籍の中でもバシバシ登場する。
勉強しなくてもUMLはなんとなく読めてしまうが、はじめに正しく理解していたほうもちろん良い。
デザインパターン
『Head First Design Patterns』Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra / Oreilly & Associates Inc
自分は英語で原書を読んだが、翻訳もでている。(翻訳の質については知らない)
英語でも読みやすい文章だったと記憶している。
もっともわかりやすいデザインパターンの入門書だと思う。
amazon.comでのレビューも528件付いて星4.5なので相当なものだ。何だったか忘れたが有名なJavaの本で、デザインパターンのおすすめ書籍でGoF本を差し置いて、この本をすすめていたのを覚えている。
『Head First』シリーズは、Java、SQL、ネットワークあたりを読んだが、どれも良かった。
『増補改訂版Java言語で学ぶデザインパターン入門』結城浩 / SBクリエイティブ
(ソフトウェア開発における)デザインパターンの原点である『Design Patterns: Elements of Reusable Object-Oriented Software』(翻訳版は『オブジェクト指向における再利用のためのデザインパターン』。通称GoF本)を10段階くらい嚙み砕いて読みやすくしたもの。
いきなりこの『Java言語で学ぶデザインパターン入門』を読んで、内容が難しすぎて分からないってこともないとは思うが、この本はあくまでデザインパターンのカタログであって、「なぜデザインパターンが必要なんだろう」という疑問は残るし、きっと飽きてくる。
まずは『Head First Design Patterns』で軽くデザインパターンに触れておくと、その必要性が分かるため、理解が進みやすいはず。『オブジェクト指向のこころ』もデザインパターンのユースケースがいろいろ登場したと思うので、そちらでも。
オブジェクト指向
『アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技』ロバート・C・マーチン / SBクリエイティブ
今回紹介する本の中では、難易度が少し高いかもしれない。
内容は最高なので、繰り返し繰り返し読んで、少しずつでいいから身につけていきたい。
コーディング
『新装版 リファクタリング―既存のコードを安全に改善する―』マーチン・ファウラー / オーム社
読みやすく保守性の高いコードを書くための道標。
この本に登場するリファクタリングの対象となるようなコードを書かないように努めることで、自然と良いコードに書けるようになっていく。
同じジャンルで『リーダブルコード』もおすすめ。
SQL
『SQL 第2版 ゼロからはじめるデータベース操作』ミック / 翔泳社
RDB(リレーショナルデータベース)を全く使わずに開発することは稀なので、SQLの基本は知っておきたい
この本は入門書としての完成度が非常に高く、基本はこれ一冊でOK。
さらに深めたい人は、『達人に学ぶSQL徹底指南書』からの『プログラマのためのSQL』がおすすめ。
ただし、そこまで行く前に、正規化等のテーブル設計を学んだほうが良いだろう。
フレームワーク
業務で使うものを学ぼう。会社の先輩に聞けば何か教えてくれるはず。
Springであれば、『Spring入門』がおすすめ。
マルチスレッド
『Java言語で学ぶデザインパターン入門 マルチスレッド編』結城浩 / SBクリエイティブ
この分野の入門書は少ない中で、基礎から丁寧に説明してくれている。
さらに深く知りたい人は、『Java並行処理プログラミング』へどうぞ。(翻訳版は絶版かもしれない)
最後に
「1、2年目で読んでほしい」というくくりで紹介したのであぶれてしまったが、内容的に素晴らしくいずれは読むべき本を最後に挙げておく
- 『EFFECTIVE JAVA』Joshua Bloch / 丸善出版
- 『オブジェクト指向における再利用のためのデザインパターン』Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides / ソフトバンククリエイティブ
- 『エリック・エヴァンスのドメイン駆動設計』Eric Evans / 翔泳社