Microsoft Certification is one of those topics that keeps cropping up on the different forums and newsgroups and causing furious debate. Those expecting it to be a "magic bullet" to career progression are in for a huge disappointment. There are too many ways to cheat, and the exams themselves are fundamentally flawed. But I still think certification is a good thing and worth every .NET developer pursuing!
It's been over a year since I took my last exam. There are always more interesting things to learn and do, and I'm at a level where although certification can be useful to some clients (those chasing Gold Partnership schemes and requiring a certain number of certified staff to get the points they need for partnership), it's hardly a deal breaker.
The new .NET 2.0 certifications which have just started up gave me a much needed kick up the backside and I took the third exam in the MCAD (Microsoft Certified Application Developer) / MCSD (Microsoft Certified Solutions Developer) .NET curriculum this morning having pretty much abandoned certification 18 months ago. I'd taken two C# exams (covering Web and Windows development) in November 2004 but this morning took the "XML Web Services" exam (which covers various odds and ends left out of the Web and Windows C# exams) to complete my MCAD. As with other exams I came out grateful for the pass (albeit by a much lower comfort zone over the pass rate than I've had before), but frustrated at how poor a test of real proficiency the exams are. Being asked less than fifty multi-choice questions is not a great way to measure years of experience. When those multi-choice questions require you to know whether or not a particular method has an optional second parameter, and if so what its type is.. you get an idea of how pointless such knowledge in the real world of Intellisense and Visual Studio is, and it's not hard to see why Microsoft Certification gets such bad press from those more interested in working in the real world (or is it just that they're too lazy to put in the effort required to study such a wide curriculum?!)
The main reason I study for certification is not the exam. The exam and paper qualification are not important, but the journey to get there is! Regardless of the actual exam questions, the actual devised curriculum and training materials (at least from Que and Mr Kalani, if not Microsoft Press who have produced some really dire 'training materials') are amongst the best self-teach materials for .NET I've seen. I have a lot of .NET books (and I do mean a LOT!) and the certification training materials, if you get the right ones, are the best training material I've come across for .NET developers.
We can't all be experts in everything - there's too much to learn. But the curriculum for the .NET certifications is very broad and alerts developers to areas that may be appropriate to future development if not useful on a specific project you're working on at any given time. You can't make a good design decision if you don't know what the alternatives are, and the curriculum for the exams covers this very well, even if the exams themselves have a poor reputation. I wouldn't hire any developer just because he was certified, but faced with two otherwise equal candidates on the experience side I'd take the one who was certified over the one who wasn't.
I'm in the odd position of having taken (and passed) about ten or eleven different Microsoft MCP exams without having any of the more advanced titles (MCSE, MCSD or MCDBA) - mainly because I'm more interested in particular topics and the journey than the "paper" qualification. I worked out at one stage that just taking three exams would get me all three of the big titles, but that's of little interest because the qualifications by themselves are pretty meaningless.
That being said, the new .NET 2.0 certifications are of interest because I think they will be a good way of getting me into the new technology before Vista, WPF etc hit the fan, and giving me an idea of what areas I need to know (at least so far as Microsoft themsleves are concerned). I feel I've spent too much of the last few years trying to run before I can walk - such is the typical developer's life. So I've made a decision to finish the 'old' certifications (at least to MCSD level) before chasing the new .NET 2.0 certifications. This means I have two more exams to take (I've chosen a "Security" elective, exam 70-340 because that's appropriate to all versions of .NET, and also have the infamous ".NET Solution Architectures" exam 70-300 after that to complete the MCSD). In any event training material for the new exams (only just out of beta) isn't available so I've some time to kill before I'm likely to have study material for the new exams.
One advantage of doing things this way, instead of rushing into the "new" .NET 2.0 stuff as so many seem to want to do, is that an "old" MCSD certification offers a "short cut" to the new certifications with just a couple of "upgrade" exams being needed rather than five new exams. But I won't be going the upgrade route - I'd rather do the complete set. It's a couple of years since I took my first .NET certification exams and I need to go back and re-learn what I haven't used in my day-to-day job as a web developer for a year or two. Like I said, it's about the journey, not about the "paper" qualification. Although it is a nice feeling today to have finally moved beyond MCP to MCAD!