harriyott.com

Tuesday, June 27, 2006

MCP training versus blog reading

Microsoft exams are flavour of the month at work at the moment. A training company have sent the developers a quick quiz to fill in, which seems to be about about 40 questions pulled from here. [n.b. I found this after I completed the quiz.]

Once completed, the quiz is sent back to the trainers for assessment. There will be individual interviews where the results are discussed, and a training plan developed to see what needs to be done to pass the exam. This seems like a good approach, as the study books are really fat.

I have been a little negative about the prospect of taking Microsoft exams. The main reasons I've been given for taking them have been rather cynical - it looks good on your CV, and it helps the company with partner status. In the first case, I've known bad developers get certified, and good developers with no exams, so if I were interviewing someone, I'd probably ignore the exams. It's true that it's good to have MCP / MCAD etc. on your CV if you want to work for a company where the HR department checks the applicants for buzzwords. Neither of these reasons have motivated me to give my spare time to studying.

The least-mentioned benefit, and the only one that has motivated me, is that I'll learn more about .NET. My current method is a little less structured than cramming for an exam: I subscribe to various .NET blogs. There were a couple of questions in the quiz that I knew the answers to solely from blog reading, such as the difference between value types and reference types, and what boxing and unboxing is all about.

So, two approaches to learning. Which is better? Exams force you to learn things that you wouldn't otherwise know about. This is both a good and bad thing. I went on a SQL Server course once, and spent a good chunk of time learning about replication. That was good, as I learnt something knew, and also bad, as I have never needed to use replication since, and could have learned about something more useful. With blog reading, I choose to skip over the things I don't need to know about, such as remoting or image manipulation. Again, this is a good and bad thing. I can't decide which is better at the moment.

Once I've had the interview, and find out which exam(s) I'll be most suited for, and what I'll need to study to pass them, I can decide how relevant the exam is for me. Whilst I don't want to take anything away from people who have passed exams, I don't really give two hoots if I take or pass the exam. I'm interested to see how much I learn along the way, and how practical my increased knowledge will be. I certainly don't want to cram-pass-forget a load of stuff.

4 Comments:

Helephant said...

I've been thinking about doing the exams as well because the company I'm working at will pay for me to take them.

I was a bit cynical about the relevance as well but I had a flip through the ASP.NET 1.1 book and it had a few things I didn't already know and it firmed up a few things that I knew but had never really thought about.

I think the advantage of structured learning to unstructured learning is someone doing good structured learning can point out some of the common pitfalls so you can learn to avoid them without having to actually write bad code that you learn from.

June 28, 2006 11:48 AM  
Richard Jonas said...

Having completed the set of MCSD exams earlier this year, I think the main advantage is that if you and others have a common core knowledge, you can communicate more easily and be productive sooner in a new project. I found I already knew about 70% of the material, but there were some aspects of .NET that I had never needed to use before and that I hadn't ever studied.

However, I got the impression a lot of the exams are trying to indirectly "sell" Microsoft's technologies by encouraging people to think about problems in certain ways, e.g. by partitioning database views across different servers or having components that communicate by .NET remoting.

It is often possible to think about the structure of your application and avoid the need for this complexity, but this does not sell as many of Microsoft's products.

Maybe a university or someone like the British Computer Society should develop a set of independent "continuing professional development" exams and promote them so they become widely recognised qualifications.

June 28, 2006 12:24 PM  
Helephant said...

I think that's a nice idea because one of the things I loved most about my university course was that they tended to use learning a specific technology to illustrate a general point.

For example we learnt how to use MFC to learn about model-view-controller and that way learnt a lot about a really important design concept and got to peek at how the painting works in windows.

I always felt a bit conned when I did a subject simply about a certain technology because it's not too hard to learn a new technology on your own (we had one subject where Microsoft Evangalists wasted a whole lecture rehashing the advantages of .NET that our lecturer had told us in lecture 1).

I think perhaps the vendor certification is more focused only on the specific technology aspect and doesn't really talk about the kind of skills that are transferable to any environment.

Maybe it's not the appropriate place to talk about the big programming concepts? Maybe there's room for another type of training? I'd love to learn more about things like databases or security but feel a bit reluctant to give the time to another university degree.

June 30, 2006 9:53 AM  
Simon said...

Thanks for the comments. Richard, well done on getting a full set. Interesting point about the "vendor agnostic" training / examinations. I believe the BCS does (or did) have exams, one of which did count for as much as a degree (in their eyes).

The problem with written or multiple choice exams is that programming is not knowledge-based, it's skill-based. That means that the qualifications should be skills based. A written exam can test for knowledge, but practical coursework can test for skill. Any meaningful "vendor agnostic" programming qualification should therefore include some coursework, like a degree does.

June 30, 2006 7:20 PM  

Post a Comment

Links to this post:

Create a Link

<< Home