A fast, navigable React knowledge base for sharpening software-engineering fundamentals — built for interview prep and quick refreshers. Nothing needs to be read in order: use the sidebar (with live filter) or the home grid to jump anywhere.
npm install # already done
npm run dev # start the dev server (prints a localhost URL)Then open the printed URL (e.g. http://localhost:5173).
Other scripts:
npm run build # production build into dist/
npm run preview # serve the production buildPushing to main builds the site and publishes it to GitHub Pages via
.github/workflows/deploy.yml. One-time setup: in the repo, go to
Settings → Pages → Build and deployment → Source and select
GitHub Actions.
The site is served from the project subpath, so the production build sets
Vite's base to /dev-learning/ (see vite.config.js); local dev/preview
stay at the root path. Routing uses HashRouter, so deep links and refreshes
work on Pages without extra 404 handling.
Live URL: https://dotanrs.github.io/dev-learning/
14 chapters · 100 topics · 358 flashcards · 379 self-test questions.
- Data Structures — arrays, hash maps, trees/graphs, BFS/DFS, binary search, DP, heaps, intervals, sliding window, two pointers (brain-teaser focused)
- CS Fundamentals — how to calculate time complexity + complexity riddles (hash tables, trees, tries, graphs, heaps, union-find)
- Algorithms — sorting, graph algorithms, topological sort, Dijkstra, DP, greedy, recursion vs iteration
- System Design — URL shortener, chat, metrics, distributed cache, job scheduler, file storage, recommendations, event pipeline (with "how to manage it" flashcards)
- Operating Systems — threads vs processes, locks, deadlocks, scheduling, virtual memory, paging, mmap, file systems, networking basics
- Concurrency — mutexes, semaphores, condition variables, producer-consumer, thread pools, lock-free, atomics, memory ordering (with code)
- Networking — TCP/UDP, HTTP/2, HTTP/3, TLS, DNS, connection lifecycle, keep-alive, load balancing (FAQ style)
- Python — GIL, asyncio, generators, decorators, context managers, typing, dataclasses, GC, multiprocessing
- Low-Level & Systems at Scale — GPUs, CUDA, AI infra, HPC, autonomous vehicles, networking/Mellanox, distributed AI training, data-center software
- Relevant Math — logarithms & exponentials, tree-height proofs (balanced ⇒ log n, sorting ⇒ n log n), summations & series (arithmetic/geometric/harmonic), combinatorics & probability
- Statistics & Probability Theory — the Master Theorem (recurrences), common distributions (Bernoulli, Binomial, Geometric, Poisson, Normal, Exponential), conditional probability, key theorems (LLN, CLT, Bayes, Markov/Chebyshev)
- Logic & Foundational Theorems — propositional/predicate logic, Gödel's incompleteness theorems, computability & undecidability (halting problem, Rice's theorem), other landmarks (Cantor, Russell, P vs NP, Cook–Levin)
- LeetCode Patterns — arrays & hashing, two pointers & sliding window, binary search, linked lists, trees & traversals, graphs & dynamic programming (worked solutions with complexity analysis)
- C++ for Python Developers — compilation & build model, static typing &
auto, values/references/pointers, memory/RAII/smart pointers, STL containers & algorithms, classes & the Rule of Five, templates, move semantics (with Python contrasts and per-topic exercises)
- Non-linear navigation — collapsible sidebar, searchable topic filter, home grid, and prev/next paging.
- 🃏 Flashcards — click to reveal the answer.
- 🧠 Test-yourself — multiple-choice (instant right/wrong feedback + explanation) and open brain-teasers (reveal the worked answer).
src/
App.jsx # routing + layout
components/ # Sidebar, Home, ContentView, Flashcards, Quiz
content/
index.js # aggregates chapters + builds nav/paging index
ch1-data-structures.js … ch9-low-level.js # all content lives here
To edit or add content, open the relevant content/ch*.js file — each exports a
chapter object of { id, title, subchapters: [{ id, title, body, flashcards, quiz }] }.
body is Markdown; quiz items with options are multiple-choice (answer is
the 0-based index), otherwise they're open questions (answer is a string).