Should I get certified?

Over the last few years I have been quite heavily involved in recruiting new graduate developers. One of the issues that came up over and over was the value of certifications.

Some people say that they are not worth the paper they are printed on. Other say that they turn you in to a human compiler. However, I believe that they are extremely valuable for the following reasons:

Certification ensures that you have a minimum level of knowledge. This is a level that an employer can have confidence in. It is not a few “ad-hoc” technical interviews questions … it is a well thought out, comprehensive technical assessment provided by the experts. For example, when you interview someone who is Java certified, you can imagine that the Java experts from Sun had carefully interviewed them and given them their tick of approval (at least in the basic technical area).

Certification gives you a broad and deep understanding of the technology. I have seen senior developers who through circumstance, never mastered some of the most fundamental Java concepts. Real world experience is not always the best teacher. It is often “hit and miss”. You may learn one area well and totally miss another important area. Certification ensures that there are no significant gaps.

Certification can be a stepping stone. They help you move on to new areas and challenges. It is always a vicious circle. Without experience in technology x, you can not get a job working with technology x … but you can not get experience in technology x without a job in technology x…. Certification gives you a way out of this endless loop. You can get certification in an area you want (day-dream) to work in … and then it is much easier to get the job in that area.

Certification proves that you are enthusiastic. Many people say they read IT books, visit sites, keep up to date with new developments, etc … but it is impossible to judge the true level of their interest. However, someone who has taken the initiative to get certified and has invested 3 to 6 months studying, clearly demonstrates their level of commitment. After all “IT development” is not just a job … it is a passion.

With a team I am working with right now (and I have done this at other companies as well), we have worked through as a group in getting the SCJD and SCWCD certifications. We meet once a week for two hours – 1 hour is given up by the company, the other hour counts as lunchtime (people bring brown bag lunches and eat during the session). The company buys a study guide for everyone and we work through a chapter a week – people are expected to pre read the chapter and we do a quick review and then spend most of the session working through the end of chapter questions and any open questions people have. At the end of the review sessions, everyone sits the exam and if they pass, the company re-imburses them for the cost of the exam. This setup emphasizes the fact that both the company and the developer get something out of the process

You will not find a cheaper alternative for training for your team, especially in these economic times. You will help to standardize the knowledge and skill levels across your team. You will expose your team to areas of the technology that they might not use in their day-to-day work (e.g. the bit manipulation facilities in Java are usually pretty foreign to most JavaEE developers, threads are another good example). In the case JavaSE 5, preparing for the exam served as a way for the team to learn the new features (eg. generics, autoboxing etc) and then apply them to their work. It also promotes a good group dynamic and helps with team cohesion.

This is something I tried to get going at companies I have worked for, but never really succeeded in getting buy-in for it.