I never really put much stock in certifications. I felt that they were no guarantee of knowledge or expertise, and that many people who did have knowledge or expertise wouldn’t necessarily have a certification to say so. Add to that it often seem overpriced to even apply for the certifications, so I didn’t have a high opinion of them. That being said, I have had the opportunity to take professional certification exams twice in my life (both luckily paid for by my employer at that time).
The first was the JITSE – the Japanese IT Standards Examinations. This was back in 2004 when our company was planning to undertake some projects based in Japan. Luckily, the exam did not require us to learn Japanese. The exam mostly covered programming and computer science concepts. The scope was largely academic in nature, not really related to the actual practice of software development. At first I thought it might be a problem for me since I had no formal computer science schooling, but it turns out I need not have worried. We were able to find ample review materials / sample exams that gave us a good coverage of the scope of the exams. We even had like five thick textbooks full of review material to cover, which typically I didn’t end up going through (seemed like a bother), I felt like the sample exams were more than enough. And to add even further to my disdain of certification exams, a significant percentage of the questions during the actual certification were already in the sample exams we reviewed. So yes, easily passed.
Of course I should probably note ever since high school I have considered myself to be a fiend when taking multiple-choice exams. I am supremely confident when taking any sort of multiple choice exam, no matter the actual level of knowledge I possess. During the JITSE for example, I finished it very early. If I didn’t have any kind of shame, I would have submitted the AM exam a whole hour-and-a-half early just so I could get some sleep before the PM part. (Some people later told me they noticed me dozing off). Multiple choice exams are really easy to go through quickly, especially if there’s minimal problems solving involved. There’s no reason to linger at each question: you either know the answer or you don’t, and if you don’t you quickly decide on a candidate that looks the most likely. (If there’s some sort of problem solving or math involved then you go into that weird fuzzy logic where you try to figure out which choice is mathematically closest to the answer you got. Or yes, you could just redo your work, but don’t be afraid to assume that the exam itself can be wrong if you come up with the same answer three times)
The second time I took a professional certification exam was when I was asked to take a Java 6 certification exam for reasons I now cannot remember. This one I was more confident in – by this point I had already been using Java for the better part of a decade and was pretty sure I knew it inside and out. That being said, you always find out about obscure language quirks when preparing for these exams. For example, I never had to use the keyword volatile so I really only learned what it was for while reviewing for the certification exam.
Being the exam-taking fiend I was, I took and easily passed the Java 6 certification exam, which of course led to jokes along the lines of “Hey, we don’t need a compiler anymore, Roy is now a valid JVM”. I never did get to use that certification for anything though. I took the exam and passed it (finally earning my Java certification) in Oct 2012, after 8 years of being a Java programmer.
Over the years as I’ve dealt with a wider range of people across society, my disdain for certifications has dimmed a bit. The most important bit I have learned is that it’s very hard to evaluate software developers in terms of skill (a topic itself worthy of an entire series of blog posts), so certifications allow people in hiring capabilities (or any other capability that requires an assessment of a developer’s skill) to cheat a little bit. They save a little bit of effort because a certification basically says “this guy knows his stuff well enough to pass a certification exam”, which can be good enough depending on your specific purposes. Sure, it’s possible to pass a certification exam and have no real idea how to apply the topics covered in practice, but at least the certification gives them a bit more confidence in you, even if unjustified. It’s a bit like school diplomas and driver’s licenses: it doesn’t really guarantee that you know what you’re doing, but at least you were good enough to fool other people who evaluated you, so even if you turn out to be not so good, at least the evaluator is not alone in making that mistake.
And if you’re the sort of developer who’s all about the money, having certain certifications can be very good for your bank account. I’m pretty sure getting an in-demand certification like Oracle DBA or Cisco Networking stuff can get you a significant bump in pay grade. This also means that it can cost a significant amount of money to even apply for taking those certification exams – it might be best to try to find a way to fool – er, I mean persuade – your current employer into paying for it.