← Explore learning paths

For C# developers

C# Programming

Build a deeper understanding of C# types, memory, asynchronous code, and modern language features.

36 lessons ready to readFree to readLearn at your own pace
Read the first lesson → Sign in to track your progress →
01 / READ

Start with a lesson that meets you where you are.

02 / PRACTICE

Try questions to check what you understand.

03 / RETURN

Sign in to keep your practice progress together.

Lessons

36 of 68 topics have lessons available today. Choose any available lesson.

  1. 01

    C# Fundamentals & Type System

    Read the lesson, then try the practice.

  2. 02

    Compilation & IL Model

    Read the lesson, then try the practice.

  3. 03

    Compilation Pipeline

    Read the lesson, then try the practice.

  4. 04

    Value vs Reference Semantics

    Read the lesson, then try the practice.

  5. 05

    Stack vs Heap Allocation

    Read the lesson, then try the practice.

  6. 06

    Copying vs Sharing

    Read the lesson, then try the practice.

  7. 07

    Boxing & Unboxing

    Read the lesson, then try the practice.

  8. 08

    Nullability & Flow Analysis

    Read the lesson, then try the practice.

  9. 09

    Nullable Reference Types

    Read the lesson, then try the practice.

  10. 10

    Modern Language Features

    Read the lesson, then try the practice.

  11. 11

    Pattern Matching

    Read the lesson, then try the practice.

  12. 12

    Switch Expressions

    Read the lesson, then try the practice.

  13. 13

    Records & Immutability

    Read the lesson, then try the practice.

  14. 14

    Record Types

    Read the lesson, then try the practice.

  15. 15

    Primary Constructors

    Read the lesson, then try the practice.

  16. 16

    Collection Expressions

    Read the lesson, then try the practice.

  17. 17

    Spread Elements

    Read the lesson, then try the practice.

  18. 18

    Advanced Type System

    Read the lesson, then try the practice.

  19. 19

    Generics & Variance

    Read the lesson, then try the practice.

  20. 20

    Covariance & Contravariance

    Read the lesson, then try the practice.

  21. 21

    Interfaces & Static Abstracts

    Read the lesson, then try the practice.

  22. 22

    Performance & Memory

    Read the lesson, then try the practice.

  23. 23

    Structs & Ref Structs

    Read the lesson, then try the practice.

  24. 24

    Memory Views

    Read the lesson, then try the practice.

  25. 25

    Span<T> & ReadOnlySpan<T>

    Read the lesson, then try the practice.

  26. 26

    Unsafe & Low-Level

    Read the lesson, then try the practice.

  27. 27

    Async & Functional Patterns

    Read the lesson, then try the practice.

  28. 28

    Delegates & Lambdas

    Read the lesson, then try the practice.

  29. 29

    Async/Await Semantics

    Read the lesson, then try the practice.

  30. 30

    Error Handling Patterns

    Read the lesson, then try the practice.

  31. 31

    Metaprogramming & Evolution

    Read the lesson, then try the practice.

  32. 32

    Attributes & Metadata

    Read the lesson, then try the practice.

  33. 33

    Source Generators

    Read the lesson, then try the practice.

  34. 34

    C# 11-12 Features

    Read the lesson, then try the practice.

  35. 35

    C# 13-14

    Read the lesson, then try the practice.

  36. 36

    C# 15

    Read the lesson, then try the practice.

Topics without lessons yet

These are part of the outline. Lessons are not available for them yet.

  • IL & JIT Compilation
  • Assembly Metadata
  • Null-State Analysis
  • Null-Forgiving Operator
  • Property & Positional Patterns
  • List & Relational Patterns
  • Init-only & Required
  • Unified Collection Syntax
  • Generic Constraints
  • Generic Type Inference
  • Default Interface Members
  • Static Abstract Members
  • Extension Members
  • Struct Design
  • Ref Structs
  • Readonly Structs
  • Memory<T> & Async
  • Pointer Types
  • Fixed Buffers
  • Delegate Types
  • Lambda Expressions
  • Func & Action Types
  • Async State Machine
  • Task & ValueTask
  • ConfigureAwait
  • Exception Semantics
  • Result Modeling
  • Custom Attributes
  • Reflection Access
  • Roslyn Generators
  • Generator Patterns
  • Language Evolution