When someone asks me how to start learning Go, the first challenge is not what to learn but where to begin. There are many resources available, but without a structure, it becomes overwhelming.
This is a list of resources I’ve personally used while learning Go and during day-to-day work. Note that this list is based on personal preference and is not guaranteed to be complete.
Different people learn differently: some prefer reading, others videos or hands-on practice. This list includes a mix of all three.
The key idea: start simple, build gradually, and connect concepts as you progress.
1. Start Simple (Beginner)
Interactive & Basics
- Go Playground: run Go code in the browser
- Go by Example: concise examples for core concepts
Official Documentation
- Getting Started: official entry point
- Effective Go: idiomatic patterns
- Go Specification: language definition (reference-level)
Standard Library & Blog
- Standard Library: explore built-in packages
- Go Blog: design insights and updates
2. Structured Learning
Practice-Oriented
- Learn Go with Tests: hands-on, test-driven approach. This is one of the most practical ways to learn Go by writing tests and building incrementally.
Style & Best Practices
Understanding idiomatic Go becomes important once you grasp the basics.
Books (Deeper Understanding)
- The Go Programming Language by Alan A. A. Donovan & Brian W. Kernighan. A solid reference once you’re comfortable with the basics.
3. Video Courses
Use videos if you prefer guided explanations alongside coding.
4. Communities
- Gophers Slack
- Google Groups:
Communities are useful when you get stuck or want to stay updated.
Thanks for reading. I’ll keep updating this list as I learn more.