Syllabus & Study Plan

What the C# course covers, what you'll be able to do by the end, and a suggested ten-week schedule with a checkpoint each week. Install the .NET SDK first (lesson 2) — typing and running code yourself is the fastest way to learn.

Who this course is for

Beginners who want a versatile, in-demand first language; students preparing for courses that use C# or .NET; aspiring game developers heading for Unity or Godot; and programmers coming from Java, C++, Python or JavaScript who want to write idiomatic modern C# rather than translating habits from another language.

Learning outcomes

By the end of the course you will be able to:

  1. Install the .NET SDK, run single-file programs, and create, build and run projects with the dotnet CLI.
  2. Use C#'s types, operators, conversions, strings and formatting correctly, including decimal for money and culture-aware output.
  3. Control program flow with conditions, switch expressions and loops, and read and validate user input.
  4. Write methods with clear parameters and return values, including optional, named, params, ref and out parameters.
  5. Choose and use arrays, lists, dictionaries, sets, queues, stacks, ranges and spans.
  6. Design classes with constructors, properties, encapsulation, inheritance, polymorphism and interfaces, and choose between classes, structs and records.
  7. Write null-safe code with nullable types, and use pattern matching and generics effectively.
  8. Use delegates, lambdas, events and LINQ to filter, transform, group and join data.
  9. Handle errors with exceptions, manage resources with using, and work with files, JSON and dates.
  10. Write asynchronous and parallel code safely, organise multi-project solutions, use NuGet packages, write unit tests, and apply modern C# 14 features and best practices.

Course outline

PartLessonsFocus
1. Getting Started01–04C# and .NET, the SDK, first program, projects
2. Basics05–11Syntax, variables, types, math, conversions, operators, input
3. Control Flow12–15if, switch, while and for loops
4. Strings16–19String methods, formatting, StringBuilder, regex
5. Methods20–24Parameters, ref/out, overloading, local functions, recursion
6. Collections25–30Arrays, lists, dictionaries, sets, queues, stacks, spans
7. Object-Oriented Programming31–42Classes, properties, inheritance, interfaces, records, enums, equality
8. Types & Patterns43–46Nullability, pattern matching, generics, extension members
9. Delegates & LINQ47–51Lambdas, events, LINQ, iterators
10. Errors, Files & Async52–58Exceptions, using, files, JSON, dates, async, parallelism
11. Projects & Modern C#59–63Solutions, NuGet, testing, C# 14, best practices, final project

Ten-week study plan

About five to seven hours a week. Each week ends with a checkpoint — if you can do it comfortably, move on.

WeekLessonsCheckpoint
101–08Write a program that converts between units, using const values and decimal or double correctly.
209–15Build a number-guessing game that validates input with TryParse and uses loops and a switch expression.
316–19Write a text analyser that reports word counts, the longest word and a formatted summary table.
420–26Split a program into small methods; solve a recursive problem such as listing a folder tree or binary search.
527–30Build a contact book with a Dictionary, plus undo using a Stack.
631–36Model a library with Book and Member classes, encapsulated state and validation.
737–42Add a polymorphic hierarchy or interface (for example different payment methods) and convert data classes to records.
843–51Rewrite earlier loops with LINQ; group and summarise a data set; enable nullable warnings and fix them all.
952–58Save and load your library model as JSON with proper error handling; download or process several items concurrently.
1059–63Split a project into a library and a console app, add xUnit tests, and complete the task tracker.

Final project: complete at least three of the task tracker's challenges (lesson 63), add tests for its store, then take the quiz and aim for 25 out of 30 or better.

Faster tracks

  • Know Java? Skim Parts 1–5, then focus on properties (33), structs and records (40), nullable reference types (43), pattern matching (44), LINQ (49–50) and async/await (57).
  • Know C++? Concentrate on value vs. reference types (07, 31, 40), garbage collection and using (53), interfaces (39), generics vs. templates (45) and LINQ.
  • Know Python or JavaScript? Spend extra time on static types and conversions (07–09), classes and interfaces (31–39), and generics (45).
  • Returning to C# after years away? Read lessons 03–04, 30, 32–33, 40, 43–46, 55 and 61 for what's changed since C# 8.

Practice resources

  • Playground — a starter program to experiment with.
  • Exercises — 42 fill-in-the-blank tasks and five programming challenges.
  • Quiz — 30 questions with explanations.