Stage 1 of 10 · 7 lessons · ~7 weeks
C# and the .NET platform
Install the .NET 10 SDK, learn how the platform fits together and drive it from the dotnet CLI. Then learn the modern C# that every ASP.NET Core codebase uses: types, records, pattern matching and nullable reference types.
Start: What .NET is, and which version to useLessons· one lesson for each topic, in this order
Start with· follow one of these
- GuideFreeLearn C#
Microsoft · Beginner
Free official C# path: syntax, types, classes, collections and exceptions with in-browser exercises
- GuideFree.NET documentation
Microsoft
The official .NET docs: start with the CLI overview, project files and the C# language tour
Practise
Keep handy
Also worth your time
The features that ship with .NET 10: extension members, the field keyword and null-conditional assignment
Object-oriented design worked through on real systems: classes, relationships and responsibilities
- Refactoring.Guru: Design PatternsGo deeper
Free: the classic design patterns explained with diagrams and C# examples
Before moving on: Create a solution from the CLI with a console app, a class library and an xUnit project, model a small bank account domain with records, a switch-expression fee rule and nullable reference types enabled with warnings as errors, and push it to GitHub with a README.

Learn modern .NET on the dotnet CLI and ignore tutorials built on .NET Framework or Startup.cs. Turn on nullable reference types and warnings as errors from day one; the habits you build now decide how clean your ASP.NET Core code will be. If you are still deciding whether .NET is worth it for your market, read sefism.com/questions/is-dotnet-worth-learning-in-2026/.