C# Learning Roadmap
Step-by-step guide to becoming a C# developer in 2025
15
Learning Steps
4
Foundation
7
Advanced
4
Specialization
1 C# & Object-Oriented Programming
Variables & Data Types
Built-in types, var/const, casting, nullable types
Control Flow & Operators
if/else, switch, loops (for/while/foreach), arithmetic and logical operators
Methods & Parameters
Method declaration, ref/out/in parameters, optional params, overloading
Strings & Text Manipulation
Interpolation, StringBuilder, formatting, basic parsing
Collections Basics
Array, List<T>, Dictionary<TKey,TValue>, basic iteration
Enums & Simple Types
Enums, flags, simple value types
Classes & OOP Fundamentals
Classes, properties, constructors, encapsulation, inheritance, interfaces (core OOP concepts)
Generics & Equality
Generic types, constraints, equality (Equals/GetHashCode, IEquatable<T>)
2 .NET Platform & Tooling
Prerequisites:
Step 1
dotnet CLI
build/test/run/publish, SDK-style projects
Runtime (CLR)
JIT, GC, managed vs unmanaged
NuGet
Dependencies, versioning, central package management (optional)
Git
Branching, PRs, code reviews
Project Structure
Solution, projects, namespaces, analyzers
Debugging
Breakpoints, watches, dumps basics
3 Error Handling & Diagnostics
Prerequisites:
Step 1
Exception Handling
try/catch/finally, best practices
Custom Exceptions
Domain-specific exceptions
Microsoft.Extensions.Logging
ILogger abstractions, providers, scopes
Serilog
Structured logs, sinks (console/file/seq), enrichment
log4net
Classic .NET logging (optional)
Tracing & Metrics
OpenTelemetry basics (optional)
4 Collections & LINQ
Prerequisites:
Step 1
Collections Deep Dive
HashSet, Queue/Stack, LinkedList, concurrent collections
LINQ
Deferred execution, projection, grouping, joins
IEnumerable vs IQueryable
In-memory vs provider queries
Streams
Stream, File I/O, async streams (overview)
5 Async & Concurrency
Prerequisites:
Step 4
Task & async/await
CancellationToken, Task.WhenAll, timeouts
Async Streams
IAsyncEnumerable, await foreach
Threading Basics
ThreadPool, SynchronizationContext
Synchronization
lock, SemaphoreSlim, Concurrent* collections
Parallelism
Parallel.ForEach, PLINQ (optional)
6 Memory & Performance
Prerequisites:
Step 2, Step 4
Allocation Awareness
Boxing, closures, string allocations
Span<T>/Memory<T>
High-performance memory access
Profiling
dotnet-trace, dotnet-counters, profilers
Interop
IDisposable, SafeHandle, P/Invoke basics (optional)
7 Testing & Quality
Prerequisites:
Step 1, Step 3
Unit Testing
xUnit/NUnit/MSTest, assertions
Mocking
Moq/NSubstitute, fakes, test doubles
Integration Testing
TestServer/WebApplicationFactory (optional)
Static Analysis
Analyzers, StyleCop, nullable warnings
8 Data & Persistence
Prerequisites:
Step 4, Step 5
SQL Fundamentals
SELECT/JOIN/INDEX/STORED PROCEDURE/TRIGGER, transactions basics
Entity Framework Core
DbContext, tracking, migrations, performance
Dapper
Micro-ORM for hot paths (optional)
SQL Server
Microsoft SQL Server, T-SQL, SqlClient
PostgreSQL
Postgres, Npgsql driver, JSONB basics
Oracle
Oracle DB, ODP.NET / Oracle.ManagedDataAccess
9 Caching
Prerequisites:
Step 8
In-memory cache
IMemoryCache, cache-aside, TTL, eviction
Distributed cache
IDistributedCache, serialization, key design
Redis
Most common distributed cache (strings, hashes, pub/sub)
Memcached
Simple, widely-used distributed cache (key/value)
NCache
.NET-focused distributed cache (often used in enterprise)
Cache invalidation
Versioned keys, stampede protection, refresh-ahead
10 ASP.NET Core Web
Prerequisites:
Step 5, Step 7, Step 8
HTTP & REST
Status codes, headers, idempotency
Razor Pages
Page model, handlers, routing
Minimal APIs
Endpoints, filters (optional)
Web API
Controllers, model binding, validation
Middleware
Pipeline, exception handling middleware
Dependency Injection
Service registration & lifetimes (Scoped, Transient, Singleton), options pattern and resolution
.NET Aspire
Guided mini-projects to build small end-to-end .NET apps and practice architecture, DI, testing, performance and deployment.
Swagger / OpenAPI
Auto-generate API docs and interactive UI
GraphQL
Flexible query API alternative to REST
Ocelot (API Gateway)
Lightweight API gateway for microservices routing
.NET MAUI
Cross-platform native apps for mobile & desktop
11 Security
Prerequisites:
Step 10
Authentication
Cookies, JWT, OpenID Connect concepts
Authorization
Policies, roles, claims
Web Security
XSS, CSRF, CORS, headers
Secrets Management
User secrets, env vars, vaults (optional)
12 Real-Time Communication
Prerequisites:
Step 10
WebSockets
Persistent connections, basic realtime patterns
SignalR
Hubs, groups, scaling out, backplanes
RabbitMQ
Message broker, pub/sub, queues, background processing
13 Design & Architecture
Prerequisites:
Step 1, Step 7, Step 9
SOLID
Core OO design principles
Common Patterns
Factory, Strategy, Adapter, Decorator
Clean Architecture
Layering, boundaries, DTOs
CQRS/Eventing
Intro to CQRS, messages (optional)
Object Mapping
Converting one type to another (AutoMapper)
14 Modern C# (C# 10-12+)
Prerequisites:
Step 1
Records
Value-like types, immutable models
Pattern Matching
switch expressions, property patterns
Nullable Reference Types
Avoid null bugs
Source Generators
Compile-time code generation (optional)
15 Dev Workflow & Delivery
Prerequisites:
Step 2
Build & CI
dotnet test, pipelines, GitHub Actions
Docker
Images, containers, compose (optional)
Deployment
Hosting basics, configs, environments (optional)
SonarQube
Continuous code quality and static analysis
Exception Monitoring
Production error tracking (Sentry, App Insights)