I have to admit up front that for many years I didn’t think much of sitting for IT certifications, thinking that such rot was only for people who had just left school, before they found a job to add to their resume.
The simple truth is that I had not sat for any certifications myself, and didn’t know what I was talking about.
Best Microsoft MCTS Training – Microsoft MCITP Certification at Certkingdom.com
What Certifications are Good For
IT Certifications are useless in terms of proving how good of a programmer you are — they will never demonstrate how efficient you are at breaking problems down into addressable parts, and coming up with creative targeted solutions. But that’s not what certification is about or for. IT certifications are only good indicators of how much you know about the technology you are using.
Don’t Need No Stinkin’ Certification
“What rot! Look: I eat CSS for breakfast, spit Flash for fun, dream in HTML, clean the shower stall with AJAX, and I don’t need no stinkin’ certification!”
This may be true. There are a lot of great coders out there. And there are a lot of great weekend mechanics out there too. Both groups are very talented, creative, and resourceful, delivering solutions that get the job done, and last at least 6 months.
UberStickinStuffinTubinShpit
But good as they are, there is a limit to the amount of trust I am willing to put into an auto-didactic genius.
I’ll let my gregarious cousin Freddy fix my pickup truck any day of the week (it’s not only fun to be around Freddy, but he doesn’t charge as much as Shlick’s German Imported Cars down town), but the heck if I’m letting him work on my (imaginary, unfortunately) Porsche.
Because there’s something to be said about having it worked on by a person who has slogged away at successfully passing a whole bunch of Porsche certifications, and knows precisely what he’s talking about — even the useless stuff (he actually knows that “UberStickinStuffinTubinShpit” means something specific in German, and that it comes in 3 sizes too, and – more importantly – what it’s for, exactly).
Which is a marked contrast to Freddy, who thinks that all engines are “basically the same thing, so if you’ve seen one of them, you’ve seen them all”.
In Freddy’s case, this (I assume) means that he would work on Porsches with the same gusto and creativity as he fixes lawn-mowers. If he were a coder, it might mean that he would build an ASP.NET website with a PHP mindset, that somehow works, but who knows for how long.
Because I’m Not (Yet) Stranded On an Island
Don’t get me wrong. I like resourceful people who can figure out how to start an engine just by poking around a bit — and I definitely want that person with me if I’m ever stuck on an island with an electric generator, a ball of string, and some tin foil.
But right now, I’m not on an island. More importantly, my clients are not on an island and they can pick and choose who they want to do their work. In other words, in this day and age, less and less can one get away with delivering software that works only for 3-6 months between ‘tune-ups’.
Yet, it’s not the Certification that’s Important
And it’s not the certification itself that’s important (getting PPPP’ed isn’t going to get you a date – having an actual Porsche might be more useful in that regard). It’s the studying for the certification that is important.
Maybe not right away, but the pedantic, in depth, studying (even if it was just to pass an exam) pays off at some point in time. An example of this might be the tracking down of why using a SymmetricAlgorithm with ASCII encoding works… but only some of the time.
Non-certified coders might start poking around with the cipher mode or padding (if you don’t believe me, go look at how many posts there are on CodeProject, etc on that very subject), whereas certified professionals will spot the cause generally faster, which will be the Encoding used.
They wll find it faster, because they have studied symmetrical algorithms in general, including the CipherMode and PaddingMode enumerations, but also Encoding (which has nothing to do Symmetrical algorithms and would probably not have been mentioned if you just Googled about using the SymmetricAlgorithm classes).
Who Has Time for all that studying? I’ve got work to do!
You’re absolutely right in wondering about that point: the 80/20 rule would imply that if you are unburdened with all that lost time studying for a useless exam, and only producing some bugs, and only once in a while, that you might as well just continue writing code who’s bugs mostly get caught either in the beta cycle, or by end users (creating a market for Version 2.x anyway, right)?
I guess it really depends on the complexity of the deployment and the quality you aim for.
If it’s just JavaScript, that can be updated instantly, go right ahead with that methodology for as long as you can get away with it (maybe…).
But if it’s a occasionally connected mobile app you are working on, it’s going to be absolute hell updating any code that you got wrong. Do you really want to be the person who is known internally as the hot-rod goof that ended up causing 1 million dollars worth of tech support? Especially when you find out it was an absolutely preventable error — if you had only looked and studied the documentation more than a minute?
The Studying can only Help — even if you are the WhizKid
Even if you are the office whiz kid, it doesn’t hurt to actually get certified (I mean study) as well. You’ll be pleasantly surprised at how many parts you don’t know as well as you thought, and the extra studying can only help you write more precise code in the long run anyway, without sacrificing any of your god-given talents at writing creative solutions.