Recommended Programmer Reading

I was recently asked via email what training or whatnot I would recommend to bring a programming team up to speed on Java.

A couple options come to mind – depending on the overall scope of your programming team and their past experience (if I can ask – what is your past experience?) but, I generally recommend the following progression of reading (note – this is probably about 6 mo of reading, if you like reading):

  1. Pragmatic Programmer (non-language specific, but the best beginner book I’ve found)
  2. Headfirst Java (for basic/core Java)
  3. Effective Java, by Josh Block (Josh was the Architect of the Java Collection Framework)
  4. Headfirst Design Patterns (I actually love this whole series)
  5. Spring in Action (I think the latest edition was updated for 2.5)
  6. Java Puzzlers (Josh Block, & I think Neil Gaffer)
  7. Domain Driven Design, by Eric Evans

In terms of classes/training – general Java classes can be useful, but I find they generally tend to focus at too low of a syntactic/language level (understanding core concepts is important) – effective Java will give you a good feel for some of the oddities – but that your best bit tends to be to get enough to bootstrap you and start coding/testing/working.

Of course, my employer (CampusEAI) does provide focused training on topics like Java Development or Portlets, which since I had a hand in designing the modules I think hit the mark fairly nicely…