Learn C# Roadmap
A structured path from zero to job-ready C# developer, covering fundamentals through ASP.NET Core, testing, and deployment.
coding, study
by Morris
Environment Setup
Install and configure all tools before writing a single line of code.
- Install .NET SDK (latest LTS)
- Install Visual Studio 2022 Community or VS Code
- Create and run your first console app
- Configure Git and .gitignore for .NET projects
- Explore the dotnet CLI commands you will use daily
- Bookmark key references: Microsoft Learn and the C# language spec
C# Basics - Types and Variables
Build a solid mental model of the type system before touching classes or OOP.
- Understand value types vs reference types
- Learn the built-in numeric types and when to use each
- Master string interpolation and verbatim strings
- Practice nullable types and the null-coalescing operators
- Understand implicit typing with `var` and when NOT to use it
- Work through Microsoft Learn: C# Foundations path
- Milestone project: unit converter console app
C# Basics - Control Flow and Collections
Loops, conditionals, pattern matching, and the most important built-in collections.
- Master all loop types: for, foreach, while, do-while
- Learn switch expressions (C# 8+) and pattern matching
- Practice List<T>, Dictionary<TKey, TValue>, and HashSet<T>
- Understand arrays vs List<T> and when arrays are appropriate
- Learn collection initializers and object initializers
- Milestone project: word frequency counter
Object-Oriented Programming
Classes, interfaces, inheritance, and the OOP features that C# emphasizes in production code.
- Understand classes, constructors, properties, and access modifiers
- Learn records for immutable data models (C# 9+)
- Practice interfaces and coding to an abstraction
- Understand when to use inheritance vs composition
- Learn static classes and extension methods
- Understand structs and when they outperform classes
- Milestone project: bank account OOP model
Intermediate C# - LINQ
LINQ is used everywhere in C# code. Master it early - it transforms how you think about collections.
- Learn LINQ method syntax for the 10 most-used operators
- Understand deferred execution vs immediate execution
- Practice LINQ on real data: JSON deserialization + querying
- Learn `FirstOrDefault` vs `SingleOrDefault` and when each is correct
- Understand `IEnumerable<T>` vs `IQueryable<T>`
- Milestone project: CSV data analyzer
Intermediate C# - Async/Await and Error Handling
Asynchronous programming is non-negotiable for modern .NET. Learn it correctly now.
- Understand the Task-based async model: Task, Task<T>, and ValueTask
- Learn the async all the way down rule
- Practice `HttpClient` with async: call a public API
- Understand CancellationToken and why it matters
- Master structured exception handling in C#
- Learn ConfigureAwait(false) and when it is needed
- Milestone project: async weather CLI tool
Generics, Delegates, and Functional Patterns
The features that make C# expressive and reusable at scale.
- Write your own generic type and generic method
- Understand generic constraints: where T : class, new(), IComparable<T>
- Master Func<T>, Action<T>, and Predicate<T> delegates
- Learn events and the standard EventHandler<T> pattern
- Practice iterator methods with `yield return`
The .NET Ecosystem: NuGet and Key Libraries
Know the most important NuGet packages before starting ASP.NET Core work.
- Learn NuGet basics: add, update, and audit packages
- Learn Serilog for structured logging
- Learn AutoMapper or Mapster for DTO mapping
- Learn FluentValidation for input validation
- Learn Polly for resilience: retries, circuit breakers, timeouts
- Learn MediatR for the mediator / CQRS pattern
- Explore BenchmarkDotNet for micro-benchmarking
ASP.NET Core - Building a REST API
The primary .NET web framework. Focus on minimal APIs first, then controller-based APIs.
- Scaffold a minimal API project and understand Program.cs
- Learn the dependency injection (DI) container and service lifetimes
- Implement CRUD endpoints with validation and proper HTTP status codes
- Configure middleware pipeline in the correct order
- Add JWT authentication with Microsoft.AspNetCore.Authentication.JwtBearer
- Understand the Options pattern for configuration
Entity Framework Core - Data Access
The standard ORM for .NET. Used in the majority of .NET job roles.
- Set up EF Core with PostgreSQL or SQL Server
- Define a DbContext and entity models
- Learn and use EF Core migrations
- Understand eager loading vs lazy loading vs explicit loading
- Learn the Repository pattern and when NOT to use it
- Practice writing efficient EF queries: projections and no-tracking
Testing with xUnit and Moq
Untested C# is a liability. Learn the standard test stack used in most .NET projects.
- Set up an xUnit test project
- Write unit tests for pure business logic: Arrange-Act-Assert
- Use Moq to mock dependencies
- Write integration tests with WebApplicationFactory
- Use Testcontainers for real database integration tests
- Learn FluentAssertions for readable test assertions
Capstone Project and Interview Prep
Build a complete project, then prepare for technical interviews.
- Capstone project: build a REST API with full stack
- Add a README and OpenAPI documentation to the capstone
- Review C# interview topics: value vs reference, boxing, string immutability
- Practice LeetCode / NeetCode problems in C#
- Study system design fundamentals for senior-track roles
- Deploy the capstone project to a free cloud host