Teach Yourself Computer Science
A short, opinionated guide by Oz Nova and Myles Byrne naming the nine computer science subjects that matter most for software engineers, with one recommended book and one video course for each. It is for self-taught engineers and bootcamp graduates who want to close the gap with a formal CS education, and its value is in what it leaves out.
9
teachyourselfcs.com · Sept 2026
Free guide
teachyourselfcs.com · Sept 2026
Roadmap
Other
Oz Nova and Myles Byrne
1 to 2 years
Intermediate
Free
What it recommends
The guide argues that there are two kinds of software engineers: those who understand computer science well enough to do challenging, innovative work, and those who get by on a few high-level tools. It covers nine subjects, with a single best book and a single best lecture series for each:
- Programming: Structure and Interpretation of Computer Programs, with Berkeley's CS 61A lectures.
- Computer architecture: Computer Systems: A Programmer's Perspective, with Berkeley's CS 61C.
- Algorithms and data structures: Steven Skiena's The Algorithm Design Manual, with his lectures.
- Mathematics for CS: Mathematics for Computer Science by Lehman, Leighton and Meyer, with MIT's 6.042J lectures.
- Operating systems: Operating Systems: Three Easy Pieces, free online, with Berkeley's CS 162.
- Computer networking: Computer Networking: A Top-Down Approach, with Stanford's CS 144.
- Databases: Readings in Database Systems, with Berkeley's CS 186.
- Languages and compilers: Crafting Interpreters, free online, with Alex Aiken's compilers course.
- Distributed systems: Designing Data-Intensive Applications, with MIT's 6.824.
The guide suggests budgeting roughly 100 to 200 hours per subject, and it explains each pick, often with alternatives if the main recommendation does not suit you.
Why one recommendation per subject is the point
Curated lists usually offer five options per topic, which brings back exactly the decision paralysis they were supposed to remove. Committing to one is more useful, and because the authors defend each choice, you can disagree deliberately rather than by accident.
If nine subjects is too much
The guide acknowledges this. For those who find nine subjects overwhelming, it singles out a much smaller core, with Designing Data-Intensive Applications among the highest-return reads for self-taught engineers and bootcamp graduates building networked applications. Doing two subjects properly beats sampling all nine.
How to use it
- Pick one subject based on your work. Backend developers often get the most from architecture, databases or distributed systems.
- Read the book and work its exercises; use the lectures to support it, not replace it.
- Study with others if you can. A reading group with two or three friends makes finishing far more likely.
- Move to the next subject only after finishing the first.
Common questions
Is it for complete beginners? No. It assumes you can already program. Learn a first language and build a few projects before starting.
How long will it take? At 100 to 200 hours per subject, all nine is a multi-year plan alongside work. Plan for that honestly.
How does it compare with OSSU? OSSU is a full degree-style curriculum made of online courses. Teach Yourself CS is shorter and book-centred, aimed at working engineers. Choose OSSU for structure and breadth, this guide for a focused self-study plan.
Best for: self-taught engineers and bootcamp graduates who want to close the gap with a formal CS education and are prepared to do it seriously.
Ready to start?
Opens on Oz Nova and Myles Byrne in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.