Wednesday, October 24, 2007

Technical Certifications: What Kind Of Bullshit Are They?

Attention-grabbing title, but it's a real question. Technical certifications are either offensive BS, or funny BS, and your answer to that question will determine whether or not you get any.

In Japan there's now an official Ruby language certification, backed by none other than Matz himself and prominent Ruby contributor Shugo Maeda. I think it's very likely that Matz' certification isn't any kind of BS at all. It's pretty safe to imagine that the Japanese certification backed by the language's creator carries more weight and operates with more honesty than American certifications, which are usually backed by some large corporate vendor with a serious vested interest.

But wait! Behold my hypocrisy. I have two certifications, both American. And I'm actually planning to get a couple more.

My existing certifications are in Java and XML. The certifications I'm planning are in Final Cut Studio Pro and Adobe After Effects. The reason I'm looking into more certifications is not out of some cynical pro-BS attitude. I'm going to look into getting side work on weekends doing editing and motion graphics. A certification's less valuable than actual work experience, but more valuable than nothing.

I got my Java cert because I needed some cash, I had just moved to a beautiful but utterly backwards part of the United States, and some idiot recruiter for an Air Force contract told me they couldn't offer me anything because I didn't have a Java certification. I thought, okay, how hard can that be? And I went and got one. It proved to be utterly useless in terms of getting a job, but I enjoyed it, so I went and got another one, this time in XML.

Certifications are lame, it's true, but if you're a big enough dork, they're also fun to get, they're an entertaining little ego boost, and they give you good perspective. I wouldn't recommend taking them seriously, but I definitely would recommend getting them if you want to understand the technologies involved. They almost always have some weird corner case you won't see in real life but you could see on the exam.

Obviously, I see no harm in certifications, but many people do. I think the real reason for hostility against certifications has absolutely nothing to do with their usefulness or non-usefulness. I think they're useful, although less authoritative than they claim to be. I think the reason people hate certifications is that an attempt to be authoritative implies an attempt to be an authority, and for a big fat corporate beauraucracy to assert authority over independent programmers is total bullshit.

The question is, is it funny bullshit, or offensive bullshit? People who think it's offensive BS hate certifications. I think it's funny BS, so I get them anyway, every once in a while.

The reason I get them is that they're educational, especially if they make you study and they ask difficult questions. If it makes you learn the language in detail, it can be good. It was over a year after getting my XML certification that I actually used XPath in a real-life work situation, but when that time came, I did it from memory with no problems at all. It was all still in there.

Also, I recently took the Pragmatic Studio's TDD with Rails training. Joe O'Brien asked, "how many people use XPath?" and a few hands went up. The next question was "how many people know XPath well?" and I think my hand might have been the only one still in the air.

Not only that, the number one reason I liked Rails when I first saw it is because I had looked into getting a J2EE/JSP certification. They make you learn all of the JSP APIs, and it's like this archaeological dig. You go down a layer, there's a terrible API that you wouldn't be able to use
in real life. You go down another layer, there's an even worse API that you wouldn't be able to use in real life for the same reasons, plus additional reasons. Then you do it all again. There's this whole sequence of terrible APIs stacked on top of each other, where Sun came up with something, it sucked, and then they came up with something completely different instead, which sucked only slightly less, but still continued supporting the earlier thing, because they couldn't admit it sucked, and they had customers on it. And the funny part is, you don't just have to learn all these crap APIs. You also have to learn Sun's excuses for them. I'm serious. Those are questions on the exam.

As long as you actually think about what you're reading, studying for the JSP cert is an incredible education in how to fuck up Web APIs really, really badly.

After a certain point, of course, I decided against getting that particular certification, but I definitely think studying for it made me a better Rails developer a year or two later. There's a lot of Rails developers who never learned Java in their lives, and never will, but who sneer at it and laugh about it when they really don't even know what it is. The problem is, Java's mistakes are history. Those who don't learn history are condemned to repeat it, and that's exactly what uninformed developers do. I've seen it happen a million times. Even programmers who know Rails internals well sometimes don't have similar knowledge of any other system.

Anyway - many developers disagree on the question of whether technical certifications are offensive bullshit or funny bullshit, but a third group doesn't think they're bullshit at all. This group is way off. The members of this group tend to be inexperienced, young, and/or originally from a country where people in positions of authority act with greater integrity than American corporations do.

Long story short, if you're taking certifications seriously and at face value, you're getting ripped off. But if you just say look, here's this cheap little test, it might be fun to take but it won't be fun to take twice, then you learn something and you enjoy it.

1 comment:

  1. Thanks!
    I totally agree. I have an JEE architect certification (which my company paid for, of course!), looks good but I don't give too much value to it (although I enjoyed getting it and learned in the process). I think certifications are funny BS, ( but I got comments in my blog from somebody who obviously thinks they're offensive BS ).
    As I said there, I see two mains values from my certification: I'm not the only one who says I'm a software architect and now I can say any BS I can think about JEE and people would have to listen because I'm certified on it (invaluable skill if you want to be a successful global consultant :-) )


Note: Only a member of this blog may post a comment.