go-dojo
learn go · earn mastery
Mastery over videos

Learn Go by building distributed systems.

A 26-week guided path from "I know JavaScript" to "I solved all six Fly.io Gossip Glomers in Go." You learn in small katas, verify with a CLI, and publish your journey as a public GitHub portfolio. The test is the source of truth — self-report is banned.

Free · stdlib-only · 43 tasks · 22 drills · open curriculum

How it works

Four-level mastery, not checkboxes

Every task is unseen → learning → proficient → automatic. You advance by passing the task's test — spaced retrieval at 3 / 7 / 21 / 60 days locks it in. Miss a review, mastery drops. Durable learning, not exposure.

A prereq DAG, not a linear list

43 tasks across six phases, wired by explicit prerequisites. The graph refuses to surface a task whose prereqs you haven't cracked yet. Placement quizzes at each phase entry let you skip what you already know.

Your repo is your portfolio

Run go-dojo init my-dojo once — it scaffolds a fresh repo. Every go-dojo verify commits the attempt. Push to GitHub and your commit history becomes your learning story. No accounts on our servers, no telemetry, no lock-in.

The end point

Phases 0–4 exist so that when you open Fly.io's Gossip Glomers — six distributed-systems challenges that are the whole reason backend engineers love Go — you already own goroutines, channels, JSON, TCP, gossip protocols, and CRDTs. You ship a distributed key-value store with CRDT merge semantics, unaided. No tutorial hell. No copied solutions.

Not a course

We don't make videos. We don't assign reading. We curate the sequence — the one nobody else provides — and verify that you did the work. Lessons link to the Go blog, Russ Cox's essays, Jon Gjengset's streams, MIT 6.824. The glue in between is ours.

Ready? Open the first kata — it takes four minutes.