Five tracks. Each builds on the last, but not every module within a track is required to move forward.
Track 1 (Modules 1-3) is drill-heavy on purpose. Slices, maps, structs, errors, testing — you do these until they're automatic. Don't rush through. If the warmups feel hard, re-read the lesson. If the warmups are easy but challenges are hard, that's working as intended — use the hints.
Track 2-3 (Modules 4-7) shift to building real things: CLIs, API clients, concurrency. Projects start appearing. Do the projects — they're portfolio pieces, not homework.
Track 4 (Modules 8-11) is the steepest ramp. HTTP servers → raw networking → container internals → K8s operators. If a module feels too hard, here's what's safe to skip or reorder:
- Module 10 (Containers) is the most independent. You can skip it and do Module 11 (K8s) without it — they use different APIs entirely. Come back to containers later.
- Module 9 (Networking) is needed for Project 3 (DNS server) but not for Modules 10-11.
Track 5 (Modules 12-13) is interview prep and open source. The algorithms plugin gives you practice throughout the course, so Module 12 is reinforcement, not a cold start.
Working through a module
Each module has a lesson, warmups, and challenges. Here's the flow:
- Read the lesson first. Skim the whole thing, then come back to sections you need.
- Do the warmups. These are quick drills — one concept each, multiple variants. Use the concept filter to focus on areas you're shaky on, or just go through them all. If a warmup feels hard, the gap is in the lesson — go re-read that section.
- Move to challenges. These are deeper, multi-step problems. Pick a difficulty mode:
- Easy — only difficulty 1 variants. Start here if the module is new territory.
- Progressive — starts easy, ramps up as you go. Good default for a first pass.
- Balanced — weighted mix (35% easy, 40% medium, 25% hard). Best for review.
- Hard — difficulty 3+ only. Use this when you're confident and want to test yourself.
- Mixed — fully random. Good for simulating real-world unpredictability.
- Self-rate honestly. After viewing a solution, rate yourself: Got it, Struggled, or Needed solution. These ratings drive spaced repetition — honest ratings mean better review scheduling.
Every exercise has multiple variants, so you can shuffle and get a fresh version of the same concept. Use the shuffle button liberally. If a challenge is too hard, hit "Get Easier Version" to step down a difficulty level (and "Get Harder Version" when you're ready to push).
The thinking timer
When you open an exercise, you'll see a thinking timer option. It locks the hints and solution for 45 seconds, forcing you to actually think before reaching for help. Use it. The point of exercises is the struggle, not the answer.
Daily practice and review
Your self-ratings feed into a spaced repetition system. Exercises you struggled with come back sooner; ones you nailed fade into longer intervals. Use Daily Practice to stay sharp across modules — it pulls exercises that are due for review or that you've historically found hard.
When you're stuck
- Warmups are the canary. If warmups are hard, the gap is in the lesson, not the exercise. Re-read.
- Difficulty 3 challenges are optional. They exist for depth, not as gates. Skip and come back.
- Projects aren't blockers. If a project feels too ambitious, keep going with the next module. The project will still be there.