Welcome, Adventurer
Before you step into the world of software systems, we need to answer one question: What do you already know?
How to Use This Atlas
Non-linear reading, follow your needs. This site is not a textbook that you have to read from cover to cover. Each volume has a clear "prerequisites" section on its home page. Check that first, then choose your entry point.
I am an absolute beginner —
| If you… | Start here |
|---|---|
| Haven't installed a programming environment yet | Vol 0: Developer Workshop — install JDK, write HelloWorld, learn Git & Docker |
| Can write HelloWorld, want to learn programming systematically | Vol 1: Programming Basics — variables, OOP, collections, concurrency |
| Understand the basics, want to learn industry-level tooling | Vol 0 ch03 → ch05 → ch07 |
I am an experienced developer —
| If you… | Start here |
|---|---|
| Switch between languages but lack systematic knowledge | Take the pre-requisite test in Vol 1 Index, pick the chapters you need |
| Want to understand backend/database/distributed systems | Learning Paths → choose your track |
| Need a specific topic | Use the search bar in the top-right corner — all chapters are searchable |
Prerequisites for Each Volume
| Volume | Recommended Prerequisites |
|---|---|
| Vol 0 | None — even if you've never written a line of code |
| Vol 1 | Can find the terminal, type javac / python3 — or start from Vol 0 |
| Vol 2 | Variables, loops, functions (Vol 1 ch01-06) |
| Vol 3 | Some C/assembly knowledge |
| Vol 4 | Basic programming skills |
| Vol 5 | Basic data structures |
| Vol 6 | At least one OOP language mastered |
| Vol 7 | Basic networking + basic databases |
| Vol 8 | Basic programming |
| Vol 9 | Proficient in at least one statically typed language |
| Vol 10 | High school math |
| Vol 11 | Proficient in at least one programming language |
| Vol 12 | Basic Python + basic statistics |
| Vol 13 | Calculus + linear algebra + probability + proficient Python |
Conventions
- Code blocks are annotated with the language and any special runtime environment.
- "What happens" sections explain the underlying mechanism after each code example.
- "Try it" sections provide small challenges for you to modify the code immediately.
- Key concept: terms that appear for the first time are bolded.
- Notes in blockquotes summarize what to remember or what pitfalls to avoid.
Alright, adventurer. If you're ready — choose your volume and dive in. The knowledge map is yours to explore.