A rigorous, project-heavy self-study curriculum designed to build world-class expertise in algorithms, low-level systems, and modern AI infrastructure. Inspired by the core systems tracks at CMU, MIT, Stanford, and UC Berkeley.
The goal: become an elite algorithmic systems engineer capable of designing and implementing high-performance, scalable infrastructure—from kernels and distributed systems to deep learning frameworks.
This roadmap prioritizes deep understanding through implementation over rote problem-solving.
| # | Language(s) | Topic | Course / Resource | Primary Textbook / Companion | Notes / Projects |
|---|---|---|---|---|---|
| 1 | Java | Algorithms (Implementation) | Princeton Algorithms (Coursera Parts I & II) | Algorithms, 4th Ed. – Sedgewick & Wayne | Union-Find, Deques, Collinear Points, Priority Queues |
| 2 | – | Discrete Mathematics | UC Berkeley CS70 | Course notes + archived lectures | Proofs, Induction, Modular Arithmetic, Probability |
| 3 | Python | Algorithms (Intro Paradigms) | MIT 6.006 Introduction to Algorithms | Introduction to Algorithms (CLRS) | Dynamic Programming, Greedy, Graph Algorithms |
| 4 | Python | Algorithms (Advanced) | UC Berkeley CS170 | Algorithms – Dasgupta, Papadimitriou, Vazirani | NP-completeness, Approximation, Advanced Techniques |
| 5 | C | Computer Systems | CMU 15-213 (CS:APP) | Computer Systems: A Programmer's Perspective 3rd Ed. | Data Lab, Bomb Lab, Attack Lab, Cache Lab, Malloc Lab |
| 6 | C++ | Database Systems | CMU 15-445/645 Introduction to Database Systems | Database System Concepts | BusTub: Build a full DBMS from scratch |
| 7 | C | Operating Systems | MIT 6.1810 (formerly 6.S081) | Operating Systems: Three Easy Pieces (OSTEP) | xv6 labs: Threads, File Systems, Networking, etc. |
| 8 | C++ | Computer Networking | Stanford CS144 | Computer Networking – Kurose & Ross + TCP/IP Illustrated Vol 1 | Full TCP/IP stack implementation |
| 9 | Go | Distributed Systems | MIT 6.5840 (formerly 6.824) | Designing Data-Intensive Applications (DDIA) + Tanenbaum | MapReduce, Raft consensus, Sharded KV store |
| 10 | C++ (CUDA/ISPC) | Parallel Computing | Stanford CS149 | Lecture notes only | SIMD, GPU programming, performance optimization |
| 11 | OCaml | Compilers | Nora Sandler – Writing a C Compiler + Stanford CS143 lectures | Writing a C Compiler (No Starch Press, 2024) | Full C → x86-64 compiler (test-driven, real subsets) |
| 12 | C++ + Python | ML/DL Systems | CMU 10-414/11-714 Deep Learning Systems | Lecture notes + assignments | Mini deep learning framework (tensors, autograd, CUDA, distributed) |
- Depth over breadth: Each course includes heavy programming projects that force real understanding.
- Build real things: From a full database engine to a TCP stack to a C compiler—portfolio artifacts that stand out.
- Progressive complexity: Start with clean implementations (Java), build math foundations, then dive into low-level C/C++ and modern systems.
- Princeton Algorithms
- CS70 Discrete Math
- MIT 6.006
- CS170
- CMU 15-213 (CS:APP)
- CMU 15-445 (Database)
- MIT 6.1810 (OS)
- Stanford CS144 (Networking)
- MIT 6.5840 (Distributed)
- Stanford CS149 (Parallel)
- Compilers (Nora Sandler)
- CMU 10-414 (DL Systems)
- All course websites are publicly available (links in table above).
- Books: Invest in CSAPP, CLRS, DDIA, and Nora Sandler's compiler book.
- GitHub: This repo will host writeups, extended labs, and integrated projects as completed.
This roadmap is built for those who want to understand how everything works—from bits to distributed machine learning—while creating tangible, impressive artifacts along the way.
"The best way to learn is to build."
Feel free to fork, star, or reach out if you're following a similar path.
Made with 🔥 by [Umar Adelowo/Hullaah] – December 2025