Tutorials Roadmap
Hands-on tutorials that turn vault theory into working code. Each tutorial is self-contained — copy-paste and run.
Philosophy: Implement it from scratch first, understand every line, then use libraries. You don’t understand it until you’ve built it.
Prerequisites
- GCC, Make, GDB, Valgrind
- Python 3.10+, NumPy, Matplotlib
- For embedded tutorials: STM32 board + OpenOCD (or simulation notes provided)
# C toolchain (Linux)
sudo apt install gcc make gdb valgrind
# Python
pip install numpy matplotlib scipyPhase 1 — Data Structures and Algorithms in C
Build core data structures from scratch in C. No libraries, no magic.
| # | Tutorial | Vault Foundation | Difficulty |
|---|---|---|---|
| 01 | 01 - Build a Hash Table in C | Hash Tables, C Language Essentials | Beginner |
| 02 | 02 - Implement Merge Sort in C | Sorting Algorithms, Recursion, Big O Notation | Beginner |
Phase 2 — Systems Programming, OS, and Networking
Write C that talks to the kernel. Processes, sockets, debugging.
| # | Tutorial | Vault Foundation | Difficulty |
|---|---|---|---|
| 03 | 03 - Debug a Segfault with GDB | Debugging with GDB, Pointers and Memory | Beginner |
| 04 | 04 - Build a Mini Shell | Processes and Threads, System Calls, File IO in C | Intermediate |
| 05 | 05 - TCP Echo Server from Scratch | TCP Protocol, Socket Programming | Intermediate |
| 06 | 06 - Build a Thread Pool in C | Concurrency and Synchronization, Processes and Threads | Advanced |
Phase 3 — Embedded Systems and Electrical Foundations
Cross into hardware. GPIO, serial protocols, sensors.
| # | Tutorial | Vault Foundation | Difficulty |
|---|---|---|---|
| 07 | 07 - Bare Metal Blinky on STM32 | GPIO and Digital IO, Microcontroller Architecture, Memory-Mapped IO | Beginner |
| 08 | 08 - UART Serial Console from Scratch | UART SPI I2C, Interrupts and Timers | Intermediate |
| 09 | 09 - Read a Sensor over I2C | UART SPI I2C, ADC and DAC, Memory-Mapped IO | Intermediate |
Phase 4 — Control Theory and Robotics
Close the loop. Simulate before you build.
| # | Tutorial | Vault Foundation | Difficulty |
|---|---|---|---|
| 10 | 10 - PID Controller Simulation | PID Controller, Open Loop vs Closed Loop | Beginner |
| 11 | 11 - Kalman Filter for Noisy Sensor Data | Kalman Filter, State Space Representation | Intermediate |
| 12 | 12 - Simulate a 2-Link Robot Arm | Kinematics, PID Controller, State Space Representation | Advanced |
Phase 5 — Advanced Systems
Lock-free concurrency, network protocols, and compilers.
| # | Tutorial | Vault Foundation | Difficulty |
|---|---|---|---|
| 13 | 13 - Lock-Free Data Structures in C | Concurrency and Synchronization, C Language Essentials | Advanced |
| 14 | 14 - TCP IP Stack from Scratch | TCP Protocol, Socket Programming | Advanced |
| 15 | 15 - Build a Tiny Compiler | C Language Essentials, Algorithms | Advanced |
Suggested Learning Paths
Path A: “I want to write real C” (systems track)
01 → 02 → 03 → 04 → 05 → 06
Path B: “I want to build embedded systems” (hardware track)
01 → 03 → 07 → 08 → 09
Path C: “I want to build robots” (control track)
10 → 11 → 12 → 07 → 09
Path D: “Give me the exit criteria” (minimum viable)
01 → 02 → 03 → 05 → 07 → 10 → 11
Path E: “I want to build systems from scratch” (advanced)
13 → 14 → 15 → 06
How to Use These Tutorials
- Read the vault note first — understand the concept
- Work through the tutorial — run every code block, modify values, break things
- Do the exercises — they force you to think, not just copy
- Connect back — each tutorial links to related vault notes and next tutorials
The goal is not to type code. It’s to understand what every line does and why.