Effective Go Reading Path
Curated study order through site sections and official docs.
Follow this path when onboarding hires, refreshing after a long non-Go assignment, or building a self-study plan that matches how productive Go teams actually work.
How to Use This Checklist
- Complete blocks in order unless a mentor approves a justified skip with a compensating exercise.
- Budget 2-4 hours per block: read, run examples, note three questions for pairing.
- Tie each block to action: one PR, one test improvement, or one doc fix when possible.
- Official Effective Go stays the spine; site pages add depth and team-adjacent patterns.
Block 1 - Programs, packages, and toolchain (week 1)
-
Module layout and main: Read site How Go Programs Are Structured and Go Toolchain Basics.
- Official: Tutorial: Create a Go module
- Exercise: Run
go test ./...on your team repo
-
Build, test, tidy: Skim The
goCommand.- Official: Go Commands
- Exercise:
go mod tidyand explain diff if any
Block 2 - Types, memory, and control flow (week 1-2)
-
Values and pointers: Zero Values, Pointers.
- Official: Effective Go - names, declarations
- Exercise: Add a table test for a parser or formatter
-
Slices and maps: Arrays, Slices & Maps.
- Official: Effective Go - slices
- Exercise: Fix or add a test catching nil map write
-
Structs and embedding: Structs & Embedding.
- Official: Effective Go - structs
- Exercise: Identify one embedding use in your codebase
Block 3 - Functions, interfaces, and errors (week 2)
-
Functions and methods: Functions and Methods Basics and Defining Interfaces.
- Official: Effective Go - methods
- Exercise: Choose value vs pointer receivers on one type with mentor
-
Interfaces at consumers: Focus on small interfaces defined by callers.
- Official: Go FAQ - Why is there no type inheritance?
- Exercise: Write a 5-line interface at a test double
-
Errors: Complete Error Handling Basics and wrapping patterns.
- Official: Working with Errors
- Exercise: Add
errors.Istest for one sentinel
Block 4 - Testing culture (week 2-3)
-
Table-driven tests: Table-Driven Tests.
- Official: Subtests
- Exercise: Convert one
if/elsetest to table form
-
Race and coverage: Coverage & Race Detector.
- Official: Race Detector
- Exercise:
go test -raceon a package you will own
-
Examples for libraries: Examples as Executable Documentation if you ship libraries.
- Official: Testable Examples
- Exercise: Skip if service-only role; else add one
Examplefunction
Block 5 - Concurrency fundamentals (week 3)
-
Goroutines and channels: Start Concurrency in Go and Channels.
- Official: Share Memory By Communicating
- Exercise: Trace one
errgroupor worker pool in your service
-
Context: Context Basics and Cancellation in HTTP Handlers.
- Official: context package
- Exercise: Confirm handlers pass
ctxto DB/RPC calls
Block 6 - Modules, lint, and quality (week 3-4)
-
Modules in depth: go mod tidy, vendor, graph.
- Official: Module reference
- Exercise: Explain MVS choice for one dependency bump
-
Lint and vet: Code Quality Basics and Effective Go Rules Checklist.
- Official: go vet
- Exercise: Fix one
staticcheckorgovetfinding
Block 7 - HTTP and APIs (week 4-5)
-
net/http: net/http Basics before frameworks.
- Official: Writing Web Applications
- Exercise: Read one handler and middleware chain in your repo
-
Framework choice (if used): Skim Web Frameworks Basics and your router page (chi, gin, or echo).
- Official: Framework docs for pinned version
- Exercise: Map framework router to stdlib handler signatures
-
gRPC (if used): gRPC Basics.
- Official: gRPC Go quickstart
- Exercise: Trace one RPC error mapping to status codes
Block 8 - Observability and production (week 5-6)
-
Logs, metrics, traces: Observability Basics.
- Official: OpenTelemetry Go
- Exercise: Find one RED metric or log field your team relies on
-
Security edges: Go Security Basics for your exposure (HTTP, cookies, secrets).
- Official: Go Security
- Exercise: List secrets sources (env, vault) for your service
Block 9 - Team craft (ongoing)
-
Review culture: Code Review Culture for Go.
- Exercise: Annotate an exemplar PR
-
Documentation: Documentation & godoc Conventions.
- Exercise: Improve godoc on one exported symbol
-
Standards: Coding Standards for your org.
- Exercise: Propose one ADR-sized clarification if a rule is ambiguous
Applying the Checklist in Order
- Blocks 1-3: Language and toolchain - highest reversibility; finish before feature ownership.
- Blocks 4-6: Quality and concurrency - gate before editing shared concurrent code.
- Blocks 7-8: Production surfaces - align with your team's actual stack; skip unused blocks with mentor sign-off.
- Block 9: Socializes norms - spread across the full 90 days, not one cram week.
FAQs
Must I read every linked site page in full?
Read summaries and Deep Dive sections first. Return for Gotchas when you hit that topic in a PR. The path is order, not a completionist trophy.
What if our team only ships CLIs, not HTTP?
Skip Block 7 HTTP/framework items; add CLI Tools Basics and keep Blocks 1-6 and 9.
How does this relate to the official Effective Go document?
Effective Go is the authoritative idiom doc. This path sequences Effective Go topics alongside deeper site material and repo exercises.
Can seniors start at Block 4?
Only with a mentor audit of a recent non-Go codebase contribution. Seniors still need Blocks 4-6 calibrated to your CI and concurrency bar.
How long is the full path?
6-10 weeks at a few hours per week alongside regular work. Faster with dedicated bootcamp time; slower for part-time ramp.
Should juniors and seniors share the same path?
Same blocks, different exercise scope. Juniors take smaller PRs; seniors lead design comments starting Block 8.
When do generics enter the path?
After Block 3 interfaces. Read Generics Basics when you encounter generic code in your module, not before slices and errors stick.
How do I track progress?
Use Go SME Onboarding Checklist (30/60/90) items 9, 13, and 19 as checkpoints against Blocks 1-8.
What about Kubernetes operators?
Add Kubernetes Operators Basics after Block 8 if that is your domain. Not part of the default service path.
Should I read blog posts or watch talks?
Use Official Resources as supplements after Block 6. Talks rarely replace hands-on PRs.
Related
- Onboarding Go Specialists - why this path exists
- Go SME Onboarding Checklist (30/60/90) - milestone tracking
- Team Onboarding Basics - week-one exercises
- Effective Go Rules Checklist - distilled idioms for review
- Code Review Culture for Go - apply reading in review
Stack versions: This page was written for Go 1.26.x (Green Tea GC default, go fix modernizers - verify patch at build), chi (latest - verify at build), gin (latest - verify at build), echo (latest - verify at build), google.golang.org/grpc (latest - verify at build), sigs.k8s.io/controller-runtime (latest - verify at build), kubebuilder (latest - verify at build), tinygo (latest - verify board targets at build), wazero (latest - verify at build), and golangci-lint (latest - verify linter set at build).