70-Topic Complete Curriculum
The Master Go Roadmap
From Absolute Basics (Level 0) to Compiler Internals and Distributed Systems (Level 15). Every topic includes mental models, code examples, common pitfalls, and self-checks.
Filter:
🟢 Level 0 — Absolute Basics
0/2 completed- •What is Go? Why it was created (simplicity, concurrency, performance)
- •Toolchain, workspace
- •GOPATH vs Modules
Start LessonExplore Lesson →
- •Install Go; go version; go env
- •VSCode / GoLand setup
- •$GOROOT and $GOPATH
Start LessonExplore Lesson →
🟡 Level 1 — Fundamentals
0/5 completed- •package main
- •func main()
- •fmt.Println
Start LessonExplore Lesson →
- •Packages & imports
- •Comments
- •Naming conventions
Start LessonExplore Lesson →
- •var declarations
- •Short :=
- •Zero values
- •Typed vs untyped constants
Start LessonExplore Lesson →
- •ints, floats, complex
- •string (immutable)
- •bool
- •byte, rune
Start LessonExplore Lesson →
- •const
- •iota
- •Typed & untyped
Start LessonExplore Lesson →
🟠Level 2 — Flow Control
0/4 completed- •if, if with initializer, else-if
Start LessonExplore Lesson →
- •Multiple cases
- •Condition switches
- •Type switch
Start LessonExplore Lesson →
- •for
- •range over slices/arrays/maps/strings
- •Infinite loops
Start LessonExplore Lesson →
- •error type
- •Create/return errors
- •fmt.Errorf + %w
- •errors.Is / errors.As
Start LessonExplore Lesson →
🔵 Level 3 — Functions
0/3 completed- •Multiple returns
- •Named returns
- •Variadic
Start LessonExplore Lesson →
- •Closures, returning functions
Start LessonExplore Lesson →
- •Stack unwinding
- •When to use defer
- •Panic + recover patterns
Start LessonExplore Lesson →
🟣 Level 4 — Composite Data
0/5 completed- •Fixed size
- •Value semantics
- •Memory layout
Start LessonExplore Lesson →
- •Header (ptr, len, cap)
- •Backing array
- •Reslicing
- •Append growth
- •Copy
Start LessonExplore Lesson →
- •Hash table, buckets/overflow
- •Lookup/insert/delete
- •Iteration randomness
- •nil vs empty maps
Start LessonExplore Lesson →
- •Definition
- •Tags
- •Anonymous fields
- •Embedding
Start LessonExplore Lesson →
- •& and *
- •Pointer to array vs slice
- •Value vs reference
- •Escape basics
Start LessonExplore Lesson →
🔴 Level 5 — Methods & Interfaces
0/4 completed- •Value vs pointer receivers
- •Method sets
- •Mutability rules
Start LessonExplore Lesson →
- •Implicit impl
- •Satisfaction
- •Empty interface (any)
- •Type assertions/switches
- •itab + data ptr internals
Start LessonExplore Lesson →
- •Composing behavior
- •Struct vs interface embedding
Start LessonExplore Lesson →
- •Interface-based polymorphism (no inheritance)
Start LessonExplore Lesson →
⚫ Level 6 — Memory Model
0/4 completed- •Escape analysis
- •Allocation decisions
- •Stack growth
Start LessonExplore Lesson →
- •Tracing GC
- •Write barriers
- •STW phases
- •Tuning
Start LessonExplore Lesson →
- •Struct alignment rules
- •Minimizing padding
Start LessonExplore Lesson →
- •Slices/maps share memory
- •Large struct copy patterns
Start LessonExplore Lesson →
🟤 Level 7 — Runtime & Concurrency
0/6 completed- •Lightweight threads
- •Scheduler
- •Stack growth
- •Blocking vs non-blocking
Start LessonExplore Lesson →
- •Buffered/unbuffered
- •Blocking sends
- •Closing
- •Range
Start LessonExplore Lesson →
- •Multiple channel ops
- •Default
- •Fairness
Start LessonExplore Lesson →
- •Mutex/RWMutex
- •WaitGroup
- •Once/Map/Cond/Pool
Start LessonExplore Lesson →
- •Propagation
- •Deadlines
- •Cancellation
Start LessonExplore Lesson →
- •G/M/P
- •Work stealing
- •Preemption
Start LessonExplore Lesson →
🟩 Level 8 — Advanced Types
0/3 completed- •Type params
- •Constraints
- •comparable
- •Generic structs/methods
Start LessonExplore Lesson →
- •type T = OriginalType
- •Migrations
Start LessonExplore Lesson →
- •Methods
- •Implementing interfaces
Start LessonExplore Lesson →
🟧 Level 9 — File I/O & Systems
0/4 completed- •os pkg
- •Read/write
- •Scanners/readers
Start LessonExplore Lesson →
- •net TCP/UDP
- •net/http
- •HTTP server/client
- •Middleware patterns
Start LessonExplore Lesson →
- •JSON/YAML
- •Custom marshalers
- •Streaming decoders
Start LessonExplore Lesson →
- •flags
- •Cobra/Viper basics
Start LessonExplore Lesson →
🟨 Level 10 — Build & Deploy
0/4 completed- •go mod init
- •Deps/versioning
Start LessonExplore Lesson →
- •go build/run/install
- •Cross compilation
Start LessonExplore Lesson →
- •Publish modules
- •replace directives
Start LessonExplore Lesson →
- •Benchmarks
- •pprof
- •Tracing
- •Race detector
Start LessonExplore Lesson →
🟪 Level 11 — Runtime & Compiler (Expert)
0/5 completed- •Rules
- •Heap vs stack control
Start LessonExplore Lesson →
- •Inlining rules
Start LessonExplore Lesson →
- •-gcflags
- •-ldflags
- •Build tags
Start LessonExplore Lesson →
- •DCE
- •Symbol resolution
Start LessonExplore Lesson →
- •Memory/channel leaks
Start LessonExplore Lesson →
🔥 Level 12 — Architecture & Practices
0/6 completed- •Standard layout
- •DDD
Start LessonExplore Lesson →
- •No-framework DI
- •Wire/Fx (optional)
Start LessonExplore Lesson →
- •Entities, use cases, repos, services
Start LessonExplore Lesson →
- •Unit, table-driven, mocks, integration
Start LessonExplore Lesson →
- •Structured logs
- •Zap/Zerolog
Start LessonExplore Lesson →
- •gRPC/Protobuf
- •REST
- •Async messaging
Start LessonExplore Lesson →
🟫 Level 13 — Specialized Topics
0/5 completed- •Pointer ops
- •Reinterpretation
- •Risks
Start LessonExplore Lesson →
- •sync/atomic
- •CAS
- •Barriers
Start LessonExplore Lesson →
- •Go in the browser
Start LessonExplore Lesson →
- •reflect pkg
- •Framework patterns
Start LessonExplore Lesson →
- •.so dynamic loading
Start LessonExplore Lesson →
🟩 Level 14 — Internals Deep Dive
0/6 completed- •Goroutine mgmt
- •Scheduler ticks
- •Allocator
Start LessonExplore Lesson →
- •Tri-color
- •Mutator assists
- •Pacing
Start LessonExplore Lesson →
- •Object headers
- •Pointer scanning
Start LessonExplore Lesson →
- •hchan
- •Send/recv queues
Start LessonExplore Lesson →
- •Buckets/overflow
- •Resizing
Start LessonExplore Lesson →
- •Growth strategy
- •Zero-copy gotchas
Start LessonExplore Lesson →
🟦 Level 15 — Philosophy & Distributed
0/4 completed- •Simplicity
- •Minimalism
- •Composition
Start LessonExplore Lesson →
- •Panic misuse
- •Goroutine leaks
- •Global state
- •Unbounded channels
Start LessonExplore Lesson →
- •Concurrency models
- •RPC systems
- •Queues/workers
Start LessonExplore Lesson →
- •Idiomatic Go
- •Effective Go
- •go vet + linters
Start LessonExplore Lesson →