概要~Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップ~
最近はサクッとプログラミングできるPythonがお気に入りですが、実は仕事の現場では専らJavaを使ってます。
Javaが流行って何十年か経過した結果、現場にはJavaシステムが浸透しており、それらJavaシステムを一度に別のプログラム言語に置き換える状況はなかなか考えにくく、Javaの需要もまだしばらく続くだろうなぁと思っています。
そんな中、新人は毎年入ってくるわけで、Pythonできます。と、言われればそれはそれで重宝するのですが、実際にはJavaも頑張ってね。となります。
そんな状況がここ2、3年続いた結果、私が10年以上働く間にJava初心者に何を学んでもらえばいいか考え、行き着いた結果の良質な参考書10選を今回紹介します。
題して、Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップです。
ついでにJavaで本格的にプログラミングが出来るようになっただけで物足りない。
さらに上を目指す意識高い系の皆さん向けの番外編。
ドメイン駆動設計に関する書籍3選も紹介します。
参考
Javaの技術力を付けて仕事ができる人になりたい。という人向けの本紹介も投稿しました。
仕事のことを勉強したい人は以下の記事も参考になると思います。
想定読者
- 仕事を始めていきなり「とりあえずJava出来るようになって」と言われた人
- JavaをSpringまで理解したい人
結果
いきなり結果です。
忙しい人はとりあえず結果だけご覧ください。
Java良書10選
- やさしいJava
- スッキリわかるJava入門
- スッキリわかるJava入門 実践編
- プロになるJava
- Java言語で学ぶデザインパターン入門
- リーダブルコード
- オブジェクト指向でなぜつくるのか
- Webを支える技術 ―― HTTP,URI,HTML,そしてREST
- Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- Spring Boot 3 プログラミング入門
番外編:ドメイン駆動設計良書3選
やさしいJava
それではここから1冊ずつ紹介です。
まずはやさしいJavaです。
Javaの入門書は今となっては多すぎるほどあるのですが、まずは入門書としてタイトルの通り非常にわかりやすいこの本から入るのがいいかなと思っています。
Javaの特徴として、プログラムの理解もありますが、他の言語に比べわかりにくい専門用語多く、初心者には最初のハードルがまず高い事が挙げられると思っています。
そのあたりをうまく説明して導入時の挫折が避けられるのが、この1冊からスタートすることかなと思って選出しています。
スッキリわかるJava入門
次はスッキリわかるJava入門です。
私の経験からですが、プログラミングの入門書は1冊では足りないと思っています。
理由としては、入門書だけで書ききれない重要なことが多く1冊では網羅できないこと。専門用語の解説がわかりやすい表記ではあるのですが、自分の中ですっきり理解できるかはその人の今までの経験によるところがあるからです。
そのため、入門書の位置付けで2冊目の紹介です。
2冊を読み比べて本当に重要なところ、わかりにくい概念の表現方法を比較して自分の理解力を高めることが重要と考えています。
人気シリーズのため最近実践編とともに第4版が発売されました。
スッキリわかるJava入門 実践編
次はスッキリわかるJava入門 実践編です。
タイトルの通りですが、スッキリわかるJava入門の続編です。
やさしいJavaと入門編でじっくり基礎を固めた後に実践編に入る流れで読み進めるといいかなと思います。
プロになるJava
次はプロになるJavaです。
タイトルの通りですが、ここからプロになりましょう(^^)
ここまでで基礎を固める -> 実践を学ぶ -> プロになる というレベルアップを想定しています。
印象としては、実践を学ぶ -> プロになる 部分はちょっと飛躍的レベルアップなのですが、その部分は実際に自分の手を動かしてプログラミングした結果や実際やったこと読んだことをGoogle検索等で補完しながらレベルアップすることを想定しています。(ここまで読んだ読者ならそれが出来るだけのレベルアップがされていると考えています)
この本は、ITエンジニア本大賞2023 技術書部門ベスト10にも選ばれました。(Java関連の本で2023年のベスト10に選ばられるのは非常に凄い事だと思っています)これでJavaを仕事にする人は、必ず読んだ方が良い本になったのではないでしょうか。
今では待望のSpring入門編も出版されてます。こちらも同等の知識レベルで書かれているのでJavaからSpringにそのまま学習を進めるのに最適な一冊です。
Java言語で学ぶデザインパターン入門
プロになったら次はデザインパターンを学びましょう。
正直プロなったところがJavaで給料をもらえるというスタートラインと思います。
つまり、ここまでのJavaプログラマーでは現場で技術力の差別化が出来ません。
そこで、オッこの人はJavaがかなり出来るなと思ってもらえるようにデザインパターンを学びましょう。
現場でこれはGoFのAdapterのデザインパターンですね。なんて、会話が出来るとJavaで自信をもって仕事をしているなと言えると思います。
本書は、2001年に発売されて以来、増補改訂され2021年に発売されたものです。
実際のコードが記載されているのはもちろんのこと、デザインパターンの概念や用途を直感的に理解できるように書かれています。また、デザインパターンの使い方だけでなく、パターンを使わない場合の問題点や欠点、パフォーマンスについても考慮された説明がなされているため、より実践的な学びを得ることができます。
Javaのスペシャリストとして学んでおくべき1冊になっています。
リーダブルコード
次はリーダブルコードです。
Javaを十分学んできたので、ちょっと箸休めです。
内容を知っている人は、なぜここでリーダブルコード?と思う人もいると思うのですが、私はこのタイミングがベストと思います。
プログラム初心者が読む本として位置付けされることもあると思いますが、私はJavaが分かってから読むべき(一度読んでいても再読すべき)と考えています。
自身でJavaコードをある程度書けるようになってからこの本を読むとよりリアルな気づきがあると思います。そう言えばあの時書いたあのコード、リーダブルではなかったな。など。
コメントの書き方、関数やメソッドの命名方法、制御フローのシンプル化、適切なフォーマットなどが書かれており、これらのテクニックやスタイルを使うことで、コードの読みやすさが向上し、保守性や拡張性が高まるコードが書けます。
仕事でJavaを書く場合1人で完結しないことが多いです。何人かのチームでJavaを書くときに読みやすいコードを書くことはチームでの開発において非常に重要です。チームで開発を行う場合、コードの読みやすさはコミュニケーションコストを減らし、コードの品質を向上させるために不可欠です。ぜひ1度読んで、プロフェッショナルとして読みやすいコードが書けるように意識してみてください。
ちなみにこの本は少し古いですが、ITエンジニア本大賞2014 技術書部門大賞の本です。
オブジェクト指向でなぜつくるのか
次はオブジェクト指向でなぜつくるのかです。
こちらもJavaに特化した内容ではないため箸休め第2弾です。
そもそもなぜJavaがここまで流行ったのか、オブジェクト指向はどんなに便利なのか、Javaでオブジェクト指向で作るというのはどういうことなのか理解するのに良い本と考えています。
Webを支える技術 ―― HTTP,URI,HTML,そしてREST
次はWebを支える技術 ―― HTTP,URI,HTML,そしてRESTです。
箸休め第3弾(最後の箸休め)です。そろそろプログラムを見ることに疲れた人向けです(^^;)
Webを支える技術 ―― HTTP,URI,HTML,そしてREST
皆さんがJavaを勉強する理由は様々だと思いますが、最近はWebシステムを作るケースが多いのではないでしょうか。
そんな人向けの本になっているので、私はWeb関係ないという人は飛ばしてもらっていいのですが、Javaで「HTTP,URI,HTML,そしてREST」をプログラミングするという人はぜひ読んでおいてください。
コードが書けるだけではWebシステムは完成しません。なぜそのようなコードが必要かを理解できるようになると思います。
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
次はSpring徹底入門 Spring FrameworkによるJavaアプリケーション開発です。
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
数あるフレームワークの中でも、Javaで本格的なシステム開発をする際に必ず言っていいほど出てくるフレームワーク(その後、ほぼ採用されるフレームワーク)がSpring Frameworkです。具体的なシェアは把握していませんが、私が経験したプロジェクトではほぼ使用されていました。そのSpring Frameworkを初めて学ぶ方におすすめの入門書がこの一冊です。
この本は、初心者から中級者までを対象に、Spring Frameworkの基本から応用までをわかりやすく解説しています。多くの開発者に支持され、Springを学ぶ際に手に取るべき書籍とされています。その人気の証として、2024年5月には待望の第2版が発売されました。
最新の情報とともにさらに充実した内容で、Spring Frameworkの理解を深め、読者のスキルアップに貢献する一冊となると思います。
今やSpring Frameworkを扱う場合、必ず購入する本になっているのではないでしょうか。
Spring Boot 3 プログラミング入門
いよいよ最後はSpring Boot 3 プログラミング入門です。
クラウド開発がデファクトスタンダードになっている今では、SpringからSpring Bootという選択肢が増えていると思います。
Spring Bootに特化している参考書がまだまだ少ないのでこの本だけでは足りない部分もありますが、Spring Bootの入門書としての位置付けではこの本がマストと考えています。
人気書籍だったSpring Boot 2プログラミング入門の改訂版で、2023年2月27日発売のJDK17、Spring 6対応です。
番外編:ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本
ここからは番外編になります。
まずはドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本です。
良いプログラムは良い設計の上に成り立ちます。
良いプログラムでも設計がいまいちであればそのシステムは扱いにくいものになるでしょう。
では、良い設計とは何か?
私の中での1つの答えはドメイン駆動設計と思っています。
ここからは設計というさらに上を目指す意識高い系の皆さん向けの番外編になります。
ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本
まずはドメイン駆動設計の入門書という位置づけのこの本を選びました。
最終的なゴールは最後に紹介する実践ドメイン駆動設計になるのですが、実践ドメイン駆動設計をいきなり読んで挫折なく読み切れる人はなかなかいないでしょう。(私も一度挫折しました。。。)
そのため、まずはこの本を入門書として位置付けています。
番外編:エリック・エヴァンスのドメイン駆動設計
次はエリック・エヴァンスのドメイン駆動設計です。
一応、この本を間に挟む順番としました。
この本がなくても実践ドメイン駆動設計を理解できそうという人は直接実践ドメイン駆動設計を読んでもいいのですが、この本を挟んだ方が理解しやすいだろうなぁと思いラインナップに入れています。
番外編:実践ドメイン駆動設計
いよいよ最後実践ドメイン駆動設計です。
この本の紹介はもはや何もいらないでしょう。
というぐらいドメイン駆動設計と言えば、この本という本になっています。
ただ、前述した通りいきなりこの本を読んで理解できる人は少ないと思うので今回は3冊を紹介する形で記載しました。
まとめ
今回は、Java初心者がSpring/Springbootを使えるようになるまでの10冊とドメイン駆動設計の3冊を紹介しました。
これらを理解すれば間違なく私はJavaのプロフェッショナルです。と、自信をもって仕事ができる人材になれるかなと思って選抜しているので、これからJavaを頑張ろうと思っている人がいたらぜひ参考に1冊でも読んでみてください。
おまけ
Javaの開発環境と言えばEclipseです。
最近はVSCodeも人気になっているのでEclipseのオススメ本が少なくなってきた印象です。
ただこの本は、この1冊読んでおけば困らない。という内容になっているのでまさにパーフェクトガイドだと思います。
JavaエンジニアのためのEclipse パーフェクトガイド
本投稿が少しでも皆さんの良いJavaライフの助けになればと思います(_ _)