20 Books Java Programmers Should Read in 2018
Want to dive into a good book or two to bolster your career? These books are great for Java developers and cover everything from SQL to soft skills and Java 9.
Join the DZone community and get the full member experience.Join For Free
Welcome to 2018, guys. If you are thinking of learning new things or want to improve your knowledge of essential Java technologies, then reading books can definitely help you. Today, I am going to share some of the best Java books from the last a couple of years that you can read in 2018 to learn Java and related technology better.
The 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 2017, and you can very well read them in 2018, too. Effective Java 3rd Edition should be the first one you read in 2018, but if you do get free time, you can use this list to pick up a book or two.
1. Java 8 in Action
This is one of my carry-forward 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, 2018 is a good time to read this book. If you need tutorials on Java 8, you can also check out my list of my favorite Java 8 tutorials here.
2. Clean Architecture
This is one of the good books I discovered in 2017. 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 in 2017 and probably the best book of 2017. 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, e.g. how Facebook might store its users.
In short, it's one of the must-read books for beginners who want to learn algorithms in 2018. 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 in 2018 as well.
5. Soft Skills
One thing many programmers ignore is soft skills, e.g. 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 in 2018, 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.
7. Making Java Groovy
In 2017, 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 in 2018, 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 in 2018, 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
In 2017, I had to write a couple of UML diagrams, and this is the book I read to refresh my knowledge about UML. If you decide to learn UML in 2018, 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 Hibernate in 2018, you can use this book to give your knowledge a new dimension.
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.
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 in 2018, this is the book you should read.
14. Java Performance Companion
I have read a couple of Java performance tuning books in the past, e.g. The Definitive Guide to Java Performance, so I wasn't expecting much. My only goal was to learn about G1 garbage collection, which I learned from this book. If your focus is on Java performance tuning in 2018, this book is a good starting point.
15. High-Performance Java Persistence
This was another leftover from 2016 that I finished in 2017. It's another great book on Hibernate, focused on performance. If you are serious about improving your knowledge about Hibernate in 2018, I suggest you read both Hibernate Tips and this book.
16. Functional Programming in Scala
I tried to get my hands dirty with Scala in 2017, 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 in 2018, you can check out this book. I might read it again in 2018 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 in 2018, this is the good book to start with.
19. SQL CookBook
SQL is my favorite technology, and I am always looking for an interesting book on SQL. I found this one in 2017 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 in 2018 if you want to improve your SQL skills. You can also use these websites 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 in 2018, this is the book you should read. John Sonmez of SimpleProgrammer.com explains a lot of practical stuff in this book and Soft skill which I shared earlier.
That's all about the top 20 books I have read in 2017. I have read even more, but I am only listing these 20 for your reference.
Opinions expressed by DZone contributors are their own.