For C# developers
C# Programming
Build a deeper understanding of C# types, memory, asynchronous code, and modern language features.
Start with a lesson that meets you where you are.
Try questions to check what you understand.
Sign in to keep your practice progress together.
Lessons
36 of 68 topics have lessons available today. Choose any available lesson.
- 01
C# Fundamentals & Type System
Read the lesson, then try the practice.
- 02
Compilation & IL Model
Read the lesson, then try the practice.
- 03
Compilation Pipeline
Read the lesson, then try the practice.
- 04
Value vs Reference Semantics
Read the lesson, then try the practice.
- 05
Stack vs Heap Allocation
Read the lesson, then try the practice.
- 06
Copying vs Sharing
Read the lesson, then try the practice.
- 07
Boxing & Unboxing
Read the lesson, then try the practice.
- 08
Nullability & Flow Analysis
Read the lesson, then try the practice.
- 09
Nullable Reference Types
Read the lesson, then try the practice.
- 10
Modern Language Features
Read the lesson, then try the practice.
- 11
Pattern Matching
Read the lesson, then try the practice.
- 12
Switch Expressions
Read the lesson, then try the practice.
- 13
Records & Immutability
Read the lesson, then try the practice.
- 14
Record Types
Read the lesson, then try the practice.
- 15
Primary Constructors
Read the lesson, then try the practice.
- 16
Collection Expressions
Read the lesson, then try the practice.
- 17
Spread Elements
Read the lesson, then try the practice.
- 18
Advanced Type System
Read the lesson, then try the practice.
- 19
Generics & Variance
Read the lesson, then try the practice.
- 20
Covariance & Contravariance
Read the lesson, then try the practice.
- 21
Interfaces & Static Abstracts
Read the lesson, then try the practice.
- 22
Performance & Memory
Read the lesson, then try the practice.
- 23
Structs & Ref Structs
Read the lesson, then try the practice.
- 24
Memory Views
Read the lesson, then try the practice.
- 25
Span<T> & ReadOnlySpan<T>
Read the lesson, then try the practice.
- 26
Unsafe & Low-Level
Read the lesson, then try the practice.
- 27
Async & Functional Patterns
Read the lesson, then try the practice.
- 28
Delegates & Lambdas
Read the lesson, then try the practice.
- 29
Async/Await Semantics
Read the lesson, then try the practice.
- 30
Error Handling Patterns
Read the lesson, then try the practice.
- 31
Metaprogramming & Evolution
Read the lesson, then try the practice.
- 32
Attributes & Metadata
Read the lesson, then try the practice.
- 33
Source Generators
Read the lesson, then try the practice.
- 34
C# 11-12 Features
Read the lesson, then try the practice.
- 35
C# 13-14
Read the lesson, then try the practice.
- 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