Are Certificates Worth the Paper they are Written on?

I often get asked about certification for programmers, and whether it makes any difference in the job market. The answer, predictably, is both yes and no! It really depends on what sort of job you are looking for, and how the recruitment procedure of the firms you are interested in applying to works.

Let me start by asking a slightly different question. Does a programming certification prove you can program?

Not necessarily. It certainly proves that you can pass programming tests. Programming itself, is, however, a different matter. The problem is that programming is something you need to constantly practice. Let me give you a couple of analogies.

My first analogy is that learning to program is a bit like learning to drive a car. You spend some time with an instructor, and he or she teaches you the formal elements you need. But I don't think I've ever known anyone who passed their driving test with what an instructor taught them. To really learn to drive you then have to get a friend to sit with you while you practice until the driving becomes second nature. When you reach that level you go back to the instructor who teaches you how to pass the test.

In a way computing is very similar. Your teacher can teach you the basics, but to go beyond the basics you have to practice. The problem from the point of view of a potential employer is that people usually get the certification at the end of the teaching period - they know enough to pass the test, but are not fluent.

There is also one way in which programming is very different from driving a car. Even if you stop driving, you never really forget how to do it, and you can get back up to speed pretty rapidly (the same goes for riding a bicycle or roller skating). This is not the case with programming. Programming skills are use it or lose it skills par excellence.

That's why the second analogy I would make for programming is with music making. It's not enough merely to learn to play a musical instrument, you have to constantly practice to keep your skills .

Programming is much the same, if you don't keep programming you will lose your programming skill and fluency. Even worse, you will fall behind in what is a rapidly changing skill set. It's not just that you get up to speed, it's that you are learning new techniques as you go along, and the longer your experience, the better you are as a programmer.

Why does experience make so much difference? It has to do with the nature of the problem solving needed for programming. Virtually any problem that requires professional programming has thousands, if not millions, of potential solutions. Not only that, but all the solutions that will work have different trade-offs in development time, ease of use, resources required, maintenance and a hundred other things. The difference between an experienced programmer and a novice is that the experienced programmer can almost immediately partition that solution space into a small number of feasible solutions and a large number of impractical solutions. Even a well trained novice cannot do that, until they have experience to inform their judgements. To a novice all the solutions are more or less equal.

This is why certification doesn't really tell you, as an employer, much about how good a potential employee is going to be. If you get interviewed by a professional, your certification won't cut much ice - they will be looking for answers to their question that indicate a depth of knowledge which is entirely different from the skill that the certificates test. (Incidentally, I suspect that most of the really good programmers I know would probably fail the tests!) Your interviewer is also going to be looking for something else - an ability to fit in with a team. You can be the most brilliant programmer in the world, but if you can't work with other people, you're sunk. Social skills matter just as much.

But I did originally say that part of the answer to the question I started with - are certificates worth the paper that they are written on - was yes.

The reason for this has little or nothing to do with your programming ability. It has everything to do with the structure of modern business. The days when the people responsible for the work hired and fired the people who did the work are long since gone in companies that employ more than a handful of people. The last half century has seen the rise of the Human Resources (HR) department, and that has changed the rules.

HR departments evolved from the original personnel departments which had a fairly minor role. As the volume of legislation relating to the workplace and employees grew they assumed more and more functions and eventually took control of hiring and firing to ensure that such activities complied with the relevant legislation. This meant that you were no longer hired by the person you would work for - the person who had the technical knowledge of your work. Instead you were hired by people whose profession was understanding employment law.

This had an immediate consequence - the HR department needed some sort of validation to prove that you were technically qualified, since they had no means of judging for themselves. This set the stage for demands first of all for academic qualifications (Computer Science degrees in this case), and then certificates to say that you were qualified to do the job.

Of course, it's relatively unusual to see a 'pure' model of this process; usually the department has some input into the job advert - although I did once see an advert for a programmer with five years experience of C++, just three years after the first C++ compiler became available! The department also usually handles the interviews. The important point, though, is that the interviewees are selected by HR, and HR will automatically exclude all those who are not qualified. And to an HR department if you don't have a certification, you aren't qualified, even if you've been programming for years.

Finally, an additional push to the whole business of certification is that training, publishing and testing for these certificates has become a very lucrative business, which taken with the need felt by HR departments for the certificates has generated a whole new industry.

So there you have it.

The answer is that you probably do need certification, although it tells your prospective employer nothing about your skills - but what it does tell him or her is that you understand the rules of the game!

Alan Lenton
24 April 2005


Read other articles about computers and society

Back to the Phlogiston Blue top page


If you have any questions or comments about the articles on my web site, click here to send me email.