First of all, I have to admit up front that for the last 10 years or so, I've sneered at people who have sat certification thinking that such rot was only for ninnies people who had just left school, but before they found a job to add to their resume.
The truth is that I had not sat for any certifications myself, and didn't know what I was talking about.
What Certification is Not Good For
They are useless in terms of proving whether you understand how to write software -- certification will never prove that you are smart at solving problems, or great at coming up with creative solutions -- but that's not what certification is about.
What Certification is Good For
Certification is about whether you actually know the technology you are using. Ie: if you were given a set of wrenches, can you fix the car, or what? I'm not talking here about getting the car running...I'm talking about fixing it, properly.
Don't Need No Stinkin' Certification
Now, most anti-certification people will say..."Sure I can! Don't need no stinkin' certification."
And it's probably true.
A lot of great coders out there, and a lot of great weekend mechanics out there too.
Most of the time, their work is great. Does the job. at least for 6 months, and heck, having a bug here or there is kinda fun, cause we get to also crack open some brews while cousin Freddy goes to work under the hood, and I get to listen to Freddy go on and on about the funny drunken antics of distant cousins that I haven't seen for a long time.
But there is a limit to the amount of trust I'm willing to put into in an auto-didactic genius: I'll let Freddy fix my pickup truck any day of the week (its not only fun to be around Freddy, but he doesn't charge as much as the Imported Cars Garage down town), but the heck if I'm letting cousin Freddy work on my (imaginary, unfortunately) Porsche...Because there's something to be said about having it repaired by a person who has slogged away at understanding a Porsche, every specific nuance of it, even the useless parts, been tested on all of it, and knows precisely what he's talking about (and knows that the "UberStickinStuffinTubin" means something specific in german and that it comes in 3 sizes too -- rather than have the Porsche (unfortunately, still imaginary) by Freddy, who -- great as he is -- really -- and funny as heck -- and wonderfully creative -- thinks that all engines are "basically the same thing, so if you seen one of them, you've seen them all."
Because I'm Not (Yet) Stranded On an Island...
Because generalities are...well...generalities.
I like intelligent people who can grasp how an engine works and figure it out (basically), by poking around for a while, and I 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, and i can't deliver software that works only for 6 months between 'tune-ups'.
Its also maybe why Freddy hasn't been hired by the German Autoshop.
Its not the Certification that's Important: its the Studying that is
Actually, coming back to the subject at hand (I was having a bit too much fun going off on Freddy), I've noticed that its not the certification that means squat...(really!) its the studying for the certification that is the relative gain.
What I mean by that is that I've noticed that people who have taken certification, boring as it is, are better at understanding where the bug comes from because they didn't just glance at the MSDN documentation long enough to write the method they were assigned, but actually at some point, studied the full documentation, at least once, even if it was just to pass the exam.
That studying pays off at some point: a non-certified (by that I mean a quick-read/non-deep-studying person) has a hard time tracking down why using a SymmetricAlgorithm with ASCII encoding works ...some of the time time (if you don't believe me, go look at how many posts there are on CodeProject, etc on that very subject). Whereas a person who has studied for the exam will have covered Encoding, as well as CipherMode and PaddingMode enumerations and...will be much quicker at spotting that the problem is not the algorithm at all, but the Encoding. (If that didn't make sense to you...guess what...it does to someone who has studied for their certification...get the point?)
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 if you are unburdened with all that lost time studying for a useless exam, and only producing some bugs once in a while, that you might as well continue writing code who'se bugs mostly all get caught either in the beta cycle, or by end users (creating a market for Version 2.x) anyway, right?
I guess it depends on the complexity of the deployment, really. If its just javascript, that can be updated instantly, go right ahead with that logic. (Maybe...)
But if its a mobile app, its going to be absolute hell updating any code that you got wrong....Do you want to be the person who is known internally as the goof who was too sure of himself and caused 1million 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 to get certified as well...you'll find that 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.
So there...my two cents as to why you should go out and get certified (I mean study).