Systems and low-level
Understand compiled programming, memory, and the foundations beneath many systems.
#include <stdio.h>
int main(void) {
printf("Hello from C\n");
return 0;
}COURSE CURRICULUM
Finish one section at a time or jump directly to a concept you need.
Learn how from source file to native executable works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how declarations, headers, and translation units works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how variables, storage duration, and scope works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how integer types, structs, and representation works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how operators, bitwise work, and undefined behavior works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how branches, switch statements, and invariants works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how loops, indexes, and sentinel values works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how functions, prototypes, and call stacks works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how arrays, pointers, and pointer arithmetic works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how characters, strings, and buffer boundaries works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how error codes, errno, and defensive checks works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how headers, object files, and linking works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how dynamic memory, ownership, and lifetimes works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how files, streams, and binary data works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.
Learn how testing with sanitizers and debuggers works in C, why the underlying model matters, and how to apply it in a small program without hiding important trade-offs.