DEV Community

Cover image for 20 Books to Learn Java and Related Technologies
javinpaul
javinpaul

Posted on • Edited on

20 Books to Learn Java and Related Technologies

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, Java 9, Spring 5, Groovy, Scala, Hibernate, Spring, Agile, Scrum, Microservices, Algorithms, 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 Editionshould 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.

1. Modern Java in Action

This is one of my favorite books 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.

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 course on Udemy, which was recently updated for Java 11.

2. Clean Architecture

This is one of the best books I discovered lately. I am a big fan of Uncle Bob's writing, having read Clean Code and The Clean Coder 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.

3. Grokking Algorithms

This is another great book 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 and data structures, 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 on Udemy

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.

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. I have to yet to finish the book, so I am going to read it this year as well well.

5. Soft Skills

One thing many programmers ignore is soft skills, 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.

6. Database Design for Mere Mortals

One of the oldest, but best books 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.

And if you want to combine your learning with an online course, you can also join The Complete SQL Bootcamp by Jose Portilla.

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 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.

8. Groovy in Action, Second Edition

This was the second book 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.

9. TCP/IP Illustrated

This is one of the books 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.

10. UML Distilled

Last year, I had to write a couple of UML diagrams, and this is the book I readto refresh my knowledge about UML. If you decide to learn UML now, you can check out this book, too.

11. Hibernate Tips

This is one of the most useful Java books from 2017 written by fellow blogger [Thorben Janssen] This book provides 70 practical tips for Hibernate. If you use Hibernate, 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.

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, 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.

13. Essential Scrum

I played the role of Scrum Master in 2017, and this was the book I read 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.

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.

14. Java Performance Companion

I have read a couple of Java performance tuning books in the past, like The Definitive Guide to Java Performance, so I wasn't expecting much. My only goal was to learn about the G1 garbage collection, which I learned from this book. If your focus is on Java performance tuning, this book is a good starting point.

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 and this book.

In case you like, Vlad also has a couple ofhigh performance hibernate training coursesfor experienced developers.

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. 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. I might read it again if time permits.

17. Scala for the Impatient

This is one more book on Scala 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.

18. Head First JavaScript

I have said this before, but JavaScript 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 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.

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 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 to further improve your SQL knowledge.

20. The Complete Software Developer's Career Guide

Last but not least, this is a great book for every software developer. 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.

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
10 Testing Tools Java Developers Should Know
5 Frameworks Java Developers Should Learn
Finally, Java has var to declare Local Variables
10 Tools Java Developers uses in their day-to-day work
10 Data Structure and Algorithms Courses for Interviews
10 Tips to become a better Java developer
The Complete DevOps RoadMap --- Your Guide to become DevOps Engineer

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 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.

Top comments (16)

Collapse
 
dukemagus profile image
Duke

Java for dummies is still decent. the last version is updated to java 9, so it's good enough for starters.

there's also think java, an "open source book" criminally underrated
books.trinket.io/thinkjava2/

On a side note, please disclose the affiliated links on the articles

Collapse
 
javinpaul profile image
javinpaul

Hey @Duke, thanks for your comments, I have yet to read Java for dummies but thanks for the recommendation. Same with open source book, but I'll take a look. I thought I did mention that if you buy the book I'll get paid, anyway, make it more obvious now.

Collapse
 
dukemagus profile image
Duke

not just the books. Every single Udemy link has some analytics/tracking embedded from Rakuten Marketing.
If the readers are being monitored in some way beyond the scope of the article, they deserve to know.

Collapse
 
evanoman profile image
Evan Oman

Thanks for these recommendations.

I think Effective Java is a must read for most devs, not just Java people. It has a lot of good patterns and discussions which are applicable to many other languages.

Collapse
 
javinpaul profile image
javinpaul

I agree it's one of the best books for programmers.

Collapse
 
kmyokoyama profile image
Kazuki Yokoyama

Nice list! Surprised there is no book on Clojure though.

Collapse
 
javinpaul profile image
javinpaul

Yeah, I didn't learn Clojure yet, only focused on Groovy and Scala and now spending time on Kotlin, If you have any, feel free to share.

Collapse
 
kmyokoyama profile image
Kazuki Yokoyama

I'm still learning Clojure from The Joy of Clojure by Michael Fogus and Chris Houser. It's a great book so far.

Collapse
 
devadattamulay profile image
Devadatta

I have Java 8 in action, it's an excellent book. Will try to buy some of the other books as well. If I am Java developer, does it make sense to learn other languages like Cotlin, Scala, Groovy etc.?

Collapse
 
javinpaul profile image
javinpaul

It makes sense to learn these JVM langauges, I started with Groovy because our build script using that and I wanted to use Spock. It's like another tool in your arsenal.

Collapse
 
devadattamulay profile image
Devadatta

Ok. Thanks for your response. Will check these language options.

Collapse
 
fultonbrowne profile image
Fulton Browne

thx i am going to check those out!

Collapse
 
javinpaul profile image
javinpaul

All the best, they are worth reading, no doubt about it.

Collapse
 
lmolivera profile image
Lucas Olivera

There are books I have never heard of before, excellent post.

Collapse
 
javinpaul profile image
javinpaul

Thank you @lucas .

Collapse
 
marvelouswololo profile image
MarvelousWololo

This list is gold. Only solid stuff. Thank you OP.