Stage 1 of 7 · 10 lessons · ~6 months
Your language and how HTTP works
Get fluent in one backend language and its runtime, and learn exactly what happens between a client and your server. Everything later in this roadmap sits on these two things.
Start: The terminal and GitLessons· one lesson for each topic, in this order
- 1The terminal and GitLesson
- 2Go syntax, structs and slicesLesson
- 3Errors as valuesLesson
- 4InterfacesLesson
- 5Packages and Go modulesLesson
- 6Goroutines and channelsLesson
- 7DNS: from a name to an addressLesson
- 8TCP connections and TLSLesson
- 9HTTP requests, responses and headersLesson
- 10HTTP methods and status codesLesson
Start with
- CourseFreeA Tour of Go
The Go Authors · Beginner
The official interactive tour: basics, methods, interfaces, generics and concurrency
Practise
Keep handy
Also worth your time
The DNS, TCP, TLS and HTTP steps behind every request your backend will handle
Before moving on: Write a small Go command line tool with table-driven tests using go test, push it to GitHub in sensible commits, and explain every line of output from curl -v against a real website.

Write Go like Go: return errors, keep interfaces small and resist building class hierarchies from another language. Learn goroutines now, but do not use them until you can explain who closes each channel.