Programming Certifications

UPDATE: I have left the original blog post intact below, but I wanted to make a clarification on my position here, as many conversations that I have had with people about this blog post (my most controversial) have led me to believe that many people who read this misunderstand my point.  I’ll take the blame on not being clear enough.

To summarize as quickly as possible, let me say that certifications are certainly useful personal gauges to see if you can pass the test or not (especially when offered free, I hold a number of BrainBench certifications because of that – note that they are not listed on my resume), I also understand that many companies do require or desire them, especially in the government sector.  That’s fine.

My primary point was that I personally do not feel that a certification is a good indicator of “How skilled of a programmer is this person”, but that experience & having a conversation with the person dictates that.  So yes, if I have a pile of 200 resumes in front of me, and I need to quickly narrow it down to 10 to call first, those that prominently display their certifications instead of letting their experience stand out, tend to get sorted into the ‘second rung’ category.  And that simply applies for the companies I’ve worked for, the job descriptions that we had, and the types of positions & work we were doing.  Everyone should always try to tailor their resumes to the specific job that they are applying for.

The original article follows in it’s entirety:

As it stands, I’ve shocked more than my share of people in the past when I’ve mentioned my stance on certifications for programmers.

Specifically, that when I have a pile of resumes in front of me, and I’m giving them an initial pass to sort them apart, I take any that mention their programming certifications, and sort them to the bottom.

Why?  Simply put, I find that programming certifications are essentially useless.  More to the point, I find that typically the people who list certifications on their resume as part of their qualification for the job, are obviously not qualified.  Afterall, had they been qualified in the first place, why would they need a certification to prove it to me?  Their experience should speak for itself, and the interview should weed out anyone with fake experience.

Some have argued that I shouldn’t hold certifications against people, and I have to point out, that I don’t.  I only hold it against the person, if it’s listed on their resume, specifically if listed as part of their qualifications.  IMO, that all comes down to tailoring your resume for the job you are applying to.  If you are applying to a ‘big corporate entity’/’government’/etc, then sure, perhaps you need to include it because you know they are looking for it.   But that’s not the types of places I have worked for.  If you are applying to a ‘cool place that understands technology & programming’, then you should leave those certs off of your resume entirely.

So what is it that’s so wrong with the certifications in the first place?   Simply put, they prove nothing to me.  They only prove that you could cram and pass a multiple choice test.  I understand and am all for certification programs in other fields than programming.  Especially fields where what is being done must follow certain guidelines (civil engineering), or in general is much more of an exact science than an art (electrical wiring).

But the problem is, that programming at it’s core, is an art.  It’s figuring out ways to work around issues.  It’s finding bugs when the website is down.  It’s understanding the ‘right or wrong’ ways to write a section of code, while also understanding that there are a dozen right ways, and 3 dozen wrong.  None of that, does a certification test.

There is also the fact that a certification doesn’t take place in a programmer’s environment.  When a programmer is at work they have their dev machine which is configured just how they like it.  They have reference materials handy.  They have a compiler/interpreter to tell them when they messed up.

Knowing in the blink of an eye what the order of parameters to explode() are, doesn’t measure your ability as a programmer, at all.

And worse, is the fact that quite often the fact you ‘passed’ a certification doesn’t even mean you did all that well on a test.  Passing can involve much failing.  See the graphic that I have posted with this story, it’s a screenshot from a practice test for the Zend Certification exam for PHP.  Note that the person who took the test failed Security, Database, Design, Arrays, and Basic Language skills.

Yet, they passed the overall test, and would be a ZCE (Zend Certified Engineer).  This goes to the point, just because someone passed just enough questions on a certification exam to pass it … doesn’t mean that they are a good programmer or even that they know some of the most basic skills needed to become a good programmer.

It just means they were able to pass a test (which they may have taken many times before they did)

6 Responses to Programming Certifications

  1. joestump says:

    I couldn’t agree more. What I look for first is experience. I want someone who has spent time in the trenches. Lots of great lessons are learned (quickly) when servers are on fire. The next thing I look for is a decent foundation in the form of a CS, CIS, etc. degree. Just like you, I completely discount certifications.


  2. scottroach says:

    I agree that using certifications as any prominent part of a resume is a terrible idea, but it seems to me like you might overlook experience listed in the resume for someone who just mentions ZCE in a list of qualifications.

  3. wllm says:

    I generally agree that certifications do not amount to proof of any particular level of developer ability. Some people consider them hard evidence; I happen to see them as strong evidence of a knowledge baseline that might help me during the filtering process, but they typically are not taken in to consideration in the final decision on my team. I certainly would not recommend hiring a developer based on his/her certifications alone. But, as you point out, this is not what you’re getting at.
    What you are saying here, if I read this right, is that certifications displayed prominently on resumes turns you off. You might be looking for a particular type of developer for which this is a negative indicator. I happen to flip almost immediately to the experience section of a resume without worrying about this sort of thing. I, too, am most interested in what they’ve done and more casually where they gone to school/what degrees they’ve gotten, but I am very forgiving about the other content or style of the resume. Great developers are often terrible self-marketers. 🙂 Considering the resumes I’ve seen, I advise you that you might be filtering out people whom I would consider very good prospects. For example, many PHP developers that I respect greatly attend ZendCon, get their PHP5 or ZF certification there, and display it proudly. I feel I would be doing myself a disservice by rating their resumes lower because of this one attribute.
    BTW, I led the technical team in putting the ZF certification together. I do believe that it will correctly reflect a level of expertise in the developer, if not necessarily ability. In fact, we run a rigorous beta test with hundreds of ZF developers at all levels to discover just how effective it was. Needless to say, the final test seeming to guage expertise well. Developer *ability* on the other hand can only be tested in development conditions with all the real-world problems that developers face day-to-day- not to mention time constraints!
    Since I mentioned ZendCon, ZF, and Zend certifications, I should probably disclose that I’m a Zend Employee. 🙂 In fact, I’m the manager of the ZF team here at Zend. Regardless of whether I fully agree with you on resume sorting best practices 😉 , it’s a great article.


  4. […] White has written up a new post about his opinions on certifications (and his habits relating them when it comes to resume […]

  5. alantmiller says:

    To think you would simply penalize someone who lists a certification on their resume to spite their efforts is absolutely ridiculous and shows a real immature understanding of management and your responsibilities as a hiring manager in general. If I was hiring someone to manage PHP developers, after reading this entry I would have to throw your resume in the trash.

    This clearly shows that you lack the kind of judgement needed to make sound hiring decisions. This is why programmers do not make the best managers. There is more to assembling a great team then what you can learn in your coding experience. It is this kind of self serving attitude that only hurts the industry as a whole more than it helps it.

    I get where you are coming from, and I understand and I even agree with you that whether someone holds a certification matters. Other things are surely more important. But you have to remember, due to other ridiculous hiring manager’s actions in the reverse, you could easily be denying yourself the perfect hire simply because that person was trying to satisfy the whims of others who think the certification matters more than anything else.

    Case in point, many many years ago, I applied for a position where the hiring manager based his decision solely on one certification test alone, tan early widely accessible PHP skills test which I will not name other than to say it predates Zend’s certification offereings. Despite the fact that I was more than qualified for the position, they would not call me in for an interview until I took their test. I took their test, scored the highest score in the state, and then they wanted to hire me and I was able to negotiate a higher pay than any of the other developers on staff.

    The moral of the story… look at the candidate as a whole and how they might fit in, and don;t pigeon hole yourself and nitpick the small stuff.

  6. sweinberg says:

    I know this post is a bit old but I’ve just now managed to get around to my Google blog feeds so forgive me.

    I’ve mostly stayed within the corporate environment during my career but I’m curious how you feel about developers – no matter where they are in their career – listing networking certifications (CCNA, CCNP, and perhaps the most infamous of all, CCIE) for application development positions?

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: