Don't hold back your Java

In the last article we looked at the best books to improve your knowledge of the core concepts of programming. This time we are specifically going to look at the best Java books (in my humble opinion) that give not only juniors a great base in the language but also act as great references for senior developers.

I'm not going to explain why you should be reading and studying outside of work, if you need to hear my reasons then go check out the first article!

So without further ado here are my top Java reads!

1. Effective Java

Effective Java
Without a doubt this is THE book to read on Java development if you only have time for one book. Written by Joshua Bloch who is pretty much a demi god in the Java world according to one of my programming friends! Bloch was the lead for many Java features but his most well known contribution is without a doubt leading and designing the Java Collections framework.

This book covers 78 concise tips ranging from working with generics, best practices on concurrency and general programming tips and tricks (the builder pattern is a particular favourite of mine).

Buy here: Amazon

Spring in Action

Spring in Action

Perhaps I'll get some flack for including a Spring book, there has been quite a backlash recently against the framework and it's scope has certainly grown but at it's core it is a DI (Dependency Injection) framework and now supports multiple other 'spring' projects such as Spring Data,Spring Security and Spring integration for messaging and queue integrations.

Most projects I've ever worked on have used some part of the Spring world so it's crucial to have an understanding of it, even if you decide you hate it and want a lighter DI only framework such as Guice.

The book is a little old (new edition out in October) but covers the key concepts of Spring which is DI and interaction and mapping with databases. If you feel comfortable with your Spring knowledge then I'd recommend checking out Spring Integration in Action which covers the messaging,topics and queues offered by the Spring integration project.

Buy here: Amazon

Java Concurrency in Practice

Java Concurrency in Practice

Concurrency is hard. Concurrency is really hard. If you are going to be diving into the world of concurrency in Java then this book gives you a great grounding in the fundamentals and right through into the advanced techniques. Written by a who's who from the Java world it is definitely worth checking out.

If all this talk of threading,locks and synchronisation scares you then perhaps you can check out other programming paradigms such as evented systems (check out Play framework for Java).

Buy here: Amazon

Java SE8 for the Really Impatient

Java SE8
The first 3 books on this list are all classics but are also in need of new updates for the latest versions of Java. Java SE8 for the Really Impatient does a great job of introducing you to the latest and greatest features of Java8 such as Lamdbas (finally!!), the new Stream API, new date time api and also has a really neat chapter of Java 7 features that may have passed you by! For me this book is the easiest to read of the four listed here, it has a nice easy style and favours concise explanations over long winded explanations.

I know Java is used a lot in the enterprise world (been there, got the t-shirt) and Java shops can be running older versions (1.6 etc) but it's important as a developer to stay on top of the language because it is
evolving no matter what the detractors say. Plus who doesn't want lambdas?

Buy here: Amazon

Conclusion

As before if you think I've missed a great Java book or I'm crazy for including one or more of the books I've listed then I'd love to hear your opinion! You can reach out to me on twitter or leave a comment below. Next up the best programming books to improve your Ruby skills!