My JVM reading list for 2018
I am sharing a part of my 2018 reading plan. Because I am a Java developer, I focus on broadening my knowledge of Java. But I’ve listed some other books too.
Disclaimer: I am not affiliated with any publisher or writer mentioned below. I share these books out of sheer goodwill, with the hope, you will learn something interesting.
Without the foundations of a language, we cannot do anything well. Therefore, I will update my knowledge by reading Java 8&9 in Action by Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft. Even though Java 9 is released, Java 8 brought new functionality which should be mastered — and I have to learn still some features.
However, I suggest everyone use the new modularisation cautious. You can easily shoot yourself in the foot and create a dependency-hell for your running project.
For the Enterprise Developers
OK, not JEE, but for larger systems. Spring in Action, Fifth Edition by Craig Walls. The new version brings a new structure too. The author redesigned the contents to give us a modern way of learning Spring: with Spring Boot in the beginning. I think this will be as fun as the previous edition.
Springs offers reactive and cloud programming solutions too. If you want to deepen your knowledge in one (or both) of these, take a look at the book.
But Kotlin is not the only language you can put on the JVM. Groovy is another exciting language, and I plan to finish Groovy in Action by Dierk König, Paul King, Guillaume Laforge, Hamlet D’Arcy, Cédric Champeau, Erik Pragt, and Jon Skeet in 2018. Why? Because Spock is written in Groovy, and I kind of like this testing framework.
To jump on the bandwagon!
I do enterprise development (either with Java EE or Spring) since I started working. And I believe Microservices are something for the enterprise. Therefore, I will read Enterprise Java Microservices by Ken Finnigan. I hope it has some interesting insights how to develop microservices right. The ToC is promising if Part 3 is written well.
The hardest thing in the Microservice Architecture is to understand that it’s not just about how your code is written: it is the living Continous Everything. Without this in mind you will fail — regardless how many books you read.
Testing is necessary
As I already mentioned, you have to automate testing if you develop a Microservice landscape. One book which aims to give you aid in your quest of test automation is Testing Java Microservices by Alex Soto Bueno, Jason Porter, and Andy Gumbrecht.
This book started as a general testing book with Arquillian, and it evolved (mutated?) into something different: testing Microservices. The ToC gives a glance about what they want to teach, and I like the approach. You are introduced to the various levels of tests: unit, component, and integration. I am interested, what they deliver and how helpful the practices are in eliminating bugs.
Improving code is always a hot topic, not just for the JVM. There are many approaches how we can achieve this: writing tests, better specifications, thinking about what we do… Therefore, you can find a ton of books about this topic. I plan to read the following books:
Software Faster by Dan North. This book is a long-time work-in-progress, and many chapters are missing their core. Nevertheless, buying this book was a good asset (at least I think so), but I have to nudge Dan again how his plans on continuing the book are going.
Writing Great Specifications by Kamil Nicieja. I am an enthusiast of proper specifications. I loved when we used Cucumber as part of our CI infrastructure. I used GWT-style specifications if I could. I love Spock because you can write GWT-style tests. And I love if my specifications contain examples, edge cases and I do not have to think about everything but the solution how to implement features.
Troubleshooting Java Performance by Erik Ostermueller. Again, the title and the description sounds promising. This book is meant for intermediate and expert Java developers — sure, as a junior you won’t bother yourself with memory leaks and such.
+1 General reading
I’ve received a copy of Coders at Work by Peter Seibel from one co-worker and mentee when I left the company which I rejoined again. This is a big book, and I don’t like carrying such weight with me on the train. But 2018 I should read this book. It is about coders, how they became coders and what they do now. And they are famous, but I know only a few of them by name.
It looks like I am a fan of Manning books. Well, the reason behind this can be that they give you the ebook version free if you buy any print copies. Another reason can be that they have daily discounts (a.k.a. Deal of the Day). And a third reason can be that they publish books I am interested in.
I know this is a though plan for 2018 but if I manage to read all the books listed above, my market value will increase, and I can face the upcoming years without fear: I am up-to-date with the current JVM technologies.
My only concern will be Java: will it survive the coding future? I am full of hope because it is around since quite a time.
And I’ll write reviews of the books to share my impressions with you — if you plan to invest but are not sure if it is worth the money. Stay tuned!
 Continous Everything is Integration, Delivery, Deployment, Testing, Linting, Monitoring, Everything. You have to automate everything after coding to an extreme extent.