Foundations Roadmap

Algorithms, C++ (PPP3), Discrete Math (Epp), and Neetcode

No fixed calendar. The sequence matters, the clock doesn't — depth over schedule.

A note on the C++ track: reading leads with PPP3 (Stroustrup's Programming: Principles and Practice, 3rd ed.) — it's built as a real introduction to programming, not just C++ syntax, and covers the early foundational material in more depth than Tour of C++ does. PPP3 is about half the size of PPP2 because concurrency, numerics, and some advanced-template material were pushed to free web-only chapters rather than the printed book. Where that leaves a gap — generic programming/concepts, concurrency, numerics — Tour of C++ stays in as a secondary reference, flagged where it appears.


PHASE 0: THE LAUNCHPAD

Building the Foundation

Reading

Micro-Projects

Neetcode

None yet — focus on math and C++ basics.


PHASE 1: FOUNDATIONS OF ALGORITHM ANALYSIS

Reading

Micro-Projects

Neetcode — Arrays & Hashing (warm-up)


PHASE 2: ELEMENTARY DATA STRUCTURES

Reading

Micro-Projects

Neetcode

Linked List: Reverse Linked List · Merge Two Sorted Lists · Linked List Cycle · Remove Nth Node From End of List

Stack: Valid Parentheses · Min Stack · Evaluate Reverse Polish Notation

Hash Map: Contains Duplicate II


PHASE 3: SORTING & DESIGN PARADIGMS

Reading

Micro-Projects

Neetcode — Sorting & Divide and Conquer


PHASE 4: TREES, HEAPS & ADVANCED STRUCTURES

Reading

Micro-Projects

Neetcode

Trees: Invert Binary Tree · Maximum Depth of Binary Tree · Subtree of Another Tree · Binary Tree Level Order Traversal · Validate Binary Search Tree · Lowest Common Ancestor of BST · Binary Tree Maximum Path Sum · Construct Binary Tree from Preorder/Inorder · Serialize and Deserialize Binary Tree

Heap / Priority Queue: Find Median from Data Stream · Top K Frequent Elements · Kth Largest Element in a Stream · Last Stone Weight

Trie: Implement Trie (Prefix Tree) · Design Add and Search Words Data Structure · Word Search II


PHASE 5: GRAPH ALGORITHMS

Reading

Micro-Projects

Neetcode

Graphs (BFS/DFS): Number of Islands · Clone Graph · Pacific Atlantic Water Flow · Surrounded Regions · Course Schedule · Course Schedule II

Shortest Path: Network Delay Time (Dijkstra's) · Cheapest Flights Within K Stops (Bellman-Ford) · Path with Minimum Effort

Union Find / MST: Number of Connected Components in an Undirected Graph · Graph Valid Tree · Redundant Connection

Graph Advanced: Word Ladder (BFS) · Alien Dictionary (Topological Sort)


PHASE 6: STRINGS, EXTERNAL MEMORY & ADVANCED DATA STRUCTURES

Reading

Micro-Projects

Neetcode

String Matching: Longest Substring Without Repeating Characters · Longest Repeating Character Replacement · Minimum Window Substring · Group Anagrams

Sliding Window: Sliding Window Maximum · Longest Substring with At Most K Distinct Characters

Trie (revisited): Design Search Autocomplete System


PHASE 7: LIMITS OF ALGORITHMIC POWER

Reading

Micro-Projects

Neetcode

Backtracking: Subsets · Subsets II · Combination Sum · Combination Sum II · Permutations · N-Queens · Sudoku Solver

Dynamic Programming (1D): Climbing Stairs · House Robber · House Robber II · Decode Ways · Coin Change · Coin Change II

Dynamic Programming (2D): Longest Palindromic Substring · Edit Distance · Unique Paths · Minimum Path Sum · Longest Common Subsequence

Dynamic Programming (Advanced): Word Break · Word Break II · Maximum Product Subarray · Best Time to Buy and Sell Stock (all versions)


PHASE 8: APPENDICES & INTEGRATION

Reading

Micro-Project

Neetcode — review

Median of Two Sorted Arrays (revisit with recurrence understanding) · Merge k Sorted Lists (revisit with heap understanding) · Trapping Rain Water (revisit with two-pointer)


PHASE 9: THE MACRO-PROJECT

All Content Applied — Choose One Capstone

Option A: Real-Time Route Planner

Option B: Full-Text Search Engine

Option C: Network Packet Routing Simulator

Option D: Cryptography Toolkit

Neetcode

Ongoing alongside the capstone — focus on Hard problems you previously skipped, revisit Medium problems from early phases, simulate interview conditions (30 min/problem).


Beyond the Roadmap

The roadmap builds the substrate. Each step past it swaps in a new language on purpose — because each gap is best closed in the language built for it, not by forcing everything back through C++.

Compiler — OCaml, via Real World OCaml. Algebraic data types and pattern matching fit ASTs and type checkers cleanly. Build it in OCaml, not just after reading about it — your recursion-heavy phases (4, 5, 7) already prime the functional instincts this needs.

Distributed KV store — Rust, via The Rust Book. Rust's ownership model formalizes the RAII discipline from Phases 2 and 4, so this reads more like a stricter dialect of what you already know than a new paradigm. Pair it with a from-scratch Raft implementation — the book teaches the language, not consensus.

Full-stack / microservices — Go + JS. Let's Go and Let's Go Further (Alex Edwards) cover the backend in Go: routing, middleware, a real database layer, auth, deployment. Eloquent JavaScript covers the frontend. Containers, service discovery, and message queues remain open past a single Go service — that's the step into microservices proper.

Step Language Resource
1. This roadmap C++ PPP3 → Tour of C++ (later phases)
2. Compiler OCaml Real World OCaml
3. Distributed KV store Rust The Rust Book
4. Full-stack / microservices Go + JS Let's Go / Let's Go Further, Eloquent JavaScript

No deadline. Just don't stop.