Language
Core Go concepts and patternsVariables, constants, pointers, loops, functions, closures, defer, and error handling.
Structs, embedding, slices, maps, interfaces, type assertions, and generics.
Goroutines, channels, select, WaitGroup, Mutex, sync.Once, atomic, and context.
Table-driven tests, benchmarks, test helpers, setup and teardown patterns.
reflect.Type, reflect.Value, struct tags, and practical use cases for reflection.
Reading and writing files, JSON encoding and decoding, buffers and streams.
HTTP client and server, templates, middleware patterns, and database operations.
How Go modules work — go.mod, versioning, dependencies, workspaces, and private modules.
Stack vs heap, escape analysis, pprof profiling, goroutine leaks, and writing efficient Go.
Tricky corners that trip up experienced developers — slices, nil interfaces, closures, channels, integers, defer, and more.
Standard Library
Package deep-dives with examplesDates, durations, formatting, parsing, timezones, timers and tickers.
Searching, splitting, replacing, trimming, building and comparing strings.
Printf, Sprintf, Fprintf, format verbs, Stringer interface and Errorf.
errors.New, error wrapping with %w, errors.Is, errors.As and custom error types.
Sorting slices, custom comparators, stable sort, and binary search.
Common math functions, constants, rounding, random numbers and math/rand.
Environment variables, file operations, process control, signals and exec.
Converting between strings and numeric types — Atoi, Itoa, ParseInt, ParseFloat and more.
Propagate deadlines, cancellation signals, and request-scoped values across API boundaries.
Foundational Reader and Writer interfaces — the primitives everything else in Go I/O builds on.
Generic slice utilities added in Go 1.21 — sort, search, filter and transform slices cleanly.