Go Training
A Go programming course delivered as code + per-lesson reveal.js slide decks. Starts at programming-101 and finishes with concurrency, systems programming, production services, and distributed patterns.
Phase 1 · Foundations
01
Hello, Go
go run · package main · fmt
02
Variables, types, operators
var · := · float64 · const
03
Control flow
if · for · switch
04
Functions & first tests
multi-return · table tests
05
Slices and maps
[]T · map[K]V · range
06
Structs & methods
type T struct · methods
07
Packages & modules
go.mod · imports · gofmt
08
Phase 1 capstone
expense tracker CLI
Phase 2 · Idiomatic Go
09
Pointers
value vs reference
10
Interfaces
io.Reader · any
11
Errors
wrapping · errors.Is/As
12
Generics
type parameters
13
Encoding & I/O
JSON · bufio · streams
14
Time, strings, regex
stdlib literacy
15
Project structure
cmd/ · internal/
Phase 3 · Concurrency & Systems
16
Goroutines & channels
go · chan · range
17
Select & timers
select · time.After
18
sync & memory model
Mutex · race detector
19
context
cancellation · deadlines
20
Concurrency patterns
worker pool · errgroup
21
Networking
net · TCP · syscalls
22
Profiling & fuzzing
pprof · bench · fuzz
Phase 4 · Production & Distributed