20 Books to Learn Java and Related Technologies
Tags: books, java, programming
Published: 2019-06-20 13:24:34

---
title: 20 Books to Learn Java and Related Technologies
published: true
description: A list of books for Java Programmers to learn Java, Java 8, Spring, Java 9, SQL, Groovy, Scala, Hibernate, etc
tags: books, java, programming, beginners
cover_image: https://thepracticaldev.s3.amazonaws.com/i/3jqcns850jtf8yhhv74v.jpg
---
*Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.*

Hello guys, today, I am going to share some of the best Java books from the last couple of years that you can read now to learn Java and related technology better. These are the books, I have also read in the last few years. So, if you don't find your favorite book on this list don't get disappointed, I may not have read it, but just drop a note, I'll love to add into my reading list. 

This list includes books to learn [Java 8](http://www.java67.com/2014/09/top-10-java-8-tutorials-best-of-lot.html), [Java 9](http://www.java67.com/2018/01/top-10-java-9-tutorials-and-courses.html), [Spring 5](http://www.java67.com/2017/11/top-5-free-core-spring-mvc-courses-learn-online.html), [Groovy](http://javarevisited.blogspot.sg/2017/12/10-things-java-programmers-should-learn.html#axzz53ENLS1RB), [Scala](http://javarevisited.blogspot.sg/2018/01/10-reasons-to-learn-scala-programming.html#axzz550Ppgfxg), [Hibernate](http://javarevisited.blogspot.sg/2018/01/top-5-hibernate-and-jpa-courses-for-java-programmers-learn-online.html#axzz55mTqgbD8), [Spring](http://javarevisited.blogspot.sg/2016/12/top-5-spring-and-hibernate-training-courses-java-jee-programmers.html), [Agile](http://javarevisited.blogspot.sg/2018/01/top-5-free-agile-courses-for-programmers.html#axzz54v9Z26qM), [Scrum](https://www.java67.com/2020/06/top-5-books-to-become-scrum-master-in.html), [Microservices](https://medium.com/javarevisited/10-best-java-microservices-courses-with-spring-boot-and-spring-cloud-6d04556bdfed), [Algorithms](https://medium.com/javarevisited/7-best-courses-to-learn-data-structure-and-algorithms-d5379ae2588), and other important stuff for Java developers. You don't need to read all of the books --- this list will give you some ideas about interesting books on the things you want to learn --- but if you are a nerd like me and have some time to read books, particularly during a commute, then this is quite an interesting list to follow.

Here is my list of 20 books I read in last a couple of years, and you can very well read them this year, too. [**Effective Java 3rd Edition**](http://www.amazon.com/dp/0321356683/?tag=javamysqlanta-20)should be the first one you read today, but if you do get free time, you can use this list to pick up a book or two.

[![](https://cdn-images-1.medium.com/max/800/0*DGDDF-VoTKcJ1sxT.jpg)](https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997/?tag=javamysqlanta-20)


### 1\. Modern Java in Action
[This is one of my favorite books](http://www.amazon.com/Java-Action-Lambdas-functional-style-programming/dp/1617291994?tag=javamysqlanta-20) from 2016. I have been reading this regularly throughout 2017 while learning JDK 8 features. If you haven't read it yet or have yet to start with JDK 8, this year is a good time to read this book. If you need tutorials on Java 8, you can also check out the list of my favorite Java 8 tutorials [here](http://www.java67.com/2014/09/top-10-java-8-tutorials-best-of-lot.html).

The book will teach you all the modern way to code in Java like lambdas, Stream, functional programming as well as reactive programming. Though, if you prefer online courses than books, I suggest you take a look at [**The Complete Java MasterClass**](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fjava-the-complete-java-developer-course%2F) course on Udemy, which was recently updated for Java 11.

[![](https://cdn-images-1.medium.com/max/800/0*pemVXXcWsBvd_ozs.jpg)](http://www.amazon.com/Java-Action-Lambdas-functional-style-programming/dp/1617291994?tag=javamysqlanta-20)



### 2\. Clean Architecture
[This is one of the best books](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164?tag=javamysqlanta-20) I discovered lately. I am a big fan of Uncle Bob's writing, having read [Clean Code](http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882?tag=javamysqlanta-20) and [The Clean Coder](https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073?tag=javamysqlanta-20) already. These books talk more about getting your architecture right. It's a one-of-a-kind book, and if you want to learn the pros and cons of different software architecture, this is the book to read.

[![](https://cdn-images-1.medium.com/max/800/0*N5EdWQbPWc-pPh70.jpg)](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164?tag=javamysqlanta-20)


### 3\. Grokking Algorithms
[This is another great book](https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230/?tag=javamysqlanta-20) I read this book last year and probably the best book on Algorithms. Even though it's very short in terms of its coverage of [algorithms](https://medium.com/javarevisited/20-algorithms-coding-problems-to-crack-you-next-technical-interviews-23191f229788) and [data structures](https://www.java67.com/2019/07/top-10-online-courses-to-learn-data-structure-and-algorithms-in-java.html), what is covered is very entertaining and useful.

It gives new life to old concepts by correlating with modern day examples, like how Facebook might store its users.

Btw, if your goal is to learn Data Structures and Algorithms then I also suggest you join a comprehensive online course like [**Data Structures and Algorithms: Deep Dive Using Java**](https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=323058.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Fdata-structures-and-algorithms-deep-dive-using-java%2F) on [Udemy](https://medium.com/@udemy)

[![](https://cdn-images-1.medium.com/max/800/0*wXzG-mu9bqAGBr7W.jpg)](https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230/?tag=javamysqlanta-20)

In short, it's one of the must-read books for beginners who want to learn algorithms this year. And if you need more suggestions, check out my list of [here](http://www.java67.com/2015/09/top-10-algorithm-books-every-programmer-read-learn.html).


### 4\. Building Microservices: Designing Fine-Grained Systems
Everyone is talking about microservices, but what are they? What is the main benefit of microservices architectures over monolithic ones? [**This book answers all of those questions**](https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358/?tag=javamysqlanta-20)**.** I have to yet to finish the book, so I am going to read it this year as well well.

[![](https://cdn-images-1.medium.com/max/800/0*gfwE2LlTi2r-ymdP.jpg)](https://medium.com/javarevisited/top-5-courses-to-learn-microservices-in-java-and-spring-framework-e9fed1ba804d)


### 5\. Soft Skills
One thing many programmers ignore is [soft skills](http://www.amazon.com/Soft-Skills-software-developers-manual/dp/1617292397?tag=javamysqlanta-20), like email writing, focusing on career growth, and improving themselves. This is a great book from John Sonmez and if you feel that you are stuck in your career or want to give it a boost this year, this is the book you should read.

[![](https://cdn-images-1.medium.com/max/800/0*ZM3vzGQKZgIXHkSZ.jpg)](https://javarevisited.blogspot.com/2018/02/top-5-professional-email-writing-courses-for-programmers.html#axzz6ZQS8iqkb)


### 6\. Database Design for Mere Mortals
[One of the oldest, but best books ](https://www.amazon.com/Database-Design-Mere-Mortals-Hands/dp/0201752840?tag=javamysqlanta-20)on database design out there, I love to find a good, old book that is still relevant. If you are interested in learning database design or want to improve your database modeling, this provides a good starting point. If you need more recommendations, please see my full list of database design books [here](http://javarevisited.blogspot.sg/2017/11/top-5-books-to-learn-database-design.html#axzz52fC9zGiK).

And if you want to combine your learning with an online course, you can also join [**The Complete SQL Bootcamp**](https://click.linksynergy.com/deeplink?id=JVFxdTr9V80&mid=39197&murl=https%3A%2F%2Fwww.udemy.com%2Fthe-complete-sql-bootcamp%2F) by [Jose Portilla](https://medium.com/@joseportilla).

[![](https://cdn-images-1.medium.com/max/800/0*ER13ui4L6mvhmRK9.jpg)](https://www.amazon.com/Database-Design-Mere-Mortals-Hands/dp/0201752840?tag=javamysqlanta-20)


### 7\. Making Java Groovy
Last year, I got a chance to work with Groovy a little bit, and [this was the first book I read](https://www.amazon.com/Making-Java-Groovy-Ken-Kousen/dp/1935182943?tag=javamysqlanta-20) to learn it. If you decide to learn Groovy this year, this book provides a good foundation from a Java programmer's perspective. It gives you just enough information to bring you up to speed without giving you unnecessary details that you might not understand at the start.

[![](https://cdn-images-1.medium.com/max/800/0*MeLIN6cMCUBMsqTM.jpg)](https://www.amazon.com/Making-Java-Groovy-Ken-Kousen/dp/1935182943?tag=javamysqlanta-20)

### 8\. Groovy in Action, Second Edition
[This was the second book](https://www.amazon.com/Groovy-Action-Covers-2-4/dp/1935182447/?tag=javamysqlanta-20) I read on Groovy in 2017. Even though Making Java Groovy is good to start with, it's not comprehensive, and once you learn the basics of Groovy and write a couple of Groovy scripts, you need more detailed information. That's where this book rocks. If you are learning Groovy then you can refer to this book.

[![](https://cdn-images-1.medium.com/max/800/0*_8UaruunSuqqXZm3.png)](https://javarevisited.blogspot.com/2017/08/top-5-books-to-learn-groovy-for-java.html)


### 9\. TCP/IP Illustrated
This is [one of the books](https://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Professional/dp/0201633469?tag=javamysqlanta-20) I enjoyed least, but I still found it very useful. I have yet to finish with this one, but if you have to go deep into TCP/IP, this is the book to read.

[![](https://cdn-images-1.medium.com/max/800/0*pfRDdrsCvksxzO2T.jpg)](https://javarevisited.blogspot.com/2017/08/best-book-to-learn-tcpip-udp-and-networking-protocol.html#axzz6TqLNoUQZ)


### 10\. UML Distilled
Last year, I had to write a couple of UML diagrams, and [this is the book I read](https://www.amazon.com/UML-Distilled-Standard-Modeling-Language/dp/0321193687?tag=javamysqlanta-20)to refresh my knowledge about UML. If you decide to learn UML now, you can check out this book, too.

[![](https://cdn-images-1.medium.com/max/800/0*NjMHP6uyqtnBI_jG.jpg)](https://javarevisited.blogspot.com/2017/07/top-5-books-to-learn-uml-unified-modelling-language-java.html)


### 11\. Hibernate Tips
[This is one of the most useful Java books](https://www.amazon.com/Hibernate-Tips-solutions-common-problems-ebook/dp/B06XXGYZHS?tag=javamysqlanta-20) from 2017 written by fellow blogger [Thorben Janssen] This book provides 70 practical tips for Hibernate. If you use [Hibernate](https://medium.com/javarevisited/top-5-hibernate-online-training-courses-for-beginners-and-advance-java-programmers-469460596b2b), then these tips are good to fill your knowledge gaps. and if you decide to learn to Hibernate this year, you can use this book to give your knowledge a new dimension. Btw, if you like online courses, here is a list of some [good Hibernate and JPA courses](http://javarevisited.blogspot.sg/2018/01/top-5-hibernate-and-jpa-courses-for-java-programmers-learn-online.html).

[![](https://cdn-images-1.medium.com/max/800/0*sZTYG7RxKGlU3YVg.png)](https://medium.com/javarevisited/top-5-books-to-learn-hibernate-for-java-developers-b2cb4b16ccd6)


### 12\. The Art of Agile Development
I have been using Agile for quite some time, but I still like to read books on Agile to refresh my knowledge and learn one or two new things. [This one turned out to be a good book on Agile](https://www.amazon.com/Agile-Development-first-Text-Only/dp/B004SCFAC4/?tag=javamysqlanta-20), and even regular users of Agile can learn a thing or two from this book.

If you like courses, you can check out these [free Agile and Scrum courses](http://javarevisited.blogspot.sg/2018/01/top-5-free-agile-courses-for-programmers.html).

[![](https://cdn-images-1.medium.com/max/800/0*AJkYmEtrv7dxVjCX.jpg)](https://javarevisited.blogspot.com/2017/06/top-5-books-to-learn-agile-and-scrum-methodology.html)


### 13\. Essential Scrum
I played the role of Scrum Master in 2017, and [this was the book I read](https://www.amazon.com/Essential-Scrum-Practical-Addison-Wesley-Signature/dp/0137043295/?tag=javamysqlanta-20) to get myself ready for the role. Scrum works great with small, onshore team, but it gets tricky when you need to manage a big team remotely, scattered around the world.

[![](https://cdn-images-1.medium.com/max/800/0*PC1-ijUBtkPQWwL1.jpg)](https://www.java67.com/2020/06/top-5-books-to-become-scrum-master-in.html)

This book provides all the tools and guidance you need to run Scrum meetings and how to become a Scrum Master. If you desire to become Scrum Master this year, this is the book you should read and if you like courses, you can check out these [free Agile and Scrum courses](http://javarevisited.blogspot.sg/2018/01/top-5-free-agile-courses-for-programmers.html).


### 14\. Java Performance Companion
I have read a couple of Java performance tuning books in the past, like The [Definitive Guide to Java Performance](https://javarevisited.blogspot.com/2018/07/top-5-java-performance-tuning-books-for.html#axzz5QyVrOCeJ), so I wasn't expecting much. My only goal was to learn about the G1 garbage collection, [which I learned from this book](https://www.amazon.com/Java-Performance-Companion-Charlie-Hunt/dp/0133796825?tag=javamysqlanta-20). If your focus is on Java performance tuning, this book is a good starting point.

[![](https://cdn-images-1.medium.com/max/800/0*Rgq1Q53J9FOgWr-L.jpg)](https://www.java67.com/2019/08/best-books-to-learn-java-virtual-machine-in-depth.html)


### 15\. High-Performance Java Persistence
This was another book I highly recommend to people mastering Hibernate. It's another great book on Hibernate, focused on performance by @Vlad Mihalcea. If you are serious about improving your knowledge about Hibernate, I suggest you read both [Hibernate Tips](https://javarevisited.blogspot.com/2016/12/top-5-spring-and-hibernate-training-courses-java-jee-programmers.html#axzz56WXxxAC0) and this book.

In case you like, Vlad also has a couple of[**high performance hibernate training courses**](https://vladmihalcea.teachable.com/?affcode=172599_kuoszt8s)for experienced developers.

[![](https://cdn-images-1.medium.com/max/800/0*4VgI62JwVda_PlDb.jpg)](https://vladmihalcea.teachable.com/p/high-performance-java-persistence-mach-1?utm_source=javarevisited&utm_medium=web&utm_campaign=hpjpmach1&affcode=172599_kuoszt8s)


### 16\. Functional Programming in Scala
I tried to get my hands dirty with Scala last year, but without much success. I read a book or two but didn't do enough practice to really [learn Scala](https://javarevisited.blogspot.com/2020/09/top-5-courses-to-learn-scala.html#axzz6cRYpiwdu). One reason for that was that I wasn't using it on any of my projects, and there were more important things to focus on.

Anyway, if you decide to focus on functional programming and Scala this year, [you can check out this book](https://www.amazon.com/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653/?tag=javamysqlanta-20). I might read it again if time permits.

[![](https://cdn-images-1.medium.com/max/800/0*jOiUc1U4w06gXkWK.jpg)](https://javarevisited.blogspot.com/2017/04/5-books-to-learn-scala-and-functional-programming.html)


### 17\. Scala for the Impatient
[This is one more book on Scala](http://www.amazon.com/dp/0321774094/?tag=javamysqlanta-20) that I looked at in 2017. I am a big of Cay S. Horstmann's writing, having read his books like Core Java Part I and II and Java SE 8 for the Really Impatient.

This is a similar book that focuses on Scala. If you are learning Scala, this is the good book to start with, but if you like online courses you can also use these [free courses to learn Scala](https://javarevisited.blogspot.com/2019/01/5-free-scala-programming-courses-for-java-programmers-learn-online.html).

[![](https://cdn-images-1.medium.com/max/800/0*qhabPzxo-So_HRoZ.jpg)](https://medium.com/javarevisited/5-best-scala-and-functional-programming-books-to-learn-in-2021-97ec9e56f2bd)

### 18\. Head First JavaScript
I have said this before, but [JavaScript](https://www.java67.com/2020/10/best-javascript-courses-for.html) is the #1 programming language now, and if you don't know JavaScript, you are missing a lot. [Head First JavaScript is a must-read book](https://www.amazon.com/Head-First-JavaScript-Programming-Brain-Friendly/dp/144934013X?tag=javamysqlanta-20) for web development jobs and for learning frameworks like Angular, React, and jQuery.

If you have yet to learn JavaScript, there is no better book than Head First JavaScript, but if you like courses you can also use these [free courses to learn JavaScript](http://www.java67.com/2018/04/top-5-free-javascript-courses-to-learn.html).

[![](https://cdn-images-1.medium.com/max/800/0*-ejpazMvTrXDvVC-.jpg)](https://javarevisited.blogspot.com/2017/02/top-5-javascript-books-to-learn-best-of-lot-must-read.html)


### 19\. SQL CookBook
SQL is my favorite technology, and I am always looking for an interesting book on SQL. [I found this one last year](https://www.amazon.com/SQL-Cookbook-Solutions-Techniques-Developers/dp/0596009763?tag=javamysqlanta-20) and I am very happy to share it with you all as well.

This is a very hands-on book on SQL that teaches you a lot of nice tips about using SQL in different databases.

Read this book now if you want to improve your SQL skills. You can also use these [free courses to learn SQL queries](http://www.java67.com/2018/02/5-free-database-and-sql-query-courses-programmers.html) to further improve your SQL knowledge.


[![](https://cdn-images-1.medium.com/max/800/0*gBCEZaIlN154zLWa.jpg)](https://medium.com/javarevisited/5-best-books-to-learn-sql-and-database-design-for-programmers-and-developers-1e7839df2f3e)

### 20\. The Complete Software Developer's Career Guide
Last but not least, [this is a great book for every software developer](https://www.amazon.com/Complete-Software-Developers-Career-Guide-ebook/dp/B073X6GNJ1?tag=javamysqlanta-20). If you are serious about your career and want to take control of it, this is the book you should read. John Sonmez explains a lot of practical stuff in this book and Soft skills which I shared earlier.

[![](https://cdn-images-1.medium.com/max/800/0*lvFq3jcHlGEGPzly.jpg)](http://javarevisited.blogspot.sg/2017/12/5-career-development-and-soft-skill-books-for-programmers.html#axzz58AXV2r1A)

That's all about the **top 20 books you can read this year**. I have read even more, but I am only listing these 20 for your reference. If you have any other interesting book of last a couple of years which could be in this list then feel free to suggest them in response, I'll then add them into this list to create a real mega list of books for Java Programmers.

Other **Java and Programming Articles** you may like
 [10 Things Java and Web Developer Should Learn](http://javarevisited.blogspot.sg/2017/12/10-things-java-programmers-should-learn.html#axzz53ENLS1RB)
 [10 Testing Tools Java Developers Should Know](http://javarevisited.blogspot.sg/2018/01/10-unit-testing-and-integration-tools-for-java-programmers.html)
 [5 Frameworks Java Developers Should Learn](http://javarevisited.blogspot.sg/2018/04/top-5-java-frameworks-to-learn-in-2018_27.html)
 [Finally, Java has var to declare Local Variables](http://javarevisited.blogspot.sg/2018/03/finally-java-10-has-var-to-declare-local-variables.html)
 [10 Tools Java Developers uses in their day-to-day work](http://javarevisited.blogspot.sg/2017/03/10-tools-used-by-java-programming-Developers.html#axzz55lrMRnNC)
 [10 Data Structure and Algorithms Courses for Interviews](https://hackernoon.com/10-data-structure-algorithms-and-programming-courses-to-crack-any-coding-interview-e1c50b30b927)
 [10 Tips to become a better Java developer](https://javarevisited.blogspot.com/2018/05/10-tips-to-become-better-java-developer.html)
 [The Complete DevOps RoadMap --- Your Guide to become DevOps Engineer](https://javarevisited.blogspot.com/2018/09/the-2018-devops-roadmap-your-guide-to-become-DevOps-Engineer.html)

Thanks for reading this article so far. If you like these books then please share with your friends and colleagues. If you have any feedback or suggestion then please drop a note. If you like, you can also follow [javarevisited ](https://twitter.com/javarevisited)on twitter.

**P. S.** - The book contains my special links, so if you buy any book on this list I  will be get paid a small amount with no additional cost to you. Also the book recommendations is based upon my personal learning and likened. Please go through sample chapters to see if you like the book or not and only buy if you connect to author.