About
go-dojo teaches backend and distributed-systems Go to people who've only written scripting languages. It's not a video course, a book, or a bootcamp. It's a kata engine.
Why this exists
Every few weeks on Hacker News, a JS or Python dev asks: "I want to learn backend engineering properly. Where do I start?" The answers are always the same three things: Designing Data-Intensive Applications (a book, no feedback), MIT 6.824 (six Google-engineer-hours per lecture, no curriculum), or "just build stuff" (tutorial hell).
None of those verify. None of them sequence. None of them give you a portfolio at the end.
go-dojo is the curriculum the asker wishes existed: a prereq DAG, a test harness, a clear endpoint, and a repo you own.
The method
Four ideas from the Math Academy Way (Justin Skycak's synthesis of learning-science research) port cleanly from math to systems programming:
- Mastery, not exposure. You don't advance by watching; you advance by passing a test. Four levels —
unseen → learning → proficient → automatic— map to "haven't started / verified once / survived a delay / under target time on drills." - Knowledge-graph scaffolding. Every task declares its prereqs. You can't start 2.2 net/http server until 1.5 goroutines is at least learning. The DAG is the curriculum.
- Spaced retrieval. After a pass, the next review is scheduled 3 days out. Then 7, then 21, then 60. Miss a review, mastery drops. The tool won't let you pretend you still remember what you learned six weeks ago.
- Automaticity via drills. Short, timed exercises — "write a
net/httphandler in under 10 minutes, stdlib only." Beat the target, the parent task promotes toautomatic.
What's different
Three things set this apart from the obvious alternatives:
- The CLI verifies locally, the site tracks remotely.
go testruns on your machine, in your repo; the website reads your public repo to render progress. No accounts, no data on our servers. - Your progress is a portfolio. The repo you scaffold with
go-dojo initis yours, public or private as you choose. Commits = attempts. Commit history = learning story. Nobody else gets to lock you in. - The content is curated, not authored. 200–400 words of connective tissue per task, written by us. Everything deeper links to the Go blog, Russ Cox, Jon Gjengset, MIT 6.824. We don't pretend to be better than those. We pretend to be better at sequencing them.
Source
Everything — curriculum, CLI, site generator, exercises — lives at github.com/chinmay/learning-plan. Open source, no analytics, no tracking. Fork the curriculum if you want to teach Rust or Zig next.