JavaでSpringを理解するまでのおすすめ本

# 概要～Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップ～

最近はサクッとプログラミングできるPythonがお気に入りですが、実は仕事の現場では専らJavaを使ってます。
Javaが流行って何十年か経過した結果、現場にはJavaシステムが浸透しており、それらJavaシステムを一度に別のプログラム言語に置き換える状況はなかなか考えにくく、Javaの需要もまだしばらく続くだろうなぁと思っています。

そんな中、新人は毎年入ってくるわけで、Pythonできます。と、言われればそれはそれで重宝するのですが、実際にはJavaも頑張ってね。となります。
そんな状況がここ2、3年続いた結果、私が10年以上働く間にJava初心者に何を学んでもらえばいいか考え、行き着いた結果の良質な参考書10選を今回紹介します。

題して、**Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップ**です。

ついでにJavaで本格的にプログラミングが出来るようになっただけで物足りない。
さらに上を目指す意識高い系の皆さん向けの番外編。
**ドメイン駆動設計**に関する書籍3選も紹介します。

## 参考

Javaに限らず仕事ができる人になりたい。という人向けの本紹介も投稿しました。
仕事をする上で重要なこと、本質を学びたい人は以下の記事も参考になると思います。

[【新人エンジニア向け】仕事で一人前になるためのおすすめ本](https://qiita.com/fkooo/items/ec4931e508fc445068f6 "【新人エンジニア向け】仕事で一人前になるためのおすすめ本")

## 想定読者

* 仕事を始めていきなり「とりあえずJava出来るようになって」と言われた人
* JavaをSpringまで理解したい人

## 結果

いきなり結果です。
忙しい人はとりあえず結果だけご覧ください。

### Java良書10選

1. [やさしいJava](https://amzn.to/3py4CzE "やさしいJava")
1. [スッキリわかるJava入門](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E7%AC%AC4%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-%E6%B8%85%E5%96%AC-ebook/dp/B0CMCVK2FJ?_encoding=UTF8&qid=&sr=&linkCode=ll1&tag=java_books_001-22&linkId=f5ca7b2991570b33defe8ea3faa098f7&language=ja_JP&ref_=as_li_ss_tl "スッキリわかるJava入門")
1. [スッキリわかるJava入門 実践編](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E5%AE%9F%E8%B7%B5%E7%B7%A8-%E7%AC%AC4%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-ebook/dp/B0CTPWZ2V8?_encoding=UTF8&qid=1707654423&sr=8-1&linkCode=ll1&tag=java_books_001-22&linkId=741999f0c5319c2702641f8c66643972&language=ja_JP&ref_=as_li_ss_tl "スッキリわかるJava入門 実践編")
1. [プロになるJava](https://amzn.to/3T3xSMc "プロになるJava")
1. [Java言語で学ぶデザインパターン入門](https://amzn.to/3QPXA56 "Java言語で学ぶデザインパターン入門")
1. [リーダブルコード](https://amzn.to/3pvJIB5 "リーダブルコード")
1. [オブジェクト指向でなぜつくるのか](https://amzn.to/3QK6ktS "オブジェクト指向でなぜつくるのか")
1. [Webを支える技術 ―― HTTP，URI，HTML，そしてREST](https://amzn.to/3dJ2r9P "Webを支える技術 ―― HTTP，URI，HTML，そしてREST")
1. [Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発](https://www.amazon.co.jp/dp/B0CZ8GVCXZ?tag=spring_boot_001-22&linkCode=ogi&th=1&psc=1 "Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発")
1. [Spring Boot 3 プログラミング入門](https://amzn.to/3LIQorH "Spring Boot 3 プログラミング入門")

### 番外編：ドメイン駆動設計良書3選

1. [ドメイン駆動設計入門 ボトムアップでわかる！ドメイン駆動設計の基本](https://amzn.to/3CgkpL7 "ドメイン駆動設計入門 ボトムアップでわかる！ドメイン駆動設計の基本")
1. [エリック・エヴァンスのドメイン駆動設計](https://amzn.to/3pyVHhu "エリック・エヴァンスのドメイン駆動設計")
1. [実践ドメイン駆動設計](https://amzn.to/3T801ls "実践ドメイン駆動設計")

### やさしいJava

それではここから1冊ずつ紹介です。
まずは**やさしいJava**です。

[やさしいJava](https://amzn.to/3py4CzE "やさしいJava")
<a href="https://www.amazon.co.jp/%E3%82%84%E3%81%95%E3%81%97%E3%81%84Java-%E7%AC%AC7%E7%89%88-%E3%80%8C%E3%82%84%E3%81%95%E3%81%97%E3%81%84%E3%80%8D%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E9%AB%98%E6%A9%8B-%E9%BA%BB%E5%A5%88/dp/4815600848?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3LV67HWBSVCW3&keywords=java&qid=1660979819&sprefix=java%2Caps%2C219&sr=8-44&linkCode=ll1&tag=java_books_001-22&linkId=e6ff3641e8db70fe4e250bb4e157dc4a&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51hgFItEcxL._SL160_.jpg" ></a>

Javaの入門書は今となっては多すぎるほどあるのですが、まずは入門書としてタイトルの通り非常にわかりやすいこの本から入るのがいいかなと思っています。
Javaの特徴として、プログラムの理解もありますが、他の言語に比べ**わかりにくい専門用語多く**、初心者には**最初のハードルがまず高い**事が挙げられると思っています。
そのあたりをうまく説明して導入時の挫折が避けられるのが、この1冊からスタートすることかなと思って選出しています。

### スッキリわかるJava入門

次は**スッキリわかるJava入門**です。

[スッキリわかるJava入門](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E7%AC%AC4%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-%E6%B8%85%E5%96%AC-ebook/dp/B0CMCVK2FJ?_encoding=UTF8&qid=&sr=&linkCode=ll1&tag=java_books_001-22&linkId=f5ca7b2991570b33defe8ea3faa098f7&language=ja_JP&ref_=as_li_ss_tl "スッキリわかるJava入門")
<a href="https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E7%AC%AC4%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-%E6%B8%85%E5%96%AC-ebook/dp/B0CMCVK2FJ?_encoding=UTF8&qid=&sr=&linkCode=ll1&tag=java_books_001-22&linkId=f5ca7b2991570b33defe8ea3faa098f7&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/415hhkWAZOL._SL160_.jpg" ></a>

私の経験からですが、プログラミングの入門書は1冊では足りないと思っています。
理由としては、入門書だけで書ききれない**重要なことが多く**1冊では網羅できないこと。専門用語の解説がわかりやすい表記ではあるのですが、自分の中で**すっきり理解できるかはその人の今までの経験による**ところがあるからです。
そのため、入門書の位置付けで2冊目の紹介です。
2冊を読み比べて本当に重要なところ、わかりにくい概念の表現方法を比較して自分の理解力を高めることが重要と考えています。
人気シリーズのため最近実践編とともに第4版が発売されました。

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

次は**スッキリわかるJava入門 実践編**です。
タイトルの通りですが、スッキリわかるJava入門の続編です。

[スッキリわかるJava入門 実践編](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E5%AE%9F%E8%B7%B5%E7%B7%A8-%E7%AC%AC4%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-ebook/dp/B0CTPWZ2V8?_encoding=UTF8&qid=1707654423&sr=8-1&linkCode=ll1&tag=java_books_001-22&linkId=741999f0c5319c2702641f8c66643972&language=ja_JP&ref_=as_li_ss_tl "スッキリわかるJava入門 実践編")
<a href="https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E5%AE%9F%E8%B7%B5%E7%B7%A8-%E7%AC%AC4%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1-ebook/dp/B0CTPWZ2V8?_encoding=UTF8&qid=1707654423&sr=8-1&linkCode=ll1&tag=java_books_001-22&linkId=741999f0c5319c2702641f8c66643972&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/41sOF5feeGL._SL160_.jpg" ></a>

やさしいJavaと入門編でじっくり基礎を固めた後に実践編に入る流れで読み進めるといいかなと思います。

### プロになるJava

次は**プロになるJava**です。
タイトルの通りですが、ここからプロになりましょう(^^)

[プロになるJava](https://amzn.to/3T3xSMc "プロになるJava")
<a href="https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%81%AB%E3%81%AA%E3%82%8BJava%E2%80%95%E4%BB%95%E4%BA%8B%E3%81%A7%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E7%9F%A5%E8%AD%98%E3%81%8C%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E8%BA%AB%E3%81%AB%E3%81%A4%E3%81%8F%E6%9C%80%E9%AB%98%E3%81%AE%E6%8C%87%E5%8D%97%E6%9B%B8-%E3%81%8D%E3%81%97%E3%81%A0-%E3%81%AA%E3%81%8A%E3%81%8D-ebook/dp/B09VK3FTDM?_encoding=UTF8&qid=1707655616&sr=8-2-spons&linkCode=ll1&tag=java_books_001-22&linkId=1c906157c2c61a012b1af00200795972&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51Bayq56BhL._SL160_.jpg" ></a>


ここまでで**基礎を固める** -> **実践を学ぶ** -> **プロになる** というレベルアップを想定しています。
印象としては、実践を学ぶ -> プロになる 部分はちょっと飛躍的レベルアップなのですが、その部分は実際に**自分の手を動かしてプログラミングした結果**や実際やったこと読んだことをGoogle検索等で**補完しながらレベルアップ**することを想定しています。（ここまで読んだ読者ならそれが出来るだけのレベルアップがされていると考えています）

この本は、<font color="Red">ITエンジニア本大賞2023 技術書部門ベスト10</font>にも選ばれました。（Java関連の本で2023年のベスト10に選ばられるのは非常に凄い事だと思っています）これでJavaを仕事にする人は、必ず読んだ方が良い本になったのではないでしょうか。

今では待望のSpring入門編も出版されてます。こちらも同等の知識レベルで書かれているのでJavaからSpringにそのまま学習を進めるのに最適な一冊です。
Springを理解する上で最も重要な<font color="Red">DIコンテナ</font>について、実装はもちろん概念／理解する上でのイメージ図を含めて詳しく書かれているところが、プロを名乗るだけのことはある良本だと思えました。

[プロになるためのSpring入門](https://www.amazon.co.jp/dp/B0C9DL1K3V?tag=spring_boot_001-22&linkCode=ogi&th=1&psc=1 "プロになるためのSpring入門")
<a href="https://www.amazon.co.jp/dp/B0C9DL1K3V?tag=spring_boot_001-22&linkCode=ogi&th=1&psc=1" target="_blank"><img border="0" src="https://m.media-amazon.com/images/I/511iEQyjNmL._SL160_.jpg" ></a>

### Java言語で学ぶデザインパターン入門

プロになったら次は**デザインパターン**を学びましょう。

[Java言語で学ぶデザインパターン入門](https://amzn.to/3QPXA56 "Java言語で学ぶデザインパターン入門")
<a href="https://www.amazon.co.jp/Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80%E7%AC%AC3%E7%89%88-%E7%B5%90%E5%9F%8E-%E6%B5%A9-ebook/dp/B09HK66P5X?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1GHX5E7C6QF3P&keywords=Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3&qid=1707655800&sprefix=java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%2Caps%2C219&sr=8-1&linkCode=ll1&tag=java_books_001-22&linkId=0a805c53a8c35ec54530e3d72fde0b75&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/41xgZhdHu7L._SL160_.jpg" ></a>

正直プロなったところがJavaで給料をもらえるというスタートラインと思います。
つまり、ここまでのJavaプログラマーでは現場で**技術力の差別化**が出来ません。
そこで、オッこの人はJavaが**かなり出来るな**と思ってもらえるようにデザインパターンを学びましょう。
現場でこれはGoFのAdapterのデザインパターンですね。なんて、会話が出来るとJavaで自信をもって仕事をしているなと言えると思います。
本書は、2001年に発売されて以来、増補改訂され2021年に発売されたものです。
実際のコードが記載されているのはもちろんのこと、**デザインパターンの概念や用途を直感的に理解できるように書かれています**。また、デザインパターンの使い方だけでなく、パターンを使わない場合の**問題点や欠点、パフォーマンスについても考慮された説明**がなされているため、より実践的な学びを得ることができます。
Javaのスペシャリストとして学んでおくべき1冊になっています。

### リーダブルコード

次は**リーダブルコード**です。
Javaを十分学んできたので、ちょっと箸休めです。

[リーダブルコード](https://amzn.to/3pvJIB5 "リーダブルコード")
<a href="https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89-%E2%80%95%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-Theory-practice-Boswell/dp/4873115655?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=24RTSJ5TC74XE&keywords=%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89&qid=1707655927&sprefix=%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%2Caps%2C217&sr=8-1&linkCode=ll1&tag=java_books_001-22&linkId=ac2698366d644431c64b224ecb7826aa&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51xHT9ZnmNL._SL160_.jpg" ></a>

内容を知っている人は、なぜここでリーダブルコード？と思う人もいると思うのですが、私はこのタイミングがベストと思います。
プログラム初心者が読む本として位置付けされることもあると思いますが、私はJavaが分かってから読むべき（一度読んでいても再読すべき）と考えています。
自身でJavaコードをある程度書けるようになってからこの本を読むとより**リアルな気づき**があると思います。そう言えばあの時書いたあのコード、リーダブルではなかったな。など。
コメントの書き方、関数やメソッドの命名方法、制御フローのシンプル化、適切なフォーマットなどが書かれており、これらのテクニックやスタイルを使うことで、コードの読みやすさが向上し、保守性や拡張性が高まるコードが書けます。
仕事でJavaを書く場合**1人で完結しないことが多い**です。何人かのチームでJavaを書くときに読みやすいコードを書くことはチームでの開発において非常に重要です。チームで開発を行う場合、**コードの読みやすさはコミュニケーションコストを減らし、コードの品質を向上させるために不可欠**です。ぜひ1度読んで、プロフェッショナルとして読みやすいコードが書けるように意識してみてください。
ちなみにこの本は少し古いですが、<font color="Red">ITエンジニア本大賞2014 技術書部門大賞</font>の本です。

### オブジェクト指向でなぜつくるのか

次は**オブジェクト指向でなぜつくるのか**です。
こちらもJavaに特化した内容ではないため箸休め第2弾です。

[オブジェクト指向でなぜつくるのか](https://amzn.to/3QK6ktS "オブジェクト指向でなぜつくるのか")
<a href="https://www.amazon.co.jp/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%AE%E3%81%8B-%E7%AC%AC%EF%BC%93%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84OOP%E3%80%81%E8%A8%AD%E8%A8%88%E3%80%81%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E9%96%8B%E7%99%BA%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E5%B9%B3%E6%BE%A4-%E7%AB%A0-ebook/dp/B092HDFJKK?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=12GNYPU9XAG99&keywords=%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%AE%E3%81%8B&qid=1707656021&sprefix=%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A7%E3%81%AA%E3%81%9C%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%AE%E3%81%8B%2Caps%2C211&sr=8-1-fkmr0&linkCode=ll1&tag=java_books_001-22&linkId=f0e415b36a81b170f168d49648c49dcd&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51MeWoeZbRL._SL160_.jpg" ></a>

そもそもなぜJavaがここまで流行ったのか、オブジェクト指向はどんなに便利なのか、Javaでオブジェクト指向で作るというのはどういうことなのか理解するのに良い本と考えています。

### Webを支える技術 ―― HTTP，URI，HTML，そしてREST

次は**Webを支える技術 ―― HTTP，URI，HTML，そしてREST**です。
箸休め第3弾（最後の箸休め）です。そろそろプログラムを見ることに疲れた人向けです(^^;)

[Webを支える技術 ―― HTTP，URI，HTML，そしてREST](https://amzn.to/3dJ2r9P "Webを支える技術 ―― HTTP，URI，HTML，そしてREST")
<a href="https://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%EF%BC%8CURI%EF%BC%8CHTML%EF%BC%8C%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus-ebook/dp/B07JK7FZH2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=21IIP0G5X47WD&keywords=eb%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93+%E2%80%95%E2%80%95+HTTP%EF%BC%8CURI%EF%BC%8CHTML%EF%BC%8C%E3%81%9D%E3%81%97%E3%81%A6REST&qid=1707656100&sprefix=eb%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93+http+uri+html+%E3%81%9D%E3%81%97%E3%81%A6rest%2Caps%2C243&sr=8-1&linkCode=ll1&tag=java_books_001-22&linkId=2c5981d461d146bcf0c8f73fa8901eea&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51HNAhxudcL._SL160_.jpg" ></a>

皆さんがJavaを勉強する理由は様々だと思いますが、最近はWebシステムを作るケースが多いのではないでしょうか。
そんな人向けの本になっているので、私はWeb関係ないという人は飛ばしてもらっていいのですが、Javaで「HTTP，URI，HTML，そしてREST」をプログラミングするという人はぜひ読んでおいてください。
コードが書けるだけではWebシステムは完成しません。**なぜそのようなコードが必要かを理解できる**ようになると思います。

### Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発

次は**Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発**です。

[Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発](https://www.amazon.co.jp/dp/B0CZ8GVCXZ?tag=spring_boot_001-22&linkCode=ogi&th=1&psc=1 "Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発")
<a href="https://www.amazon.co.jp/dp/B0CZ8GVCXZ?tag=spring_boot_001-22&linkCode=ogi&th=1&psc=1" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51px6znMXML._SL160_.jpg" ></a>

数あるフレームワークの中でも、Javaで本格的なシステム開発をする際に必ず言っていいほど出てくるフレームワーク（その後、ほぼ採用されるフレームワーク）がSpring Frameworkです。具体的なシェアは把握していませんが、私が経験したプロジェクトではほぼ使用されていました。そのSpring Frameworkを初めて学ぶ方におすすめの入門書がこの一冊です。
この本は、**初心者から中級者までを対象に、Spring Frameworkの基本から応用までをわかりやすく解説**しています。多くの開発者に支持され、Springを学ぶ際に手に取るべき書籍とされています。その人気の証として、2024年5月には待望の第2版が発売されました。
最新の情報とともにさらに充実した内容で、Spring Frameworkの理解を深め、読者のスキルアップに貢献する一冊となると思います。
今やSpring Frameworkを扱う場合、必ず購入する本になっているのではないでしょうか。

### Spring Boot 3 プログラミング入門

いよいよ最後は**Spring Boot 3 プログラミング入門**です。

[Spring Boot 3 プログラミング入門](https://amzn.to/3LIQorH "Spring Boot 3 プログラミング入門")
<a href="https://www.amazon.co.jp/Spring-Boot-3-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0%E6%B4%A5%E8%80%B6%E4%B9%83-ebook/dp/B0BWH9G8HD?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=YEL8S28MZ0ZO&keywords=spring+boot3+%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&qid=1707656326&s=digital-text&sprefix=spring+boot+3+%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%2Cdigital-text%2C203&sr=1-3&linkCode=ll1&tag=spring_boot_001-22&linkId=f903201b037eea12dea1ccb3eb76021d&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/41NiODAuSNL._SL160_.jpg" ></a>

クラウド開発がデファクトスタンダードになっている今では、SpringからSpring Bootという選択肢が増えていると思います。
Spring Bootに特化している参考書がまだまだ少ないのでこの本だけでは足りない部分もありますが、Spring Bootの入門書としての位置付けではこの本がマストと考えています。
人気書籍だったSpring Boot 2プログラミング入門の改訂版で、**2023年2月27日**発売のJDK17、Spring 6対応です。

### 番外編：ドメイン駆動設計入門 ボトムアップでわかる！ドメイン駆動設計の基本

ここからは番外編になります。
まずは**ドメイン駆動設計入門 ボトムアップでわかる！ドメイン駆動設計の基本**です。
良いプログラムは良い設計の上に成り立ちます。
良いプログラムでも設計がいまいちであればそのシステムは扱いにくいものになるでしょう。

では、良い設計とは何か？
私の中での1つの答えは**ドメイン駆動設計**と思っています。
ここからは設計というさらに上を目指す意識高い系の皆さん向けの番外編になります。

[ドメイン駆動設計入門 ボトムアップでわかる！ドメイン駆動設計の基本](https://amzn.to/3CgkpL7 "ドメイン駆動設計入門 ボトムアップでわかる！ドメイン駆動設計の基本")
<a href="https://www.amazon.co.jp/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80-%E3%83%9C%E3%83%88%E3%83%A0%E3%82%A2%E3%83%83%E3%83%97%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8B%EF%BC%81%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88%E3%81%AE%E5%9F%BA%E6%9C%AC-%E6%88%90%E7%80%AC-%E5%85%81%E5%AE%A3-ebook/dp/B082WXZVPC?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=J6VEST51U1SC&keywords=%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80+%E3%83%9C%E3%83%88%E3%83%A0%E3%82%A2%E3%83%83%E3%83%97%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8B%EF%BC%81%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88%E3%81%AE&qid=1707656457&sprefix=%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80+%E3%83%9C%E3%83%88%E3%83%A0%E3%82%A2%E3%83%83%E3%83%97%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8B+%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88%E3%81%AE%2Caps%2C200&sr=8-1&linkCode=ll1&tag=java_books_001-22&linkId=3db68a8ad605747024fc83ddc0e9b3af&language=ja_JP&ref_=as_li_ss_tl" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51bJsFyck-L._SL160_.jpg" ></a>

まずはドメイン駆動設計の入門書という位置づけのこの本を選びました。
最終的なゴールは最後に紹介する**実践ドメイン駆動設計**になるのですが、実践ドメイン駆動設計をいきなり読んで挫折なく読み切れる人はなかなかいないでしょう。（私も一度挫折しました。。。）
そのため、まずはこの本を入門書として位置付けています。

### 番外編：エリック・エヴァンスのドメイン駆動設計

次は**エリック・エヴァンスのドメイン駆動設計**です。

[エリック・エヴァンスのドメイン駆動設計](https://amzn.to/3pyVHhu "エリック・エヴァンスのドメイン駆動設計")
<a href="https://www.amazon.co.jp/dp/B00GRKD6XU?tag=java_books_001-22&linkCode=ogi&th=1&psc=1" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/6181Uutb1tL._SL160_.jpg" ></a>

一応、この本を間に挟む順番としました。
この本がなくても実践ドメイン駆動設計を理解できそうという人は直接実践ドメイン駆動設計を読んでもいいのですが、この本を挟んだ方が理解しやすいだろうなぁと思いラインナップに入れています。

### 番外編：実践ドメイン駆動設計

いよいよ最後**実践ドメイン駆動設計**です。

[実践ドメイン駆動設計](https://amzn.to/3T801ls "実践ドメイン駆動設計")
<a href="https://www.amazon.co.jp/dp/B00UX9VJGW?tag=java_books_001-22&linkCode=ogi&th=1&psc=1" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/619Gh1s721L._SL160_.jpg" ></a>

この本の紹介はもはや何もいらないでしょう。
というぐらいドメイン駆動設計と言えば、この本という本になっています。
ただ、前述した通りいきなりこの本を読んで理解できる人は少ないと思うので今回は3冊を紹介する形で記載しました。

## まとめ

今回は、Java初心者がSpring/Springbootを使えるようになるまでの10冊とドメイン駆動設計の3冊を紹介しました。
これらを理解すれば間違なく私はJavaのプロフェッショナルです。と、自信をもって仕事ができる人材になれるかなと思って選抜しているので、これからJavaを頑張ろうと思っている人がいたらぜひ参考に1冊でも読んでみてください。

### おまけ

Javaの開発環境と言えばEclipseです。
最近はVSCodeも人気になっているのでEclipseのオススメ本が少なくなってきた印象です。
ただこの本は、この1冊読んでおけば困らない。という内容になっているのでまさにパーフェクトガイドだと思います。

<a href="https://www.amazon.co.jp/dp/B0BQ2NVCP8?tag=java_books_001-22&linkCode=ogi&th=1&psc=1" target="_blank" rel="noopener"><img border="0" src="https://m.media-amazon.com/images/I/51etM7T-ZLL._SL160_.jpg" ></a>
[JavaエンジニアのためのEclipse パーフェクトガイド](https://www.amazon.co.jp/dp/B0BQ2NVCP8?tag=java_books_001-22&linkCode=ogi&th=1&psc=1 "JavaエンジニアのためのEclipse パーフェクトガイド")

本投稿が少しでも皆さんの良いJavaライフの助けになればと思います(_ _)