How to use this guide
- Beginner (Parts I): the Go toolchain, types, control flow, functions, slices/maps, structs, interfaces, errors, packages. Ends with two terminal mini-projects.
- Intermediate (Parts II): goroutines, channels,
sync,context, testing, generics,net/http, and the standard library you'll use every day. Ends with a worker-pool tool and an LRU cache service. - Advanced (Part III): the scheduler, the memory model and GC, concurrency patterns, advanced generics, raw networking, TLS, profiling. Ends with a TCP chat server and a mini API gateway.
- Real-world builds (Parts IV–VI): production CLIs, a job queue, a log analyzer, GUI apps (Fyne, Wails), and security-focused services (JWT auth, a WAF middleware, mTLS) — the same kind of capstones as the networking/security/AI field guides in this Wiki.
- Expert (Part VII): what's actually in memory behind an interface, a slice, a map, and a goroutine; API design idioms; a capstone database engine.
- Professional Go (Part VIII): debugging, refactoring, serious testing, production databases and HTTP APIs, dependency/release management, observability, architecture, and container/Kubernetes operations.
- Reference (Appendices): idioms, pitfalls, glossary, cheat sheets.
Conventions:
- Code is Go, targeting Go 1.22+ (the guide calls out version-specific behavior, e.g. the pre-1.22 loop-variable capture bug).
- "Real-world example" boxes ground a language concept in something you will actually write. "War story" boxes describe an incident or design trade-off from real production systems.
- This guide is the theory + architecture companion to
golang-90-day-plan.md(day-by-day exercises) andprojects/lru_cache.md(a worked project spec). Where useful, this guide cross-references them instead of repeating them.