skip to content
Sandip's Blog
Table of Contents

Official

Books (in order)

  1. The Go Programming Language (Donovan & Kernighan)
  2. Learning Go (Jon Bodner), 2nd edition (covers generics)
  3. 100 Go Mistakes and How to Avoid Them (Teiva Harsanyi), must read
  4. Concurrency in Go (Katherine Cox-Buday)
  5. Let’s Go and Let’s Go Further (Alex Edwards): web apps and APIs
  6. Writing an Interpreter in Go (Thorsten Ball)
  7. Efficient Go (Bartłomiej Płotka): performance

Practice sites

  • Exercism Go track, Gophercises, Go by Example, LeetCode/AoC in Go
  • https://100go.co (summary of 100 Go Mistakes)

Community and reading

  • Go Time podcast, GopherCon talks (YouTube), r/golang, Gophers Slack
  • Dave Cheney, Russ Cox, Rob Pike talks (“Go Proverbs”, “Concurrency is not Parallelism”)
  • Read stdlib source: sync, net/http, io, sort, strings

Final Mastery Checklist

Language

  • Explain slice internals and the append gotchas
  • Explain the nil-interface problem
  • Choose value vs pointer receivers correctly
  • Use generics where appropriate and avoid them where not
  • Wrap and inspect errors properly

Concurrency

  • Build worker pools, pipelines, and graceful shutdown from scratch
  • Find and fix a data race, a deadlock, and a goroutine leak
  • Use context correctly everywhere

Engineering

  • Write table-driven tests, benchmarks, and fuzz tests
  • Profile with pprof and optimize based on data
  • Structure a module and package cleanly
  • Ship a Dockerized service with CI

Mindset

  • Can write simple, boring, readable code by default
  • Can review someone else’s Go code using the Code Review Comments
  • Have read significant parts of the standard library source
  • Have shipped or contributed to at least one real project

Visual: the learning loop

flowchart LR
  A["Learn a concept"] --> B["Code an exercise"]
  B --> C["Apply it in a project"]
  C --> D["Read stdlib or open-source code"]
  D --> E["Review and fix weak spots"]
  E --> A

Previous: Go Mastery 7: Projects That Prove Mastery

Back to the roadmap