- figure out go modules, packages setup
- hello world
- values
- variables
- constants
- for
- if/else
- switch
- arrays
- slices
- maps
- range
- functions
- multiple return values
- variadic functions
- closures
- recursion
- pointers
- strings and runes
- structs
- methods
- interfaces
- enums
- struct embedding
- generics
- errors
- custom errors
- goroutines
- channels
- channel buffering
- channel synchronization
- channel directions
- select
- timeouts
- non-blocking channel operations
- closing channels
- range over channels
- timers