Related Roadmaps Find the interactive version of this roadmap
and more roadmaps at
Backend Roadmap
DevOps Roadmap
roadmap.sh
Docker Roadmap Go
Kubernetes Roadmap
Why use Go History of Go
Language Basics Introduction to Go Setting up the Environment
Hello World in Go `go` command
Variables & Constants Data Types Numeric Types
Integers (Signed, Unsigned)
Floating Points
var vs := Commands & Docs
Complex Numbers
Zero Values
const and iota Boolean Runes
Scope and Shadowing Composite Types
Strings
Raw String Literals
Capacity and Growth Interpreted String Literals
Arrays
make()
Slices Type Conversion
Slice to Array Conversion
Strings
Array to Slice Conversion
Maps Comma-Ok Idiom
Struct Tags & JSON
Embedding Structs Structs
for loop for range Loops Conditionals
Iterating Maps
if if-else switch
Iterating Strings
break continue
Functions Functions Basics
goto (discouraged)
Variadic Functions
Multiple Return Values
Pointers Basics
Anonymous Functions
Pointers with Structs Pointers
Closures
With Maps & Slices
Named Return Values
Get a Brief Overview
Call by Value
Memory Management
Methods and Interfaces
Why Generics?
Garbage Collection
Generic Functions
Methods vs Functions Generic Types / Interfaces
Pointer Receivers Type Constraints
Interfaces Basics Value Receivers Type Inference
Empty Interfaces
Embedding Interfaces Interfaces Generics
Type Assertions
Type Switch
Code Organization Error Handling
go mod init Error Handling Basics
go mod tidy Modules & Dependencies `error` interface
go mod vendor Packages errors.New fmt.Errorf
Package Import Rules Wrapping/Unwrapping Errors
Select Statement Using 3rd Party Packages Sentinel Errors
Buffered vs Unbuffered Publishing Modules `panic` and `recover`
Stack Traces & Debugging
Channels
Goroutines Concurrency
fan-in fan-out pipeline
Worker Pools
`sync` Package `context` Package Concurrency Patterns
Mutexes WaitGroups
Deadlines & Cancellations Race Detection
Common Usecases
`testing` package basics
Table-driven Tests
Mocks and Stubs Testing & Benchmarking Standard Library
`httptest` for HTTP Tests
I/O & File Handling
Benchmarks Coverage
Ecosystem & Popular Libraries flag time encoding/json
os bufio slog regexp
Cobra urfave/cli
go:embed for embedding
bubbletea Building CLIs
net/http (standard) Web Development gRPC & Protocol Buffers
Frameworks (Optional)
ORMs & DB Access pgx GORM
gin echo
fiber beego
Logging Zerolog Zap
Go Toolchain and Tools Realtime Communication Melody Centrifugo
Core Go Commands Code Quality and Analysis Code Generation / Build Tags
go vet goimports go generate
go run go build
go install go fmt Linters Build Tags
revive staticcheck
go mod go test
Performance and Debugging
golangci-lint
go clean go doc pprof trace
Security
go version Race Detector
govulncheck
Deployment & Tooling
Advanced Topics Building Executables
Memory Mgmt. in Depth Cross-compilation
Escape Analysis
Reflection
Unsafe Package
Build Constraints & Tags
Visit the following roadmaps to keep learning
CGO Basics
Backend DevOps Docker Kubernetes
Compiler & Linker Flags
Plugins & Dynamic Loading
AI Tutor Have a question? Type here