I am now a Microsoft Certified Solution Developer in .NET 1.x technologies. This is a qualification that I've been working towards on and (more often than not) off for the past four years or so. It's not really the case that the exams were super-hard, just that it took occasional motivation to get round to taking them!

So, was it worth it?  Did I learn anything en route?  Did the exams boost my employability?  Would I be more inclined to employ someone with an MCSD than an applicant without?

Stepping back in time a little, my first real conversation about .Net was in November 2000, at a job interview for a position with ioko (then Infocom), when Matthew asked me something vague along the lines of "what did I understand regarding Microsoft's .NET initiative?"  I honestly can't remember my answer, but it can't have utterly sucked as I got the job, and started the following month.

A year later, December 2001, and I attended the two-day .NET launch at the London Hilton, at which a certain Bill Gates gave a keynote speech explaining why .NET was the future. It was one of the few sessions at that conference which didn't go over my head - the rest utterly blew my mind, and made me feel extremely ignorant - me with my VB6 and ASP3 skills!

Another year passed, and a quiet market meant that I still hadn't had any opportunity to cut my teeth on any .NET projects. But crucially (and in retrospect foolishly), I also hadn't put any personal effort into learning these important new technologies. So, on 3rd December 2002, I ordered some self-study books for exams 70-315 and 70-316. Apparently expecting to learn by osmosis, I then popped them on my bookshelf, and headed off to Australia to visit my friends Bruce and Suzanne.

When I got back from Down Under, in January 2003, my job at ioko was not waiting for me. That quiet market wasn't getting any noisier, a cull had to occur, and, since I didn't have any proven .Net skills...

Redundancy wasn't a pleasant experience, and I wanted to get back into the world of work ASAP (after all, the mortgage wasn't going to pay itself), so I quickly took up what I always expected to be a stop-gap VB6/ASP job - the pay wasn't great but it beat daytime TV, spamming the employment agencies and constantly refreshing jobserve.com. It was at this point in time I realised that the only person with the capability to improve my skills and career prospects was myself. For too long I had equated career success to "luck" in being placed on the right projects. Now it was time for me to invest some time and energy learning those all-important .NET skills that I'd been reading about for the past few years.

For much of the long hot summer of 2003, I burnt the midnight oil developing a three-tier web application for the investment club of which I was the treasurer at that time. This served a number of purposes:  Of course, the website was useful to those who had access to it, but more importantly to me, it provided a way to develop the .NET skills that I saw as being the keys to a better job. Now, the obvious shortcoming of using a personal project as a way to learn a set of technologies is that you're unlikely to stumble across those enterprise-y features in the Framework that are of particular use in business scenarios. So, I supplemented my late-night hacking sessions (which incidentally resulted in my neighbours complaining about my playing pop music at 2am) with some diligent studying of the 70-306 guide that I'd bought the previous winter. On 14th June 2003, after spending around £80 of my own cash to take the exam, I passed that test, becoming an MCP for the first time.

Was it worth it?  I think so. My efforts meant I got a good grounding in aspects of the technologies that I would not otherwise have stumbled across, and it gave me something concrete and .NET-related to put on my CV (effectively saying "yeah, I know I haven't worked with these technologies professionally, but that doesn't mean I don't understand them"). A few months later, as the market started to gradually pick up again, I got the job I still have - as a .NET developer for Marshalls. I've no doubt that the MCP exam helped to at least get my foot in the door.

I took the remaining four exams at my leisure over the next few years. Whilst studying for the SQL Server (70-229), Web Services and Server Components (70-320) and Requirements and Architectures (70-300) exams, I always found myself learning several things that I hadn't picked up on the job - in that sense at least, I think undertaking the exams was worthwhile. The final exam I took was the Windows App exam (70-316), and this was a bit of a stroll in all honesty, after the previous four exams and three year's of .NET experience.

Would I be more inclined to employ someone with an MCSD than an applicant without?  I think the qualification helps greatly in identifying potential candidates, but there are many other factors that make a good developer that aren't covered in any depth by these exams. Design Patterns and OOP concepts in general were not really tested, even on the 70-300 exam. Knowledge of IIS was not covered on 70-306 - I guess it's assumed that this is the realm of the Systems Administrator rather than the coder, but in reality (especially in small teams), a good ASP.NET developer needs an intimate understanding of how their web server works and is configured. What about covering topics such as source control, automated builds, and release management?  Issues such as unit testing and the benefits of code reviews were mentioned in the 70-300 exam, but there's a difference between knowing the theory and applying this in practice. An MCSD qualification certainly demonstrates the former, but a few searching questions at interview are still required to prove the latter.

So what's next for me?  Upgrading to the "MCPD: Enterprise Applications Developer" qualification is the obvious path, and I'll probably do so in due course, but right now I'd like to like to spend more time getting to grips with SQL Server 2005 by taking the relevant MCTS exam (70-431). If that goes well, then maybe I'll continue onto the MCITP: DB Dev qualification. We'll see.