C (C23)
The planned outline of 23 modules. Lessons are written, run and reviewed before they are published.
Planned outline
- Module 1
Getting started: what C is, a compiler and your first program
Coming soon - Module 2
Values, types and variables
Coming soon - Module 3
Operators and expressions
Coming soon - Module 4
Control flow, input and output
Coming soon - Module 5
Functions
Coming soon - Module 6
Arrays, searching and sorting
Coming soon - Module 7
Pointers, part 1: addresses, nullptr, parameters and arithmetic
Coming soon - Module 8
Strings and text
Coming soon - Module 9
Pointers, part 2: indirection, callbacks, generic code and aliasing
Coming soon - Module 10
Structures, unions, enumerations and typedef
Coming soon - Module 11
Dynamic memory: the heap, ownership and memory bugs
Coming soon - Module 12
Files, errors, the command line, time and sockets
Coming soon - Module 13
The preprocessor
Coming soon - Module 14
Multi-file programs, linkage, libraries and the ABI
Coming soon - Module 15
Build tools: make and CMake, warnings and hardening
Coming soon - Module 16
Debugging, undefined behaviour, testing and analysis
Coming soon - Module 17
Bits, bytes and data representation
Coming soon - Module 18
Data structures in C: memory, pointers and APIs
Coming soon - Module 19
Concurrency: C11 threads, mutexes and atomics
Coming soon - Module 20
C23 in depth and what comes next (C2y)
Coming soon - Module 21
Secure and robust C
Coming soon - Module 22
Embedded C on Arm Cortex-M (with QEMU)
Coming soon - Module 23
Exams and interviews: C questions done right
Coming soon
Official documentation
- www.open-std.org/jtc1/sc22/wg14 (open-std.org)
- en.cppreference.com/w/c (en.cppreference.com)
- gcc.gnu.org/onlinedocs (gcc.gnu.org)
- clang.llvm.org/docs/UsersManual.html (clang.llvm.org)
More in Programming languages
- Python (coming soon)
- SQL (PostgreSQL, MySQL, SQLite) (coming soon)
- JavaScript (ES2026) (coming soon)
- Java (JDK 25 LTS) (coming soon)
- All Languages tracks
- How we make lessons