Monday, May 26, 2008

Becoming a Java Master, con't.

Last night I read an interesting post by Steve McLeod, titled Becoming a Java Master. The article suggests these "books, techniques, and qualifications that help you become a Java Master." You can browse the article to see what he suggests: a good series of books and a Sun Certified Java Programmer certification. I think these things are helpful, but not nearly enough. Of course, everyone takes their own path to mastery, mine involved a job with some of the greatest engineers I've ever met.

Note: I don't consider myself a 'Master', and that's in part because it's hard to use that phrase when I see names like Bob Lee in my inbox almost every day.

All of Steve's recommendations are good, here are some others:

Read

  • Participate in a reading group. From a personal perspective, the thing that worked best for me was to skip participating and go straight to leading the group. Occasionally, (and this depends on the group,) you don't need to be a subject matter expert to lead a reading group, just a desire to learn a topic, and a few people who will look to you to set the group's tone. I find that the fear of embarrassing myself as an unprepared leader is usually enough to get me through a difficult book. (Except that one time when we read The Haskell School Of Expression. I make no apologies for that one.)

  • Read Java Puzzlers. It doesn't feel like a mastery-type book, but only because it's so much fun.

  • Read the Core Java books. They are invaluable references.
Get Inside
  • Read some of the JDK source. Do you know how ArrayList got its name? Have you tried to understand ConcurrentHashMap from the inside? Go find out.

  • Try to write something meta, like a class file decompiler, a custom classloader, or a debugger. You don't have to finish it, and it doesn't even have to have to be revolutionary. You're doing it for yourself so you come away with a bonafide understanding of the insides. (Personally, I started writing a decompiler in 2004. When I got hired by Google, I stopped putting time aside for it.)
Be Like A Master
  • Regurgitate what you have learned. You choose the format: a blog, an online document, an open-source contribution, a presentation. Heck, you can even write a book. Regurgitating the information helps you become a subject master.

  • Participate in Java Ranch or any other online forum, and the answer questions you find online. Answering other people's questions is a great way to reinforce your own knowledge. Of course, use it to ask questions about things you don't understand. A true master knows it's good to ask questions.

No comments: