There’s already a number of blog posts detailing the content of the exam (this is a good one), so I won’t go into this in any great detail. The 4 topics tested with a (very!) brief summary are:
- Manage program flow – understanding if/else, switch, while, do while, try/catch/finally, etc. statements and the syntax required, use cases and so on, threads, tasks, async/await;
- Create and use types – understanding value/reference types, interfaces, abstract classes, boxing/unboxing, garbage collection, common .net interfaces (IDisposable, IEnumerable, ICollection, etc.);
- Debug applications and implement security – understanding compiler directives, built in and custom (debug, etc.), symmetric/asymmetric encryption/decryption, hashing, certificates/stores, strong named assemblies, Global Assembly Cache;
- Implement data access – Entity Framework modelling, code/database first, connection strings, System.Data namespace classes (SqlConnection, SqlDataReader, etc.);
Exam Ref 70-483: Programming in C#
To prepare for the exam I used a number of sources, notably the Exam Ref 70-483: Programming in C# book. I wouldn’t recommend this book if you’ve had no prior exposure to C#, this isn’t a negative against the book as that’s not the intention of it. Contrary to some of the reviews I read, I like the fact that it adhered very closely with the syllabus even as far as the order in which the topics are covered, e.g. page 1 – multithreading is probably not the most accessible topic if you’ve had no previous exposure. Would definitely recommend this book as it does cover what you need to know for the exam.
I’m fortunate enough to work for a company with access to Skillsoft training videos and sample exam questions, so I worked through the content available to me on there. For the most part the content was the same as that available in the book. The most useful element for me was the sample exam questions, which was beneficial as it gave me the indication that I was ready to book in for the real thing once I was passing on there, in addition to the fact that this was my first exam of this type, gave me an idea of what to expect.
Sample Test Questions
There’s a selection of sample test questions freely available on the Wrox site. I ran through these in the few days prior to the exam, I’m not convinced the answers were all 100% accurate with a few leaving me a bit puzzled, but again it got me thinking about the sort of questions that may come up, even though the format isn’t the same it’s still a useful resource.
Finally, the cheat sheet, also available from the Wrox site proved to be a very handy resource (don’t worry, it’s not actually cheating). I would recommend running through the content of these the few days prior to the exam. If you’re comfortable with everything on there, then you are probably good to go.
Day of the exam
I got to the area of the exam intentionally early to avoid any stress with traffic and parking etc., as when you’re taking an exam you don’t need this! I went to a coffee shop and skimmed the cheat sheets one last time making sure that it was all clear in my head just prior to heading in.
A full overview of the possible question types is available here on the Microsoft site, with videos on what they entail, it’s probably worth giving these a once over. Not all of the question types came up in my exam, but this may have been luck of the draw.
You have 2 hours to take the exam, with a variable number of questions, from reading around, this it appears to be between 40 and 80 questions, I had 55 on my test. You find this out prior to the exam timer starting so work out how long approximately you have for each question and try not to spend too long on a question, you can always flag it for review and come back to it. Ideally, give yourself 20 minutes or so at the end to go back to any questions that you marked for review, or that you didn’t fill in on the first pass.
The exam was generally code-heavy, which can mean that there’s potentially a lot of reading, and comprehension that you may not actually need to do. The way I approached this was to scan the code through, then read the question, then go back through the code in detail now that you have an understanding of what it’s asking for.
Tackle questions negative first, e.g. not all of the possible answers would necessarily compile in the context in which they’re being used, you can discount these answers immediately leaving you with a smaller set of possible correct answers to take a closer look at. Keep it simple, think about compilation or even just syntax, then think about what makes sense, then think about what would actually work for that scenario.
Mark any questions you aren’t 100% sure of for review and come back to them, I did this iteratively over a number of runs through, leaving the few I was really uncertain of until the end making sure I got the ones that I was sure of in the bag.
This is how I approached the exam, different people work best under different conditions, so don’t take this as necessarily being the best way, just what worked for me.
Finally, good luck! I did find it challenging but with the right preparation it’s definitely do-able. This was my first certification exam so I didn’t know what to expect and maybe did a little more work than I needed to, though as mentioned earlier I’m hoping to attain an MCSD so I’m hoping it won’t be my last!