【Java初心者必見】読むべき本のレビュー

JAVAプログラマーになることが決まり,業務と並行してJavaの参考書を読み進めました.ネットではJavaの基礎本を羅列してるだけでその後が分かりにくい記事が多かったので,自分が初心者を脱出するために読んだ本のレビューをまとめておきます.

自分のステップアップの記録でもあります.
随時読んだ本は更新していきます.

新・明解Java入門

初めて読んだJava本がこちらになります.明解はC言語で読んだことがあったので選びました.
プログラミングの初級シリーズとして広く認知されている「明解」だけあって,中身は必要十分かつ分かりやすい内容でした.これ一冊を読めばJavaの基礎を殆ど押さえることが可能です.紙面が青を基調としてカラーリングされており,重要な箇所は赤字で表示されているので,個人的には好きな配色ですごく読みやすかったです.

欠けている,というか初級本なのでこれ以上突っ込んでも仕方ないと思われるが,ラムダ式や有名なAPIが記載されていれば尚良かったかと

スッキリわかるJava入門 実践編

本当は後述するデザインパターン2種の後に読んだ本だが,素直に新・明解Java入門の後に読めば良かったと思わされた本です.頻繁に用いられるAPIや文字列の取り扱い,ファイル入出力,ラムダ式について記載されており,新・明解Java入門では欠けていた部分がすべて網羅されています.

さらに,リフレクションやネットワーク通信,データベースアクセス,テストユニットなど業務で必ず用いる内容に触れられています.ただし,全て基礎レベルであるので,これを読んだからといって業務でいきなり使えるわけではなく,あくまで入りとして非常に有効という意味です.

また,デザインパターンについても軽く触れられており,次いで読むデザインパターンへの興味が湧くという意味でも,こちらを先に読むべきだったかもしれない.

JavaエンジニアのためのEclipse パーフェクトガイド

並行して読み進めていた本です.Eclipseの使い方を大方知ることが出来るので有用でした.Eclipseの見方,設定方法,ショートカットキー,リファクタリング手法,テスト手法などが記載されており,読む前より確実に業務速度は上がりました.

また,Eclipse+JUnit4やMaven,Gitについても記載されており,業務で必要な簡単な知識・使用方法を見つけることも可能です.なお,初級者のための方に書いておくと
JUnit4:Javaの代表的なテストモデュール
Maven:ビルドツール(勝手にライブラリをネットから引っ張ってきて,依存を解決してくれる.その他何でもできる)
Git:バージョン管理ツール(全ての変更を記録できます.チーム開発に欠かせません)

ただし,記載されている内容自体は個別に調べれば全然出てくる内容なので,そこは承知して購入する必要があります.とにかくEclipseで何ができるかを網羅的にざっと学習したい場合には良いと思います.

Javaビルドツール入門 Maven/Gradle/SBT/Bazel対応

業務で使用されているMavenが分からなさ過ぎたので購入した本.Mavenが謎にdependencyエラーを吐いて止まってしまい,何時間も苦戦した(cloneとupdateがしっかりできていなかっただけ)ので,一回しっかり理解したかった.

ビルドツールについて大まかに理解することができます.4種類記載されていますが,分量的にはMavenとGradleにほとんどが割かれています.個人的には,Mavenによる依存関係の解決や各targetの設定方法などを理解できたので,業務で役に立ちました.

デプロイまで自動化する部分までやるにはこの本では足りないので,別で補う必要があります.まぁ自分で設定することは滅多にないと思うので,とりあえず詰まるまでは保留にしています.

増補改訂版Java言語で学ぶデザインパターン入門

言わずと知れた名著でしょう.自分も例に漏れず読んでみましたが,確かに素晴らしい本でした.結構昔の本なのに大変分かりやすく,時代に流されないデザインパターンの真髄が詰められているのだと感じました.

デザインパターンとは言ってしまえば,天才的な開発者たちが集まって頻繁に用いられる有用なパターンをまとめたものですので,使えないわけがありません.実際にjavaのAPIにも広く用いられているので,それを理解する助けにもなります.

また,オブジェクト指向とはなんだ?よく分からない?みたいな状況から脱出させてくれます.継承やInterfaceの有効な使い方が良く分かっていなかった場合(というか,初級本を読んだだけでは殆どありがたみを実感できないので当たり前だと思うが),この本を読み切ることで,なるほどね,となります.

さらに,実際にコードを書き,練習問題もこなすことで,Javaのコーディングの練習にもなります.良いことづくめでした.

悪い点はあまり思い浮かばないですが,まぁ分量が多いので読み切るのに時間がかかることですね.ですが,時間をかける価値はあると思います.

増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編

上記と同じ作者が書いているマルチスレッド編になります.こちらも非常に有用で,Javaにおけるマルチスレッドのパターンを学ぶことができます.

実際のアプリケーションでは並列処理が頻繁に用いられているので,これを読んでおくことで業務コードを読む際の読解力が格段に上がります.また,実際に写経しながら読み進めていくことで,Javaにおけるマルチスレッドの書き方を知らず知らずのうちに身に着けられています.上記のデザインパターンと合わせて絶対に読んでおくべき本だと思います.

不満点は電子版は買うなということです.画像が貼ってあるだけなので,検索機能は搭載されておらず,ビューワーのページと本のページ数もずれているので行き来が非常にしづらいです.最近は品薄で新品を買うのが難しいかもしれませんが,電子版を買うぐらいなら中古本を買ったほうが良いです.

いちばんやさしいGit&GitHubの教本 人気講師が教えるバージョン管理&共有入門

Javaとは関係ないですが,Gitを理解するために読みました.Gitについて基礎的な部分を一日もかからず理解できるので,Git何も分かりません!という方にはお勧めです.逆にある程度分かっている人には本当に不要です.かなり基礎的なことしか書いていないので.そういう方には別の参考書のほうが向いていると思います.

JUnit実践入門 ~体系的に学ぶユニットテストの技法

Javaの代表的なテストモジュールであるJUnitの使い方が非常に詳しく記載されています.すごく教科書的.リファレンスとして有効ですが,読み進めるのは結構しんどいものがありました.説明が冗長です.読み方としてはザーッとどんな機能があるのか把握して,業務で必要になった時にその部分を深堀していくのが良いと思いました.