Josh Bloch’s Effective Java is easily one of the earliest deeply technical books I can remember that really help nudge me along the road to becoming a more conscientious programmer. Language mastery, he says, is a play in 3 parts:

  • Grammar
  • Vocabulary
  • Common usage

#1 and #2 are fairly narrow in scope – usually taking no more than 2-3 weeks – and are what I consider to be every language’s cover charge. The bare minimum you simply must know to get in the door. #3 on the other hand is a bit more nebulous and often takes anywhere from months to years.

The good news is picking up a good sense of common usage has never been easier thanks to the likes of github, bitbucket et. al. Start reading somebody else’s code! Many somebody else’s actually.

Just this morning I had an hour free before rolling into work – the perfect opportunity to start poking around in WordPress’s codebase. :)