Computer Science and Engineering
Every core subject here is about a mechanism you normally only see the output of — a scheduler choosing, a query planner joining, a parser deciding. These are the topics that are hardest to picture from a textbook, so they are the ones this site animates first.
6 core subjects · 71 topics you can watch now · 145 mapped on the roadmap
Start with What is an Operating System? →Operating Systems
Watch the scheduler pick, and the page table fault.
6 units · 11 to watch, 17 to come
Computer Networks
Follow one packet down the stack and across the wire.
6 units · 13 to watch, 12 to come
Theory of Computation
Watch the automaton read the string and decide.
5 units · 13 to watch, 7 to come
Database Management Systems
See the query planner choose, and the transaction roll back.
6 units · 13 to watch, 11 to come
Compiler Design
One source line, all the way to optimised code.
7 units · 13 to watch, 11 to come
Digital Logic Design
Gates, waveforms and state machines that actually run.
6 units · 8 to watch, 16 to come
Also taught in ECE, EEE
About Computer Science and Engineering
The computer science subjects here share a theme: each one removes a layer of magic from something you already use. Operating systems explain how one machine pretends to be many. Databases explain how concurrent access stays consistent. Networks explain how an unreliable medium carries a reliable conversation. Compilers explain what happens to your source. Theory of computation explains what no program can do at all.
A reasonable order is digital logic, then operating systems, then networks and databases in either order, with theory of computation before compilers. That said, each subject stands alone, and starting with whichever one currently frustrates you is a perfectly good plan.
What these subjects have in common is that they are usually taught as static descriptions of dynamic things. A page table, a lock manager, a congestion window and a parse stack all change over time, and the change is the whole content — a snapshot of one shows almost nothing. Every topic in this branch is built around watching that change happen, one step at a time, with the reason for each step written beside it.
What to know first
- One programming language, used enough to have been surprised by it
- No hardware background — the digital-logic track starts from switches
Where it gets used
- Debugging performance problems that cross the application boundary
- Interviewing, where these subjects supply most of the systems questions
- Reading infrastructure and database documentation without hand-waving