How to use this roadmap
- Go through topics top to bottom — later topics (thread pools, async models, parallel patterns) assume you're comfortable with locks, semaphores, and deadlocks from the earlier ones.
- The theory here is deliberately language-agnostic — these are operating-system and computer-science fundamentals, not one language's API. Reference implementations in Go, Java, Kotlin, Python, and JavaScript exist purely to ground each concept in real code. Go is the default — it is the primary language on this track.
- Where a pattern genuinely can't be expressed in one of those five languages (e.g. a language with no OS-level threads), that's called out explicitly rather than forced.
- This is an independent track in the interview prep collection: its own progress, its own “come back later” list, and no interview countdown.
The Roadmap
- 1
What a thread actually is, and why concurrency is hard in the first place.
- 2
Why unsynchronized shared state breaks, precisely.
- 3
The first real tool for fixing races — and its costs.
- 4
The canonical textbook problems interviewers keep coming back to.
- 5
Waiting for a condition without busy-spinning.
- 6
When synchronization itself becomes the bug.
- 7
Why 'it works on my machine' is scariest here — visibility and reordering.
- 8
Higher-level building blocks for multi-thread choreography.
- 9
Stop creating threads by hand — manage them as a resource.
- 10
Concurrency without OS threads: event loops and coroutines.
- 11
Using many cores to make one computation faster, not just many things happen at once.
- 12
The capstone: named patterns interviewers actually ask you to implement.