A hands-on, self-paced curriculum to take you from "I've heard of Go" to "I can ship Go-based DevOps tooling." Free, public, and community-supported.
New here? Start with
BOOTCAMP.mdfor how the bootcamp works and how to ask for help.
Also designed to open cleanly as an Obsidian vault for personal note-taking.
- Engineers comfortable with at least one of Python, Bash, TypeScript, or Java who want to add Go.
- Specifically for DevOps / Platform / SRE / Cloud work β CLIs, HTTP clients & servers, AWS/GCP/k8s/Docker SDKs, concurrency for parallel infra tasks, observability.
- People who learn by doing. Every section has runnable examples + a mini-project + exercises that ship as failing tests; you write code until they pass.
- People wanting a comprehensive Go language reference (use the Go Programming Language Specification and "The Go Programming Language" by Donovan & Kernighan).
- People building games, ML systems, or low-latency trading code in Go (the language is great for those β this repo just doesn't focus on them).
- Work through the sections at your own pace (suggested: 1 section per week, no due dates).
- Ask for help in Discussions when stuck. Open-ended questions live here.
- File an Issue when you hit a bug, typo, or have a concrete improvement. Three templates are provided.
- Help others if you've already finished a section. That's how this becomes more than a personal repo.
See BOOTCAMP.md for the full participation guide and how to ask a good question.
Each section is a folder. Status legend: β not started Β· β in progress Β· β done.
| # | Section | Status |
|---|---|---|
| 00 | Setup & toolchain | β |
| 01 | CLI tools | β |
| 02 | Files & OS | β |
| 03 | HTTP clients | β |
| 04 | HTTP servers | β |
| 05 | Concurrency | β |
| 06 | Testing | β |
| 07 | AWS SDK | β |
| 07 | GCP SDK | β |
| 08 | Kubernetes | β |
| 09 | Docker | β |
| 10 | Observability | β |
| 11 | IaC tooling | β |
| β | End-to-end projects | β |
NN-topic/
βββ README.md polished notes, the public-facing teaching content
βββ PLAN.md working roadmap β what's planned, what's done, what's next
βββ 01-<concept>/ runnable read-and-learn examples
βββ mini-project/ section capstone: real DevOps tool, verified by tests
βββ exercises/ starter skeletons with failing tests; reader writes code until they passSee PLAN.md for the overall plan and conventions, and SESSIONS.md for the running log of work.
- In Obsidian, Open folder as vault β select this repo's root.
- Obsidian creates a
.obsidian/folder for vault settings β this is gitignored, so it stays personal. - Recommended community plugins: Dataview (query notes), Templater (note templates).
- Cross-references inside notes use standard markdown links (
[text](./path.md)) so they work in both Obsidian and on GitHub.
Prerequisites: Go 1.22+.
# Run a specific example
go run ./01-cli-tools/01-flag-basics
# Run all tests
go test ./...
# Vet everything
go vet ./...
# Or use the Makefile
make test
make run SECTION=01-cli-tools EX=01-flag-basicsMIT β see LICENSE.
- Go by Example β the syntax-reference baseline
- "The Go Programming Language" by Donovan & Kernighan
- Effective Go