GO LEARNING PATH · 17 LESSONS
Packages, modules and tooling
Import paths, go.mod, go test and go vet, without a search engine.
The import path is the module path plus the directory
Predict the import path of any package in a module.
3 min · Prediction challenge
A capital letter is the access modifier
Control visibility without keywords, and name things accordingly.
3 min · Worked lesson
Tests are a file, not a framework
Write a table-driven test and run it locally.
3 min · Worked lesson
The package name is half the API
Name a package and its exported function without repeating yourself.
3 min · Prediction challenge
init runs before main, and order is defined
Predict the order of package variables, init and main.
3 min · Prediction challenge
A module is a release boundary; a package is a directory
Resolve module roots, import paths, internal visibility and major-version suffixes.
3 min · Worked lesson
Explain the selected version before running go get
Read minimal version selection and investigate a transitive upgrade without guessing.
3 min · Worked lesson
Checksums, proxies and private modules solve different problems
Diagnose downloads without leaking private paths or disabling integrity checks globally.
3 min · Worked lesson
A local workspace can hide a broken release
Use go.work and replace for development while checking what an independent consumer builds.
3 min · Worked lesson
Reproduce the artifact: vendor, build tags and embedded files
Check the source and assets that a clean build actually receives.
3 min · Worked lesson
Parallel tests must own their mutable resources
Find races, test caching mistakes and shared integration fixtures before scaling concurrency.
3 min · Worked lesson
A microbenchmark is not a capacity test
Measure allocations, concurrency and tail latency without mistaking closed-loop throughput for service capacity.
3 min · Worked lesson
Profile CPU, allocation and waiting as different bottlenecks
Use pprof and traces to investigate latency under load instead of increasing pools blindly.
3 min · Worked lesson
Build concurrency also has a memory budget
Separate compiler work, runtime goroutines and caches when CI or a small machine stalls.
3 min · Worked lesson
Pin the compiler and the tools that generate your code
Distinguish application dependencies, development commands and toolchain selection.
3 min · Worked lesson
Test unknown inputs and check reachable vulnerabilities
Combine fuzzing, regression seeds and govulncheck without treating one green tool as complete assurance.
3 min · Worked lesson
Package initialization is not a request-time connection factory
Move fallible setup to an explicit owner and close shared resources after work drains.
3 min · Worked lesson