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
Itemi