System Programming — Ordered Learning Path (Zero → Mastery)
This learning path takes you from absolute beginner to system programming mastery. Follow the sections in order for the best learning experience. Each section builds on the knowledge from previous sections.
1. Foundations (Must Come First)
Build a solid foundation in computer science fundamentals before diving into systems programming.
| Topic | Description |
|---|---|
| Binary and Hexadecimal Deep Dive | Understand number systems that computers use |
| Math for Programming | Essential mathematics for systems programming |
| Data Structures from First Principles | Core data structures every programmer needs |
| Algorithms Deep Dive | Algorithm design and analysis |
| Computer Systems (CSAPP) | A programmer’s perspective on computer systems |
| CSAPP Deep Learning Projects | Hands-on projects from CSAPP 3rd Edition |
2. Core C & Toolchain (Systems Baseline)
Master C programming and the essential tools for systems development.
| Topic | Description |
|---|---|
| C ABI Deep Dive | Application Binary Interface essentials |
| C Linking Deep Dive | Understanding the linker and linking process |
| Shared Libraries Projects | Working with shared/dynamic libraries |
| C Performance Deep Dive | Performance optimization in C |
| C Secure Coding Deep Dive | Writing secure C code |
| GNU Make Deep Dive | Build automation with Make |
| Build Systems Projects | Modern build systems and practices |
| GDB Deep Dive | Debugging with GDB |
| LLDB Deep Dive | Debugging with LLDB |
3. Linux / Unix Internals
Deep dive into the operating system that powers most servers and embedded systems.
| Topic | Description |
|---|---|
| Linux CLI Mastery | Command-line proficiency |
| Linux/Unix Internals Deep Dive | Core OS internals |
| Linux System Tools Mastery | Essential system administration tools |
| systemd Projects | Modern Linux init system |
| Linux Crash Dump Analysis | Debugging system crashes |
| BPF/eBPF Linux | Linux observability and tracing |
| SELinux Deep Dive | Security-Enhanced Linux |
4. Processes, Memory, Concurrency
Master the core concepts of process management, memory, and concurrent programming.
| Topic | Description |
|---|---|
| Concurrency: Threads & Semaphores | Thread synchronization primitives |
| Concurrency & Parallel Programming | Parallel computing patterns |
| C++ Concurrency and Parallelism | Modern C++ concurrency |
| NUMA vs UMA Architectures | Memory architecture deep dive |
| File Synchronization | File locking and synchronization |
5. Operating Systems (Deep Systems)
Build and understand operating systems from the ground up.
| Topic | Description |
|---|---|
| Operating Systems from First Principles | OS concepts and implementation |
| OS Kernel Projects (Track A) | Build your own kernel |
| Microkernels | Microkernel architecture |
| Linux Kernel Deep Dive | Linux kernel internals |
| SerenityOS Deep Dive | Modern hobbyist OS study |
6. Hardware & Architecture
Understand the hardware that runs your software.
| Topic | Description |
|---|---|
| CPU & ISA Architecture | Processor architecture fundamentals |
| ARM Deep Dive | ARM architecture |
| ARM Assembly Projects | Programming in ARM assembly |
| Bare Metal Programming | Programming without an OS |
| Bootloader Deep Dive | System boot process |
| Verilog from Zero | Hardware description language |
7. Embedded & Firmware
Program microcontrollers and embedded systems.
| Topic | Description |
|---|---|
| Firmware Deep Dive | Firmware development |
| RTOS from Scratch in C | Build a real-time operating system |
| ESP32 Programming Projects | ESP32 microcontroller projects |
| ESP32 Without Arduino | Native ESP32 development |
| Embedded Linux | Linux on embedded systems |
| Embedded Linux Deep Dive | Advanced embedded Linux |
8. Binary Analysis & Reverse Engineering
Analyze and understand compiled binaries.
| Topic | Description |
|---|---|
| Disassembly from Scratch | Reading assembly code |
| Binary Analysis | Analyzing executable files |
| Reverse Engineering Linux | Linux reverse engineering |
| Windows PE/DLL Deep Dive | Windows executable formats |
9. Networking at the Systems Level
Low-level network programming and protocols.
| Topic | Description |
|---|---|
| Network Protocols: Spec to Practice | Implementing network protocols |
| SSH Deep Dive | Secure Shell protocol |
| SSL/TLS Network Security | Transport layer security |
| WireGuard Deep Dive | Modern VPN protocol |
| VPN: WireGuard & Tailscale | VPN implementation |
10. Virtualization & Isolation
Container and virtual machine technologies.
| Topic | Description |
|---|---|
| Hypervisor & Virtualization Deep Dive | Hypervisor internals |
| Virtualization & Hyperconvergence | Modern virtualization |
| Linux Distribution Building | Build your own Linux distro |
11. Advanced Runtime & Language Internals
Compiler and runtime system implementation.
| Topic | Description |
|---|---|
| LLVM Projects | LLVM compiler infrastructure |
| Compilers & Interpreters | Language implementation |
| Interpreters Deep Dive | Building interpreters |
| Programming Language Construction | Designing programming languages |
| Modern Garbage Collectors | Memory management systems |
| Modern GC Deep Dive | Advanced GC algorithms |
12. Cross-platform System Programming
Windows systems programming.
| Topic | Description |
|---|---|
| Win32 API Deep Dive | Windows API programming |
| Windows Architecture | Windows OS internals |
| Windows Systems Programming (C++) | Windows C++ development |
| Windows Execution Model | Process and thread management |
13. Mastery / Synthesis
Apply everything you’ve learned to real-world projects.
| Topic | Description |
|---|---|
| Systems Libraries (Phase 2, Track B) | Building system libraries |
| Systems Integration (Sprint 5) | Integration projects |
Learning Tips
- Follow the order: Each section builds on previous knowledge
- Do the projects: Reading alone isn’t enough—build things
- Debug everything: Use GDB/LLDB constantly to understand what’s happening
- Read source code: Study real implementations (Linux kernel, glibc, etc.)
- Join communities: r/osdev, Handmade Network, OSDev.org forums