Absolutely No Machete Juggling

Rod Hilton's rants about stuff he cares about way too much.

Certifications Aren't "Bad" (They Just Aren't "Good," Either)

I've been disturbed by a few posts made by James Shore lately. Though I greatly respect Shore and immensely enjoyed his book, one particular post of his really irked me: "Your Certification Is Meaningless."

In the post, Shore basically argues that certifications, particular those relating to Agile software development, have no value. In fact, he goes on to argue that they offer counter-value, that some employers are LESS likely to hire someone with a certification.

The thing is, the main reason this bothers me is that I have a few certifications from Sun (pre-Oracle days), and the process I went through to acquire these certifications is one I found immensely useful. It's hard for me to see something as meaningless when it holds so much value to me.

This is not to say I don't understand the point. The certification merely proves that I took a test, and considering how low a score you can get and still "pass" the test and receive the certification, it proves little more than that I read a book or took a course. I agree with this basic assessment of certifications: as a token of proof to offer someone else that I know my stuff, they have very little value.

I like certifications, however, because they help me prove to myself that I learned something. When I was studying for the SCJP exam, I did so not through a course, but through a book (two books, in fact). As I studied, I was constantly learning things about Java that I didn't know - low-level details of the language, its syntax, the way it handles inheritance, and so forth. Same thing when I studied for the SCWCD exam: I was, at the time, at a job that did mostly ColdFusion for web layer, and I had no experience whatsoever with Servlets, JSPs, custom tags, or anything in that area. The process of reading a book (again, two books) for the SCWCD exam was, primarily, where I learned about web components in Java. Because of the knowledge I gained during that process, I was able to later get a new job that actually used J2EE technology for the web, and I knew my way around enough to be productive. If I had not read those books, I probably wouldn't have survived the interview, and if I had I wouldn't have known what I was doing well enough to do my job.

But really, this is the value of reading, not of certification. Wouldn't I have gotten the same benefit from merely reading a book on Java or J2EE? Not necessarily. Most books on something like Java are focused on specific applications of it - they are positioned as "here's how to use Java to do so-and-so" or "here's how to use J2EE to write the kind of web apps you may write in real life." Books like these don't do a deep-dive in the core of the language itself or the standards. Books that are intended to help you study for a certification exam, however, are forced to leave no stone unturned in the subject area - forced in a way that a typical book may not be. An book author writing about JSPs may simply have never written a JSP custom tag in Java (perhaps he or she only worked with tag files) and, as a result, they may only devote a handful of pages to a surface level exploration of that topic. The SCWCD study guide had to dive all the way into that subject in order to set readers up with the best chance to pass. Obviously, a really good book would cover all of the material, but the vast majority of books aren't going to qualify as "good" in my opinion, and finding that perfect book can be challenging. In the other hand, you can be relatively confident that a certification study guide will cover the entire subject in complete detail.

But again, this shows the value of reading books, just very specific ones. Why bother with the exam? For the same reason you bothered taking tests or getting grades in school - to receive an objective evaluation of how well you understood the material. If I study for the SCJP exam, then get a 65% (passing, humorously enough), then you can be reasonably certain you understand approximately 65% of the material. If that's not enough for you, the exam actually tells you the specific areas in which you are weak (when I took the SCJP exam, I was helpfully informed my weakest area was with knowledge of the standard library) so you can focus on those areas if you wish. The value of a test is that someone who knows more than you about a subject can give you a reasonable assessment of how well you've learned that subject. That's all a certification exam is: a test on a specific subject.

I find myself much more aligned with Bob Martin's view. A certification has value in that it is a mechanism for instruction. Whether you take a course or read a book, you are learning, and learning has value, always.

Personally, I much prefer a certification that requires an exam, rather than merely a course. A certification without the examination seems to miss the point, at least for me. My Certified ScrumMaster certification has less value to me than my Sun Certified Java Programmer certification, because the former was given to me after attending a class for two days, while the latter was something I studied for over the course of a couple months, and ended with an exam proving to me that I understood the material.

Essentially, I view a certification as a thing I do for myself primarily, to help me learn a subject at a deep level. Why bother even listing it on my resume? Because what it shows, at least in my opinion, is that I'm self-motivated and I like to learn and improve on my own. My certifications prove, at the very least, that I'm interested enough in programming that I took time out of my normal life to study a topic in depth and take a test. It's not exactly the promise of the typical certification, but that combined with how much I enjoy learning when I am studying for a certification makes them valuable to me.

I certainly hope Shore's posts about people passing on candidates with certifications is hyperbole. I would never suggest that a certification should serve as a substitute for a real interview; I may have the SCJP certification, but if you want to know if I really know my Java you should ask me lots of Java questions in an interview. It bothers me to think that something I've greatly enjoyed doing - something that I feel has made me substantially more knowledgeable in certain areas - would reflect poorly on me as a job candidate.

I'm going to continue operating as though Shore is exaggerating a bit to illustrate a point. There are other Sun certifications (Oracle certifications? Weird.) I plan on studying for and earning, and there may be other certifications beyond those. As far as I'm concerned, learning always has value, and examinations always help one know how well they are learning. And hey, if you get a spiffy-looking piece of paper afterwards, that's a bonus.

comments powered by Disqus