Start here

How to learn C# and .NET, from zero to production

There are 315 lessons on this site. Nobody should read them front to back without a plan. This page gives you one, based on where you are starting from.

Pick your path

Path 1

I have never programmed

An eight-week plan through C# Foundations. You will write your first program on day one and finish with two real projects.

See the plan →
Path 2

I code, but not in .NET

Coming from Java, Python, JavaScript or PHP? Skip what transfers, focus on what is different, and get to real .NET work fast.

See the plan →
Path 3

I have an interview coming

A revision order built around what interviewers actually ask, with the questions and the lessons that answer them.

See the plan →

Before you start: what to install

You need exactly two things, both free, on Windows, macOS or Linux:

  1. The .NET SDK (version 10). It gives you the dotnet command, which creates, builds, runs and tests projects.
  2. An editor. Visual Studio Code with the C# Dev Kit extension is the lightest good option. Visual Studio (Windows) and JetBrains Rider are excellent if you already have them.

The lesson Setting Up the Modern Environment walks through both step by step, including how to check that everything works. Do not skip it: half of all "my code does not run" problems are setup problems.

Path 1 — From zero: the eight-week plan

This plan assumes five to seven hours a week. Read the lesson, then type its code yourself rather than copying it; the typing is where the learning happens. Every lesson ends with a short quiz. Use the course player's Mark Complete button so you can see your progress.

Week 1 — Your first program

Week 2 — Making decisions and repeating work

Weeks 3 and 4 — Objects

This is the part beginners most often rush, and the part that makes everything later click. Take the full two weeks.

Week 5 — Collections

Week 6 — When things go wrong, and talking to the outside world

Week 7 — Modern C#

These are the features that make C# written today look different from C# written ten years ago. Learn them now so they never feel foreign.

Week 8 — Working like a developer, then build

After week 8 you can read and write everyday C#, structure a program with classes, handle errors and files, and you have built two applications from scratch. Continue into C# In Practice, which starts with OOP revisited and takes you through generics, LINQ, async and building a real REST API.

Path 2 — Already a developer, new to .NET

If you write Java, TypeScript, Python, Go or PHP for a living, most of Foundations will feel familiar. Read these first; they are where C# genuinely differs, and where people coming from other languages get tripped up:

Then go straight to the second tier and work through it in order. The lessons that pay off fastest for a working developer:

From there, Production .NET is organised by concern — runtime, memory, architecture, ASP.NET Core, data, distributed systems, cloud, testing, production debugging — so you can go straight to whatever your current job needs.

Path 3 — Interview preparation

Interviewers for C# roles tend to probe the same handful of areas, because those are the areas where shallow knowledge shows. We keep a dedicated page of the questions that come up most, each with a direct answer and a link to the lesson that goes deeper:

Open the interview prep guideC# cheat sheet

If you have one week, revise in this order: value vs reference types, garbage collection, async/await and deadlocks, LINQ deferred execution, DI service lifetimes, SOLID, and EF Core tracking. Those seven topics cover a remarkable share of technical interview questions for .NET roles.

How to get the most out of a lesson

  1. Read it once straight through without touching the keyboard, so you know where it is going.
  2. Type the code. Do not paste. If a snippet does not compile, that is a good thing — read the compiler error, it is usually precise.
  3. Change something. Rename a variable, break a condition, add a case. Predict what will happen, then run it.
  4. Do the quiz at the end. Each wrong answer explains why it is wrong, which is often where the real understanding lands.
  5. Mark it complete and move on. Come back when you need it; the lessons are written to be referred back to, not memorised.

The course player also has a reader mode (the Aa button in the sidebar) for larger text and a distraction-free view, and a "Listen to this lesson" button if you would rather hear a lesson than read it.

Common questions

Is C# hard to learn?

C# is one of the friendlier languages to start with: the syntax is consistent, the compiler catches most mistakes before you run anything, and the error messages are unusually clear. Most people can write small working programs within a week or two of steady practice. The harder parts — async, memory behaviour, concurrency — come later, and this course covers them once the basics are solid.

How long does it take to learn C# and .NET?

With five to seven hours a week, Foundations takes around eight weeks and In Practice another ten to twelve. That is enough to build real applications and to be productive in a .NET team. Production .NET is a longer, ongoing tier that working developers come back to as they need it.

Do I need Visual Studio?

No. The free .NET SDK plus Visual Studio Code with the C# Dev Kit extension is a complete setup on Windows, macOS and Linux. Visual Studio and JetBrains Rider are excellent but optional.

Is .NET only for Windows?

Not any more. Modern .NET runs on Windows, macOS and Linux, and most production .NET services today are deployed in Linux containers. Everything in this course works on all three.

C# or Python or JavaScript — which should I learn first?

Any of them will teach you to program. C# is a particularly good first language if you want the compiler to catch your mistakes early, if you are aiming at backend, enterprise, cloud or game development (Unity uses C#), or if you want one language that scales from a beginner script to a large production system without switching.

Is this course really free?

Yes. Every lesson is free to read with no account, no trial and no paywall. The site is supported by advertising and optional reader support, and neither changes what the lessons say.

Which C# and .NET version does it cover?

The course is written against C# 14 and .NET 10, and is updated as the platform moves. Where a feature is version-specific, the lesson says so.