Go (Golang) Roadmap
Go, also called Golang, is a compiled language built at Google for fast, concurrent backend software. This roadmap maps the path from core syntax through goroutines and channels to building and deploying real web services. It's aimed at developers who want backend, DevOps, or cloud infrastructure work, and at Python or JavaScript developers looking for more performance. Every phase points to free courses, and you finish with a shipped project. Plan on 3 to 6 months at around 10 hours a week.
Phase 1: Go Fundamentals
Syntax & Types
Variables, basic types, arrays, slices, and maps, plus how Go handles type inference with the := operator.
Functions & Control Flow
Functions, multiple return values, defer, panic, and recover: Go's idiomatic error-passing patterns.
Structs & Interfaces
Go's approach to types: structs for data, interfaces for behavior. No inheritance, just composition.
Phase 2: Go Concurrency
Goroutines
Launch thousands of lightweight concurrent functions. Go's runtime multiplexes them across OS threads.
Channels
Communicate between goroutines safely with channels. Share by communicating instead of sharing state.
sync Package
WaitGroups, Mutexes, and Once: when channels aren't the right tool and you need explicit synchronization.
Phase 3: Building APIs & Services
HTTP with net/http
Go's standard library HTTP server: handlers, routing, middleware, and writing a working API without a framework.
JSON & REST
Marshal and unmarshal JSON, build RESTful endpoints, and handle request validation and error responses.
Databases
Connect to PostgreSQL with database/sql or sqlx. Write queries, handle migrations, and manage connection pools.
Phase 4: Cloud & Professional Go
Go Modules & Tooling
Dependency management with Go modules, testing with go test, plus linting and formatting with gofmt and golangci-lint.
Docker
Containerize Go services. Go builds small, fast binaries that make excellent Docker images.
Portfolio Project
One shipped project: a REST API, a CLI tool, or a small service deployed to a cloud provider. Put the code on GitHub with a demo in the README.