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:
- Install the .NET SDK, run single-file programs, and create, build and run projects with the
dotnetCLI. - Use C#'s types, operators, conversions, strings and formatting correctly, including
decimalfor money and culture-aware output. - Control program flow with conditions, switch expressions and loops, and read and validate user input.
- Write methods with clear parameters and return values, including optional, named,
params,refandoutparameters. - Choose and use arrays, lists, dictionaries, sets, queues, stacks, ranges and spans.
- Design classes with constructors, properties, encapsulation, inheritance, polymorphism and interfaces, and choose between classes, structs and records.
- Write null-safe code with nullable types, and use pattern matching and generics effectively.
- Use delegates, lambdas, events and LINQ to filter, transform, group and join data.
- Handle errors with exceptions, manage resources with
using, and work with files, JSON and dates. - 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
| Part | Lessons | Focus |
|---|---|---|
| 1. Getting Started | 01–04 | C# and .NET, the SDK, first program, projects |
| 2. Basics | 05–11 | Syntax, variables, types, math, conversions, operators, input |
| 3. Control Flow | 12–15 | if, switch, while and for loops |
| 4. Strings | 16–19 | String methods, formatting, StringBuilder, regex |
| 5. Methods | 20–24 | Parameters, ref/out, overloading, local functions, recursion |
| 6. Collections | 25–30 | Arrays, lists, dictionaries, sets, queues, stacks, spans |
| 7. Object-Oriented Programming | 31–42 | Classes, properties, inheritance, interfaces, records, enums, equality |
| 8. Types & Patterns | 43–46 | Nullability, pattern matching, generics, extension members |
| 9. Delegates & LINQ | 47–51 | Lambdas, events, LINQ, iterators |
| 10. Errors, Files & Async | 52–58 | Exceptions, using, files, JSON, dates, async, parallelism |
| 11. Projects & Modern C# | 59–63 | Solutions, 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.
| Week | Lessons | Checkpoint |
|---|---|---|
| 1 | 01–08 | Write a program that converts between units, using const values and decimal or double correctly. |
| 2 | 09–15 | Build a number-guessing game that validates input with TryParse and uses loops and a switch expression. |
| 3 | 16–19 | Write a text analyser that reports word counts, the longest word and a formatted summary table. |
| 4 | 20–26 | Split a program into small methods; solve a recursive problem such as listing a folder tree or binary search. |
| 5 | 27–30 | Build a contact book with a Dictionary, plus undo using a Stack. |
| 6 | 31–36 | Model a library with Book and Member classes, encapsulated state and validation. |
| 7 | 37–42 | Add a polymorphic hierarchy or interface (for example different payment methods) and convert data classes to records. |
| 8 | 43–51 | Rewrite earlier loops with LINQ; group and summarise a data set; enable nullable warnings and fix them all. |
| 9 | 52–58 | Save and load your library model as JSON with proper error handling; download or process several items concurrently. |
| 10 | 59–63 | Split 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.