Stage 1 of 6 · 9 lessons · ~4 months
Your first language
Learn C# properly: types, control flow, methods, classes, List and Dictionary, and exceptions, using the .NET SDK from the terminal. The same skills carry into web APIs, desktop apps and Unity.
Start: The .NET SDK and dotnet CLILessons· one lesson for each topic, in this order
- 1The .NET SDK and dotnet CLILesson
- 2Types, variables and inputLesson
- 3Strings and interpolationLesson
- 4Conditionals and loopsLesson
- 5Methods, classes and propertiesLesson
- 6List<T>, Dictionary<TKey, TValue> and HashSet<T>Lesson
- 7null and nullable reference typesLesson
- 8Exceptions and debuggingLesson
- 9Namespaces and reading filesLesson
Start with· follow one of these
- GuideFreeLearn C#
Microsoft · Beginner
Official C# fundamentals tutorials that you run locally with the .NET SDK
- PlatformFreefreeCodeCamp
freeCodeCamp · Beginner
Free Foundational C# certification, built with Microsoft, with a graded exam at the end
Before moving on: Write a 200-line C# console app, such as a quiz or a budget tracker, with a few classes, a List, a Dictionary, file reading and exception handling, created and run with dotnet new and dotnet run.

Create your projects with the dotnet CLI before leaning on Visual Studio, so you know what the IDE is doing for you. Skip Unity until the language feels natural, because game engine tutorials teach the engine and leave the language shaky.