I am working on my MCSD.Net for C#. I have my MCSD for Visual Studio 6.0 and VB. I have been casually working on my certification for over 6 months. I got my first MCSD certification when I was fairly new to the field, and being certified seemed to be a very important marketing tool for a rookie. This time around, I am just having a hard time getting excited about studying and taking the tests.
I have taken and passed two tests so far. The first test I took was the 70-316 exam - Developing and Implementing Windows-based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET. The second test I took was the 70-320 exam - Developing XML Web Services and Server Components with Microsoft Visual C# and the Microsoft .NET Framework. Why I didn't take exam 70-315 immediately after exam 70-316, I will never know. The two exams overlap quite a bit, and now I am going to have to re-memorize all of the facts on the test.
Anyway, I passed the web service test and I have never written or consumed a production web service. I would like to. I played with web services in my studying, and felt that I did learn a lot while studying for that test. But do I know enough to be certified in web services? Maybe, I guess.
I had to study just as hard for the Windows test. I have been involved in many WinForms .Net projects in my career. I have been involved in an enterprise-level implementation of a WinForms application. In this implementation, we integrated with Office 2003. We also built a build helper to go out and crawl Visual Source Safe for us to make it easier for our three-man project team to coordinate efforts without stepping on each other's toes or having to wait for one another. It was a cool project.
So here is what I struggle with. I should have been able to quickly and easily pass a certification test on .Net WinForms with minimal studying. I should have had to pour over the Microsoft Web Services information in MSDN and done a painstaking number of hours of work to be up to snuff enough on web services in order to become certified.
But the truth of the matter is, I had to study an equal amount of time for each test. I also found each test to be very silly in the minute details that I was tested on rather than being tested on everyday uses of Visual Studio and on the far-reaching implications that your architectural decision could make. For example, there was not one question on best practices for organizing your classes in a project. There was not one question on best practices for using coding standards, commenting your code, or having project-wide standards for the user interface design. Not once was I asked about what I should do as a developer to prevent cast errors when I am trying to persist data to a database with a field type of smalldatetime. I was not asked when validation should be used, and why. I was not asked what are the best practices for creating a usable menu structure in my application.
I was asked questions about how to set up a connection string. How many of you out there know the syntax for a connection string by heart? All I have to do in the field to figure that one out is open up google.com. But I can't use google to show me how to organize my code in a manner that will make it the easiest to refactor and maintain. So why doesn't Microsoft test us on these things?
I guess my concern is that certifications mean very little if an inexperienced person who picks up a book and memorized a few facts has the same chance of passing the tests as someone who has been studying software engineering and implementing enterprise solutions, using Microsoft tools, for years.
Is it meaningful to be certified? Is it merely a marketing tool that we can use to make us look like more bona fide professionals when seeking out clients? And how could Microsoft build more meaningful questions into their exams so that skills other than syntax memorization are tested?