Should you get certified? Should anyone?
Technology certification exams have a bad reputation. You don’t have to go far to find someone deriding the idea that a multiple choice test could be useful in distinguishing programming skill. Some say that they are a waste of time and a marketing scam. Others even claim that they distinguish you in the wrong way, and that any certifications that you have earned should be removed from your resume, as they will actually hurt your chances of getting the job you want.
I disagree, and think that there is a place for certifications, but there is some confusion about what you can and cannot get out of them, and when they may be beneficial to your career.
What a certification cannot give you
This should be obvious. No one becomes an expert at anything by reading books and taking tests. Expertise comes through hard work, and it likely includes reading books, but you don’t have it until your peers recognize you as an expert.
Don’t imagine that a technology certification will serve as some sort of boot camp / personal trainer that will whip you into shape, increasing your ability to solve programming problems. Testing for the creative thinking and problem solving ability that is essential for programmers would be extremely difficult to do, and the exam authors don’t really attempt that.
Evidence of competence
If you want some letters after your name to prove you will be competent, forget it, it isn’t possible, and you don’t want to work for a company that thinks like that.
What a certification can give you
An organized curriculum
This is one of the biggest benefits. When you are in a new environment you don’t know what questions to ask and the relative importance of the various things to learn. When you don’t know what you don’t know you aren’t in the best position to manage your education. Using the list of exam topics, perhaps along with an exam study guide, can provide great structure to your efforts.
Confidence in the rules of the game
While being a certified programmer doesn’t mean you are a good programmer, it should mean that you understand which errors will show up at run-time, and which will happen at compile time, which is valuable. There are far too many programmers out their that using guesswork and superstition when it comes to the workings of their primary programming language. A certification can give you confidence regarding the way that code should work.
An increased chance of interviews for your first or second job.
When you are trying to distinguish your resume from the resumes of others that are competing for junior-programmer jobs, a certification can help. It shows some initiative, a desire to improve yourself, and it suggests that you are familiar enough with a particular language or technology that you can be quickly taught how it is used in the real world.
Should I get a certification?
With the above in mind, it should be easy to decide if a technology certification is good for you. Are you trying to enter an unfamiliar area of technology, and struggling with the documentation? Does your resume seem devoid of technical qualifications? Are you early in your career and unsure what to learn next? If so, a certification could help.
On the other hand, if you are an experienced programmer looking to improve yourself, or hoping to qualify for a better paying job, then a certification is entirely the wrong approach. Some better ideas:
- Find your week spots in the Programmer Competency Matrix, and remedy some of them.
- Dive into the documentation of one of your favorite tools, become the expert on it.
- Read a classic programming book. (some ideas)
- Build something cool.
I took the Sun Certified Java Programmer (SCJP) exam before ever working as a programmer when my resume was a Ph.D. in mathematics and absolutely nothing technical. I’m convinced it gave me credibility as someone that wanted to become a programmer, and helped me obtain the first interview. Once on the job, it was extremely beneficial to have a well-formed understanding of the language.
About six months later I took the Sun Certified Web Component Developer (SCWCD) exam, which really helped me to understand how Java web applications, and web applications in general, work. I doubt anyone that has hired me since then has cared about that, but employment wasn’t my primary objective.
SCJP, SCWCD, MCTS, and others can be helpful in beginning a programming career. And they might hurt your chances of getting an interview at Google. But when a newbie or wannabe programmer asks you about certs, please keep the benefits they do offer in mind, and answer the question in a way that makes sense for his level of experience and short-term goals.