Skip to content

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 yetVol 0: Developer Workshop — install JDK, write HelloWorld, learn Git & Docker
Can write HelloWorld, want to learn programming systematicallyVol 1: Programming Basics — variables, OOP, collections, concurrency
Understand the basics, want to learn industry-level toolingVol 0 ch03ch05ch07

I am an experienced developer —

If you…Start here
Switch between languages but lack systematic knowledgeTake the pre-requisite test in Vol 1 Index, pick the chapters you need
Want to understand backend/database/distributed systemsLearning Paths → choose your track
Need a specific topicUse the search bar in the top-right corner — all chapters are searchable

Prerequisites for Each Volume

VolumeRecommended Prerequisites
Vol 0None — even if you've never written a line of code
Vol 1Can find the terminal, type javac / python3 — or start from Vol 0
Vol 2Variables, loops, functions (Vol 1 ch01-06)
Vol 3Some C/assembly knowledge
Vol 4Basic programming skills
Vol 5Basic data structures
Vol 6At least one OOP language mastered
Vol 7Basic networking + basic databases
Vol 8Basic programming
Vol 9Proficient in at least one statically typed language
Vol 10High school math
Vol 11Proficient in at least one programming language
Vol 12Basic Python + basic statistics
Vol 13Calculus + 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.

Built with VitePress | Software Systems Atlas