Today I passed the 70-483 Programming in C# exam. As any other Microsoft exam, the passing score is 700 on a total score of 1000. I scored way above my expectations, so I’m very happy that my efforts are rewarded with a MCP certificate. I can highly recommended experienced consultants and developers to take this exam. For beginning programmers ( < 1 year) this exam will probably be too difficult as there are many topics in scope of the exam. In order to motivate anyone who wants to take this exam, here is how I experienced the exam.
The difficulty of the exam
It certainly wasn’t easy but it wasn’t very difficult either. Questions vary from using the correct syntax such as LINQ (e.g. Skip vs Take) or delegates to selecting the right mechanism for the job (e.g. hashing or encryption algorithms). What Microsoft is trying to achieve is that you can assess the situation and make a correct decision on the implementation in C#. You don’t necessarily need to know every aspect in the greatest detail, as long as you can make sense of it. That having said, it is very useful that you know more than the concepts alone. It’s good that you know how asynchronous programming works for example, but you also need to know how you can achieve this – and which methods could be better than others in certain situations. For instance, I’m not an expert in cryptography but I could understand which possible answers made sense and which ones didn’t. There were few questions that I could not answer with logical reasoning.
All questions regarding the following topics were easy as I use these on a daily basis:
- Events and callbacks
- String manipulation
Some other topics that are less prevalent appeared to be the most difficult subjects of the exam:
- Garbage collection, in particular the finalization process
- Hint: Learn the difficult methods the GC exposes
- The books write DelaySigning is out of scope, but that wasn’t the case on my exam.
- Don’t forget to study the different tools (sn.exe, gacutil, …) there are regarding assemblies
- Encryption, hashing & PKI
Over the last three to four years, I have written a lot of code. I’ve also had my share of many late nights coding and discovering new frameworks, code patterns, and so on. I also took the opportunity to apply new techniques on the projects that I was working on. What I’m trying to say here is that experience is the best way to learn. If you write code, you’ll master the concepts which makes anything else easier. Next to experience, I have read the following books back to back:
- Exam Ref 70-483 Programming in C# (MCSD) by Wouter de Kort. This is the official book that is recommended by Microsoft. All topics covered by the exam are covered in this book as well. The author assumes his readers are familiar with the basic concepts and elements in C#, so he rather focuses on the advanced topics such as parallelism (first chapter btw!). I would definitely recommend this book, no doubt you’ll learn a thing or two.
Exam Ref 70-483 Programming in C# (MCSD) by Rob Miles
This is the second edition of the book but this time written by a different author. I was the technical editor of this book.
MCSD Certification Toolkit (Exam 70-483): Programming in C#. The authors of this book have taken their time to cover all aspects of the exam as well, but they go end to end, from the basics to the advanced topics. I’d recommend this book as a reference guide, and don’t forget the practice tests and cheat sheets!
MeasureUp has representative questions (and UI) for the exam. There’s a free practice test of 5 questions that you can take. The difficulty is roughly the same.
In retrospect, I was more nervous about the exam than I really should have. Anyone with more than three years experience should be able to pass the exam, on one condition: read the book. It will help you identify your weaker spots and you’ll certainly be surprised that there’s still a lot that you don’t know.