I’ve been saying this off the record for a long time and finally I am frustrated enough to go on the record and say it out loud and without a shred of fear: professional certification, in software, is lame, means nothing at all and is a waste of everybody’s time except companies that make money off of it.

Why? Because I personally know a number of Oracle-certified DBAs that can not even install Oracle on Linux. Which may be saying something about Oracle DB, too, but says a lot about the value of a certificate, as well. I’ve known equally large number of Sun-certified engineers that should not be let anywhere near writing code, in any language, Java included. And last, but not least because anybody can pass most software certifications, by wasting time on memorizing meaningless answers to meaningless questions from a textbook and it means absolutely nothing. What it means to me, actually, is that somebody lacked interest in coding enough to waste time on memorizing, rather than developing his actual programming skills. And that is not good.

Software engineering is tough. Correction: it is really tough. It’s a field where things change overnight, new frameworks emerge, the breadth of the knowledge required is immense and being out of the loop for even 6 months (hell, 3 month) can make even a subject-field expert’s knowledge obsolete.

How can anybody put up with such pressure? The only answer is - passion. You can not be a programmer worth a dime if you do not have absolute passion for what you are doing. If you do not get craving for writing code, if you have never broken nights working on a challenging code, just because you could not stop, and not because there was a deadline or a project manager standing behind your back - you do not have a programmer’s soul and you are wasting everybody’s time.

When I interview for an engineering position, aside from basic knowledge, I look for two immensely important things: passion (drive, motivation, initiative - whatever you call it) and attention to detail. If you have basics right, senior developers and colleagues can teach you the craft, or at least help you polish it, but if you do not have the drive and passion, if you are not attentive to details - you will never make a decent developer. Just like in, probably, many other professions, there’re certain character traits that are just necessary for the profession of a software engineer.

Can a bullet-pointed listing of 100 questions tell me if a person is motivated and curious? Can it tell me if he or she is methodical and detail-oriented? No. It can not. Therefore, when I see a list of certifications on a resume, I simply ignore it. If I would have to take it into account, I would probably consider it as something negative, since somebody clearly wasted their time, but that is not fair, as well

  • realistically given the pressure form the industry, I can see why a young professional could make such mistake. But do not expect any points from me for a “certification”.

I am equally critical of the companies that do pay attention to certification or even require them. The only way to really see how somebody thinks is to observe the process and see past work. To that extent, anybody who can show me code that they have written gets a +1 point from me (which can be dropped if the code is horrible :) ). If you blog - show me your blog and I can see how your thinking has been evolving over time. Hopefully the blog will have some original thinking and not just copy/pasted things from all over the Internet. And finally, maybe even most importantly - I like to give a short challenge problem and see how a person solves it in real time. I would give them 15-20 minutes to think about it, prying over them is unfair, but watching how they present the solution and explain the thinking process is priceless. Especially valuable are problems where there is not a “right” or “wrong” answer, but you can observe problem-solving in action.

In any case, different people have different techniques and that’s why the best companies always interview candidates with several employees, to get different perspectives, but one thing remains rock-solid: certifications are lame and all they do is try to commoditize creativity, which is a real shame, in my humble opinion.