Microsoft C# Exam 70-483 Free Study Guide - Skip the Dumps & Pass the Programming Test

I am getting ready to take the Microsoft Programming in C# 70-483 exam as it will benefit a company I work with. In doing so I'm creating a study guide to help get ready. The goal is something that you can skim over, not a lengthy detailed reference guide you won't read.

This is Not an Answer Dump

Microsoft strongly discourages searching for files known as dumps that claim to contain the questions and answers from the test. They have good reasons.

  • Microsoft's found dumps to be innacurate and scamming people of their money. Human nature causes us to love to throw money at promises of an easier path. Certification dumps that could boost your career is a way for scammy people to make money.

  • Microsoft claims the quiz changes from time to time. While I don't know what's on the quiz yet, I do know that .NET is adding new features & techniques at a rapid pace.

Besides that, I personally view quizzes as a way to personally check your own knowledge. If you fail this exam you can always re-take it. There is no need to stress out over it. Exams highlight your weak spots, allow you to re-study them & improve what you know for when it really counts - when you're programming an expensive piece of software that effects others lives.

Free Practice Tests

While their are plenty of providers of practice tests, I personally am a fan of Pluralsight's quizzes. While they're not technically an official practice test for exam 70-483 they offer a C#, ASP.NET Core and ASP.NET MVC5 quiz to test your knowledge. Their quiz platform was built from their purchase of a company known as Smarterer that allowed experts in a variety of software topics to write questions & answers. The community could use these quizzes to guage their skills. The community could also downgrade bad or tricky questions.

If you don't have a Pluralsight subscription already, they offer a free trial. If you can set aside a few days to study, that should be enough time to try the quizzes & watch some excellent videos. Once you finish the quiz, you can review the questions & watch videos on anything you got wrong.

It's important to note that the officially recommended practice tests state they do not use questions from the Microsoft exam either.

C# Job Interviews

Interviewing for C# jobs is a topic that mirrors studying for the 70-483 Exam. To help make this more thorough for both, I searched for interesting interview questions that relate to Microsoft's suggested topics to study. I tried to include information to pass those questions without turning this guide into a lengthy book.

Study Guide

This study guide is based off the Microsoft 70-483 Exam page. Below is their exam topic list, the percentage of related questions and links to study guides I've created on each topic.

This Study Guide is a Work In Progress

1. Manage Program Flow

  • Implement multithreading and asynchronous processing
  • Manage multithreading
    • Synchronize resources
    • Implement locking
    • Cancel a long-running task
    • Implement thread-safe methods to handle race conditions
  • Implement program flow
    • Iterate across collection and array items
    • Program decisions by using switch statements, if/then, and operators
    • Evaluate expressions
  • Create and implement events and callbacks
    • Create event handlers
    • Subscribe to and unsubscribe from events
    • Use built-in delegate types to create events
    • Create delegates
    • Lambda expressions
    • Anonymous methods
  • Implement exception handling
    • Handle exception types, including SQL exceptions, network exceptions, communication exceptions, network timeout exceptions
    • Use catch statements
    • Use base class of an exception
    • Implement try-catch finally blocks
    • Throw exceptions
    • Rethrow an exception
    • Create custom exceptions
    • Handle inner exceptions
    • Handle aggregate exception

2. Create and Use Types

  • Create types
    • Create value types, including structs and enum
    • Create reference types, generic types, constructors, static variables, methods, classes, extension methods
    • Create optional and named parameters
    • Create indexed properties
    • Create overloaded and overriden methods
  • Consume types
    • Box or unbox to convert between value types
    • Cast types
    • Convert types
    • Handle dynamic types
    • Ensure interoperability with code that accesses COM APIs
  • Enforce encapsulation
    • Enforce encapsulation by using properties
    • Enforce encapsulation by using accessors, including public, private, protected, and internal
    • Enforce encapsulation by using explicit interface implementation
  • Create and implement a class hierarchy
    • Design and implement an interface
    • Inherit from a base class
    • Create and implement classes based on the IComparable, IEnumerable, IDisposable, and IUnknown interfaces
  • Find, execute, and create types at runtime by using reflection
    • Create and apply attributes
    • Read attributes
    • Generate code at runtime by using CodeDom and Lambda expressions
    • Use types from the System.Reflection namespace, including Assembly, PropertyInfo, MethodInfo, Type
  • Manage the object life cycle
    • Manage unmanaged resources
    • Implement IDisposable, including interaction with finalization
    • Manage IDisposable by using the Using statement
    • Manage finalization and garbage collection
  • Manipulate strings
    • Manipulate strings by using the StringBuilder, StringWriter, and StringReader classes
    • Search strings
    • Enumerate string methods
    • Format strings
    • Use string interpolation

3. Debug Applications and Implement Security

  • Validate application input
    • Validate JSON data
    • Choose the appropriate data collection type
    • Manage data integrity
    • Evaluate a regular expression to validate the input format
    • Use built-in functions to validate data type and content
  • Perform symmetric and asymmetric encryption
    • Choose an appropriate encryption algorithm
    • Manage and create certificates
    • Implement key management
    • Implement the System.Security namespace
    • Hash data
    • Encrypt streams
  • Manage assemblies
    • Version assemblies
    • Sign assemblies using strong names
    • Implement side-by-side hosting
    • Put an assembly in the global assembly cache
    • Create a WinMD assembly
  • Debug an application
    • Create and manage preprocessor directives
    • Choose an appropriate build type
    • Manage program database files (debug symbols)
  • Implement diagnostics in an application
    • Implement logging and tracing
    • Profiling applications
    • Create and monitor performance counters
    • Write to the event log

4. Implement Data Access

  • Perform I/O operations
    • Read and write files and streams
    • Read and write from the network by using classes in the System.Net namespace
    • Implement asynchronous I/O operations
  • Consume data
    • Retrieve data from a database
    • Update data in a database
    • Consume JSON and XML data
    • Retrieve data by using web services
  • Query and manipulate data and objects by using LINQ
    • Query data by using operators, including projection, join, group, take, skip, aggregate
    • Create methodbased LINQ queries
    • Query data by using query comprehension syntax
    • Select data by using anonymous types
    • Force execution of a query
    • Read, filter, create, and modify data structures by using LINQ to XML
  • Serialize and deserialize data
    • Serialize and deserialize data by using binary serialization, custom serialization, XML Serializer, JSON Serializer, and Data Contract Serializer
  • Store data in and retrieve data from collections
    • Store and retrieve data by using dictionaries, arrays, lists, sets, and queues
    • Choose a collection type
    • Initialize a collection
    • Add and remove items from a collection
    • Use typed vs. non-typed collections
    • Implement custom collections
    • Implement collection interfaces

One Last Thing...

If you have a question or see a mistake, please comment below.

If you found this post helpful, please share it with others. It's the best thanks I can ask for & it gives me momentum to keep writing!

Matt Ferderer
Software Developer focused on making great user experiences. I enjoy learning, sharing & helping others make amazing things.
Let's Connect