free go lessons for beginners
Learn Go, one small program at a time.
Start at Hello, world and build up to real programs. No programming experience needed, and quick going if you already know another language.
Free, and written for complete beginners
A messy hello.go file is tidied up by gofmt, then go run hello.go prints Hello, 世界.
the learning path
Six stages, from your first line to your first tool
Each lesson builds on the one before. Follow them in order, or jump to what you need.
1Getting started
2The basics
3Working with data
4Organizing code
5Concurrency
what’s new in go
Latest Go news
- Go 1.27.3 and 1.26.10: Why You Should Update and Rebuild NowGo 1.27.3 and 1.26.10 block trust in compromised eMudhra intermediate certificates. Here’s what happened and why you need to rebuild your programs.
- Go 1.27 Is Out: Generic Methods and What Else Matters for BeginnersGo 1.27 lets methods declare their own type parameters. Here’s what that means, plus the other changes worth knowing if you’re learning Go.
- Go 1.26 Highlights: new() With Values, errors.AsType and a Faster GCGo 1.26 is still everywhere, and it added features you’ll see in real code. Here are the ones that matter most when you’re learning.
beyond the lessons
Notes from the blog
build
How to shrink a Go executable
Strip debug info with linker flags, then compress the result with UPX.
standard libraryGo logging
The standard log package, and when to reach for a library like Zap.
aboutWho writes this?
I’m Erik. I also run Python Land, and I write these lessons the way I wish I’d been taught.