Thursday, March 28, 2013

Just Say "No" to Certifications

Because nobody's word is worth anything these days (even on a resume), developers can hear this a lot:

"You should totally get certified, so employers and clients will know you can do what you say you can!"

That used to be me. Yep, I was that guy (sorry). I was constantly talking about how important certifications are, telling everyone to get them. Bragging about the ones I had already gotten, the one I'm currently studying for, and the ones I plan on "building up to" in the future.

I've matured since then (a little bit anyways), and I now understand just how much time I wasted studying for, scheduling, taking (and sometimes retaking) certifications. Man, what a waste. I lost a lot of potential learning opportunities there. I'm not going to repeat those mistakes again, if I can avoid it.

So at this point, assuming you're actually paying attention to what you're reading, you're wondering how in the hell I missed out on learning something new if I was in the process of studying development technologies anyway for these exams. Right? Well, here's the discrepancy...when I was studying to pass an exam, I wasn't learning anything useful. Sure, I was digging into all the gory details about how I should use the .NET Framework, what ways are best for making calls to SQL Server from within C# logic, separating out layers on an n-tier architecture, and so on. But, I already knew it all. Why? Because I used it!

Looking back now on the way those test questions were structured, I realize just how badly designed those certifications were. You didn't miss questions because you didn't understand the concept it was supposed to be testing your knowledge of; you missed it because there was one character of code different between the two potentially correct code samples...and you didn't catch the difference. Or (and this was my usual stumbling block) there were questions that were horribly misleading, and you didn't find the "gotcha" hidden in the text. Is that really what we're supposed to use in the software development industry to determine if someone can do the job or not? Do any of these ridiculous questions really teach us anything about doing it right? Or, are we just going through motions designed to filter out the competent developers from the people who studied the "official" Microsoft Press version of the exam study guide?

This can't just be an issue with Microsoft certifications. I would almost guarantee nearly all certification exams in this industry have the same problem. And it is a problem. That's not the way we should have to get a vendor's stamp of approval. And, obviously, people have figured that out. Developers don't seem interested in getting certified these days. I don't hear anyone even asking about them anymore. Why is that? Most likely because the system is broken, and people learn very quickly when they've been burned by it.

I'm not planning on getting any certifications, now or in the near future. Unless there's a huge shift in the way things are done, I see no compelling reason to try. I've learned a lot more by sitting down with my laptop and looking up something new and interesting in the development world and hacking around with it for a few hours than I ever did by studying for an exam. It just makes more sense to me.

Everyone has their opinion, and I'm not saying my view is the ultimate answer, but it's the view I've developed through my experience. Some places still ask about certification during the interview process...that's cool. Some people feel they just learn better that way...go for it! Different strokes people, that's life. But if someone asks me if they should spend time getting certified, I'm going to tell them they would be a lot better off spending that time looking around on GitHub for what's trending in a certain language or framework. Or maybe checking StackOverflow for questions they can't answer and learning why a certain answer is correct. Learning new tech or contributing to an open source project, or even learning about what's giving other developers headaches with different platforms seems to me like a much more beneficial way to spend a handful of hours each week.

If you have any suggestions about what you like to do when you have time to learn something interesting, leave a comment about it.

Happy coding!

No comments:

Post a Comment