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:


  • 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.

Thursday, May 15, 2008

Google hosting Eclipse Developer Day

From Ian Skerrett's post:

I am excited to announce a new event called ‘Eclipse Day at the Googleplex‘ to be held June 24 at the Googleplex in Mountain View, CA. It will be a half day event that features technical presentations on various Eclipse projects (Equinox, ATF, ECF, CDT and Mylyn) and using Eclipse to build applications for Google Android and GWT. I am also pleased that Michael Gilpin from eBay will be presenting how eBay is using Eclipse. btw, Michael has already written some articles about Eclipse at eBay. It is a great mixture of Eclipse technical content.

Mustafa Isik suggested the idea while he was a summer intern at Google last year and we have great support from people internal to Google. Special thanks to the Google Open Source Program Office for sponsoring the event and making it possible.

It is free to attend the event but you need to register on the wiki. Space is limited so please register early.

I am one of the Googlers who has been working with Ian on getting this going, so I'm excited to see the promotion. Please don't hesitate to let me know if you have any questions.