Thursday, January 06, 2005

Microsoft Certification Tests

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?

4 comments:

RG said...

Jake - I suspect there is something more going on than just trying to make the organization look good to Microsoft. To maintain partner level status with Microsoft, organizations must have a certain number of certified employees on staff. For example, to be a certified partner, an organization must have at least two MCPs (Gold Certification is more rigorous). Maintaining that certification level with Microsoft can be important to an organization, as it provides the organization with additional software. online content that can help with marketing and sales, and may also mean that Microsoft will provide sales leads to your organization.

Which leads me to your comment "Isn't it about developing good software..." Um, actually, no. It is about running a successful business and making money. I'm not saying you can't do both, or that writing good software won't lead to making money (I sure hope it does). But the primary objective for a business should be financial success.

Getting back to certifications - I agree that there is room for improvement in the certification process. While I am annoyed sometimes at the types of questions, I console myself by realizing that I always learn useful things during the process of studying.

Valerie Vogt said...

I really do feel that you can learn something while studying for your certifications. But it does seem to me that certifications really don't hold much water. I agree with you, Aaron. Certifications can date you. I am an MCSD in Visual Studio 6.0. Does that mean I used to be good but am now a slacker because I have not completed my .Net certification? I think it means that once upon a time I was offered a big bonus for passing my tests, and now I am so busy with projects that my certification tests seem less important than working on my projects when I have spare time.

Anonymous said...

I am in a similiar situation. I have passed the WinForms test for VB.net and tomorrow take the Web Services test for VB.net. It was alot of memorization of facts. However, i really didn't know Web Services. So I view it as an opportunity to learn something new.

Does it make me a better programmer since I am getting certified? NO! It means I have the ability to learn what MS requires to pass a test.

Anonymous said...

Nice Blog. Keep posting more .. ?
Check this mcsa 2000 certification site. It pretty much covers mcsa 2000 certification related stuff.
Thanks.