A structured, test-driven Go course — novice to production-ready. Built on learning science: spaced repetition, active recall, and Bloom's Taxonomy scaffolding.
Each exercise contains:
exercise.go— a stub withTODOmarkers for you to fill inexercise_test.go— failing tests; your goal is to make them passREADME.md— objectives, concept explanation, hints (spoiler-gated), and references
The workflow: read the exercise README → attempt the stub → run tests → reveal hints only if stuck.
Option 1 — GitHub Codespaces (zero setup)
Click the badge above. Everything is pre-configured.
Option 2 — Local
git clone https://github.com/davidnbr/go_journey.git
cd go_journey
go mod downloadRequires Go 1.22+.
# All exercises
make test-all
# One phase (shorthand)
make test-phase PHASE=1
# One phase (explicit)
make test-phase PHASE=phase1-foundations
# One exercise (shorthand: phase.exercise)
make check EX=1.1
# One exercise (explicit)
make check PHASE=phase1-foundations EX=01-hello-world
# Check overall progress
make progress| Phase | Focus | Bloom Level | Exercises | Projects |
|---|---|---|---|---|
| Phase 1 — Foundations | Syntax, types, control flow, errors | Remember → Apply | 16 | 2 |
| Phase 2 — Core Patterns | Structs, interfaces, pointers, I/O | Apply → Analyze | 18 | 3 |
| Phase 3 — Concurrency | Goroutines, channels, sync, generics | Analyze → Evaluate | 15 | 3 |
| Phase 4 — Mastery | Testing, profiling, HTTP, databases | Evaluate → Create | 10 | 2 |
Solutions live on the solutions branch to avoid spoilers. Switch only after you've made a genuine attempt.
git fetch origin solutions
git show origin/solutions:phases/phase1-foundations/exercises/01-hello-world/exercise.goEvery exercise includes a "Why This Matters" section connecting the concept to real infrastructure work: CLI tools, HTTP services, configuration parsing, concurrency patterns for monitoring agents, and more.