Skip to content

C, C++ Systems Engineering Learning Path

A 12-week curriculum that takes a working C programmer to production-depth knowledge of C, modern C++17, concurrency, debugging, Linux, databases and distributed systems, built around one real project: a multithreaded TCP key-value server.

Every module follows the same shape: plain words first, then the real mechanism, complete code, what happens under the hood, how it fails in production, exercises, and interview questions.

Start here: the 12-week plan Set up your machine

The courses

  • Environment Setup

    WSL, GCC 13, CMake, gdb, Valgrind and sanitizers working on day one.

    2 modules ·

    Open

  • C Programming

    Types, pointers, memory, strings, layout, UB, allocators, POSIX, pthreads, legacy code.

    16 modules ·

    Open

  • Modern C++17

    RAII, move semantics, smart pointers, STL internals, templates, vtables, UB.

    14 modules ·

    Open

  • Data Structures & Algorithms

    From complexity to B+trees, graphs and DP, plus a 10-week interview problem plan.

    16 modules ·

    Open

  • Concurrency

    Threads, mutexes, condition variables, atomics and the memory model, thread pools, Win32.

    13 modules ·

    Open

  • Memory, Debugging & RCA

    Process memory, malloc internals, gdb, core dumps, WinDbg, sanitizers, writing an RCA.

    13 modules ·

    Open

  • Linux, Toolchain & DevOps

    The linker, GCC flags, CMake, GoogleTest, Git, Docker, CI, systems calls.

    12 modules ·

    Open

  • Database Internals

    Pages, B-trees, WAL, MVCC, EXPLAIN, PL/pgSQL, Berkeley DB, YugabyteDB, Redis.

    14 modules ·

    Open

  • Networking & Distributed Systems

    TCP, sockets, epoll, RPC, HTTP, consistency, Raft, sharding, system design.

    14 modules ·

    Open

  • OOP, Patterns & Architecture

    SOLID, ownership design, patterns in modern C++, server architecture, LLD walkthroughs.

    12 modules ·

    Open

  • Capstone Projects

    Build tcpkv step by step, sanitizer-clean and CI-green; optional minidb storage engine.

    10 steps ·

    Open

How to use this site

  1. Follow the week-by-week table in Start here. Study three or four courses in parallel, one module per sitting.
  2. Type the code yourself. Every program is linked to GitHub and builds with -Wall -Wextra -Werror on GCC 13.
  3. Press Mark as done at the top of a module when you can say its recap out loud without looking. Your progress is saved in this browser only.
  4. Use the search box (press /) to find any topic across all courses.