Book: Effective Java (Second Edition)

For a number of reasons I currently have a bit of time on my hands but without access to my usual time-consuming activities (Netflix, fast internet, Playstation, and even housework). Consequently, I’ve been reading a few programming books (both old and new) and I’ve just been thinking about Effective Java (second edition). It was written by Joshua Bloch who you might know as the author of the Java Collections framework, the java.math package, or as he was the Chief Java Architect at Google. It is probably the best programming book I’ve ever read.

The book covers number of topics (78 items in total) falling into a few main categories, including:

  • General programming advice and techniques
  • Good OO practices and principles
  • Good patterns and idioms to employ (not trying to cover all the Design Patterns, though)
  • API design (including examples of Java APIs which suffer from bad design decisions)

In particular, I think the way he discusses and gives examples of API design is a big differentiator from other books and articles which I have read. This is unsurprising if consider that his most important work has been in core language APIs.

The book was written when Java 6 was the new hotness so some of what was written is not as relevant as it once was, but, most of it is still relevant and will probably remain so for a very long time. I would still recommend any developer using an OO language give it a read. You might like to skip over the JVM-specific bits if you’re a .NET developer, or some of the generics stuff if you work in a dynamic language like Groovy, but most of it is still well worth your time.

Leave a comment