Javaは初めてのオブジェクト指向言語に選ばれることが多いです。今はPHPやRubyやPythonの情報も多くなったので初心者に選ばれることが多くなりましたが、Javaの人気はまだまだ健在です。
HTML&CSS、JavaScript、Java、といった流れで勉強している人も多いと思いますが、いきなりJavaから勉強しようとしている人もいると思います。それでも特に問題はなくて、たとえばプログラミング未経験でIT企業に入社した人は研修でJavaから勉強するケースが多いです。
理由としては、業務用システムではJavaが用いられることが今でも多いからです。特に企業への就職や転職を考えている方にとっては、Javaは強力な武器になります。そこでこのページでは、プログラミング初心者からJavaを学ぶのにおすすめの書籍を紹介します。
プログラミング初心者から学べるJava書籍
プログラミング自体未経験の方でも、Javaだけでなくプログラミングの基礎から学べる書籍を紹介します。
①スッキリわかるJava入門 第2版
Javaの入門書と言えば「スッキリわかるJava入門」と言っても過言ではありません。実際私も最初にJavaを勉強した際はこちらの初版を使用しました。会社に入社する前にこちらの書籍で独学していたのですが、会社の研修でも配られたので、結果的に二冊持っていました。
プログラミングの経験ゼロでも理解できる内容になっています。
付録でEclipseによる開発などが付いているので、一応は実践的なレベルに持っていくことが可能です。私自身こちらの書籍をきっちり最初から最後まで読み込んだのですが、それは当時プログラミングの勉強方法をあまりよくわかっていなかったからです。
プログラミングはコードを覚えることが重要なのではなく、理解することが重要です。そのため、最初から最後まできっちり読もうとするよりもだいたいわかるところは読み飛ばす、わからないところを重点的に読む、という考え方で勉強することをおすすめします。
私は何とか読み切りましたが、しっかり読もうとしすぎて危うく挫折しかけました。読まなくてもだいたいわかる部分は読み飛ばしてもOKで、もっと言えば最初からすべてを理解しようとはしない方が良いです。
最初はざっと流し見して、繰り返し読む方が同じ時間で理解も深まるかと思います。
②スッキリわかるJava入門 実践編 第2版
上で紹介した書籍の実践編です。こちらも会社の研修で配られた記憶があります。上の入門編とセットと考えてください。上で紹介した「スッキリわかるJava入門」で基礎を身に付けたら、「スッキリわかるJava入門 実践編」で実践的な開発スキルを磨きます。
具体的な内容としては、正規表現、コレクション、データベース連携、並列処理、などです。つまり、実践編と言えどあくまでも基本的な内容で、基本的な内容の実践編になります。上で紹介した書籍の内容を理解できていないレベルでいきなりこちらの書籍の学習に入るのは難しいですが、たとえば他の書籍でJavaの基礎を勉強している方ならいきなり実践編から入っても問題ないでしょう。
③独習Java 新版
独習シリーズのJavaです。独習シリーズには他にもPHP、C、C++、C#などがあります。これら同様に、Javaについても基礎から丁寧に解説されています。正直なところJavaの入門書は上で紹介した「スッキリわかるJava入門」が圧倒的な存在なので、独習Javaの存在感がやや薄れています。
しかし独習シリーズ自体は人気で、Javaに関してもクオリティは間違いありません。なので、独習シリーズに関心のある方にはJavaもおすすめします。
Javaの+αが学べる書籍
Javaの基礎は上で紹介した書籍で学習すれば間違いないでしょう。どうしても上で紹介した書籍が分厚すぎる、分量が多すぎると感じるのであれば、もっと薄い簡単そうな書籍を選んでも問題はありません。
しかしそれだとどうしても内容が不足してしまうので、改めて別の書籍で学んだり、ネットで調べる必要が出てきます。Javaの基礎をある程度網羅したいのであれば、上で紹介したものが間違いないでしょう。
そして次に、実践的なJavaを学ぶためにおすすめの書籍を紹介します。
④スッキリわかるサーブレット&JSP入門 第2版
こちらの書籍も私が会社に入社して、Javaの外部研修を受けた際に渡された書籍でもあります。
サーブレットとJSPはJavaで実装できる技術で、Web開発においては確実に主力になるものです。まずサーブレットはサーバー上で動いて、Webページを作るための技術です。次にJSPは、HTMLにJavaのコードを埋め込んでWebページを作る技術です。
つまり、サーブレットとJSPが連動することでサーバーから画面表示までの一連の流れが完成し、Webページができるということです。JavaはWeb開発でよく使われる言語なので、サーブレット&JSPの勉強をすると実践的なスキルが身に付きます。
⑤JavaからはじめようAndroidプログラミング
こちらの書籍はプログラミング初心者を対象に、JavaでAndroidアプリを開発するためのノウハウを解説した書籍です。こういった書籍はだいたい元となるプログラミング言語、この場合だとJavaをある程度習得した状態でないと理解できない場合が多いのですが、この書籍はJavaの知識がまったくない状態から理解できるように解説されています。
なので、普通にJavaを勉強するだけだとつまらなさそう、どうせならAndroidアプリ開発も一緒に勉強したい、といった方におすすめです。Javaを含めてプログラミングはモノを作ってこそ価値があり、それでこそ楽しめます。
なので、基礎固めと並行してどんどん手を動かして作っていくスタンスはおすすめです。
⑥新・明解 Javaで学ぶアルゴリズムとデータ構造
すでにアルゴリズムの学習は済んでいる方も多いかもしれませんが、Javaと合わせてアルゴリズムを学習する際におすすめの書籍です。また、もともとアルゴリズムを学んでいる方も、実際にプログラムで書くとどうなるのか理解するのに最適な書籍でしょう。
アルゴリズムは正直あまり面白くないと感じる方も多いと思いますが、プログラムを作る際にロジックを組むのに非常に重要です。基本のアルゴリズムを元にプログラムを書いていくと言っても過言ではありません。
つまり、いくらプログラミングの表面的なコードを理解していても、アルゴリズムが理解できていないと効率的にコードが書かれたシステムにはならないということです。なので、アルゴリズムの学習がまだの方や、アルゴリズムの理解をより深めた方が良い方はJavaの勉強と一緒にやってしまえば一石二鳥です。
プログラミング言語はあくまでもツール
Javaは特にボリュームがあって、理解すべき項目がそれなりに多いです。プログラミングの勉強が始めての方は、なおさらJavaのコードを追いかけることに必死になってしまうかもしれません。
しかし、プログラミング言語というのはあくまでもツールです。コードを覚えることが重要なのではなく、そのコードを使っていかにシステムを作っていくのかが重要です。そして、良いシステムを作るためにコードを覚える必要はありません。
コードの意味や実装の概要を理解さえしていれば、必要なコードはその都度調べて書けば良いだけです。プログラミング言語はコード自体は基本的にシンプルなので、よく使うコードはあえて覚えようとしなくても勝手に覚えます。
なのでプログラミングを理解することが重要なのですが、もっと言えばすべてを理解しようとする必要はありません。最初は自分が作りたいものに対してどのコードが必要なのかわからないのである程度幅広く学習しますが、そこからは自分が必要なコードのみ調べていけば良いでしょう。
「それだと特定のスキルしか身に付かないのでは?」と思われるかもしれません。しかしプログラミングは作ってこそ上達するもので、表面的な知識を広げていってもあまり役に立ちません。同じ時間勉強するなら、広く浅くよりもシステムを作り込んで狭く深く勉強した方が良いです。
狭く深く勉強することを繰り返していけば別のシステムを作るときにも予測が付くので、結果的に広く深くスキルが身に付きます。なので覚えようとするわけでもすべてを理解しようとするわけでもなく、とにかく作りたいものの目標設定をして、それを作ることを繰り返していくのがおすすめです。