Learn Go to ship a real HTTP service in three months

Three months of focused work — about an hour a day on the official tour, a free TDD book, and one HTTP project — gets a developer who already knows another language to writing idiomatic Go. Roughly 90 hours total. You will not know every standard-library package. You will be able to write services other people deploy.

3 months · ~90 hours · deploy a REST API written in Go with a real test suite

Week 1 · 30 min/day

1.A Tour of Go

The official interactive tour at go.dev/tour is the right place to start and finishes in about three hours total. Four sections — basics, methods/interfaces, generics, concurrency — each with a working sandbox. Do not skim; type every example and modify it slightly. The concurrency section ends with a web crawler exercise that is genuinely the moment goroutines and channels click. Do that exercise.

Free

A Tour of Go →
Weeks 2–8 · 1 hr/day

2.Learn Go with Tests, by Chris James

Free book on GitBook that teaches Go through test-driven development. Each chapter is a small problem — hello world, slices, maps, dependency injection, an HTTP server — built up by writing tests first. The TDD-as-pedagogy frame works because Go's standard test library is so good and so simple that the tests stop feeling like overhead. By the end you have a working HTTP server, a CLI command, and a clock app, all with full test coverage. This is the most efficient Go book in existence.

Free

Learn Go with Tests →
Weeks 9–12 · 1 hr/day

3.Build and deploy a REST API

Pick a small backend you would actually use — a personal URL shortener, a habit tracker API, a webhook dispatcher — and build it with the standard library's net/http (no framework on first pass). Use PostgreSQL via the database/sql package. Write tests as you go in the style Learn Go with Tests taught you. Deploy as a single binary to Fly.io or a VPS. The single-binary deploy is half the reason to use Go in the first place; experience that.

Free–$5/month for hosting

Deploy Go on Fly.io →

If this doesn't fit you

If you have a heavy systems-programming background and want a more conceptual treatment, "The Go Programming Language" by Donovan and Kernighan ($40) is the canonical printed text. It is more rigorous, more thorough, and more boring than Learn Go with Tests. Pick it if you want depth before practice; pick the path above if you want to ship something next quarter.

Why this path

Go is the rare language where you can be productive in a few weeks, and the canonical free path reflects that — the Tour is shockingly short, Learn Go with Tests is tight and project-shaped, and the standard library is rich enough to skip frameworks. Most paid Go courses are strictly worse than this and three times longer. Skipping the deployed service is the most common mistake. Go's gift is the ten-megabyte single binary; you need to feel the deploy to understand why people pick it.