I surface again, back from the land of studying and cramming. I decided to study for the SCJP (Sun Certified Java Programmer) exam, since that's what I spend my time doing at $dayjob (I might as well do it as best as I can!) Yesterday I passed the exam, yay!

I kinda like exams and certifications and courses in general (though if you'd asked me on Sunday I likely would have had something different to say!) They give a focus to my learning or simply give me the opportunity to look into a topic -- I'm interested in many many things and although I plan to learn about them all at some point, I can't learn everything at once. I was delighted when a JQuery course was organised in Tog earlier this year, it was the perfect opportunity to get a taste for it.

My usual process for learning a programming language usually starts like this:

  • Do something. I first used Perl when I had a huge QIF export where I needed to change the dates from DD/MM/YY to MM/DD/YY. Or maybe it was the other way around.
  • Or follow a tutorial to learn about it. Django looked so cool I had to try out their awesome, awesome tutorial.
  • Sometimes I'll pick up a book on the topic if I see a good recommendation, like Learning Perl.

Very quickly though, I'll usually get interested in a problem or app and I'll drop the tutorials and books, simply using them as reference materials. It's the best way to learn, my practical knowledge expands but at the same time I'm likely to miss on things because I don't know they exist, or I don't realise I only have a partial understanding of a particular topic. In the end I only learn and see what I need for whatever task at hand, my knowledge can be fuzzy in places. I build a good feel for what's right and wrong but I don't necessarily understand precisely why. There could be a world of useful features I'm missing, especially if the new language has its own very specific quirks and shortcuts that don't always map one-to-one to other languages -- Perl comes to mind!

So that's why I enjoy studying for a certification or course, it gives me a different focus. Sometimes I even learn things that could end up being useful! ( ;) ) Some I'm sure will help me debug tough issues in the future, others I'll want to try out in my next project. I enjoy my new understanding of why some things work and why others don't.

Right now though, what I'm really looking forward to is having the time again to read other, non-Java related books!