This repository is a local practice workspace for Learning Go, 2nd Edition by Jon Bodner.
The main deliverable is the offline exercise pack in practice/README.md. It extracts the chapter-end exercises into individual day-by-day folders so you can practice in the terminal and check your work with tests.
There is also a SQLite-backed terminal app inside practice/ for tracking what you have started, completed, and tested.
practice/A 48-day offline practice pack with one folder per exercise.practice/SCHEDULE.mdA simple day-by-day roadmap.practice/catalog.jsonA machine-readable list of all extracted exercises.Bodner J Learning Go An Idiomatic ApproachReal-world Go Programming 2ed 2024.pdfThe source book PDF used for extraction.
Move into the practice pack:
cd practiceList all exercise folders:
make listShow tracked progress:
make progressSee the next exercise:
make nextStart a tracked day:
make start DAY=4Mark it done:
make done DAY=4Run one day:
make day DAY=day-004-ch02-ex01Or run tests directly inside a specific folder:
cd day-004-ch02-ex01
go testEach day folder includes:
- the original exercise prompt
- a local acceptance test
- either an official reference solution or an offline testing contract
Some exercises were adapted slightly so they still work offline. This mostly affects prompts that originally depended on public repositories, the Go Playground, downloadable sample apps, or manual exploration.
The tracker stores its data in practice/.practice.db, so your progress stays local and works offline.
- Pick the next folder from
practice/SCHEDULE.md. - Read that folder's
README.md. - Implement your solution in the exercise folder.
- Run
go test. - If you get stuck, compare with the local
reference/folder when one exists.