finds.dev← search

// the find

GoesToEleven/go-programming

★ 586 · Go · updated Apr 2022

A companion repo for Todd McLeod's Go course, organised as numbered directories of small programs, each covering one concept: hello-world, goroutines, channels, error handling, packages, testing, and benchmarks. It suits someone taking the course, or someone who wants concrete examples to read next to a Go book. The teaching itself lives on the course site, not in the repo.

- Channel examples are split by case: 005-channels/01-channels-block runs unbuffered, buffered, and failing-buffer versions as separate directories, so you can compare the blocking behaviour directly.

- The concurrency chapter puts a race-condition sample next to mutex and atomic versions of the same counter problem. Seeing the failure before the fix is the right order.

- The testing section climbs the full ladder: plain tests, table-driven tests, Example functions, and benchmarks with a readme. The Donovan and Kernighan samples (word, mymath with tests) use real book exercises, not toy code.

- The TOC files are maintained in four languages (EN, ES, JA, KR), which is unusual for a repo this size.

- The README is a stub that points to an external site. Many directories contain code with no narrative, so the repo is hard to use on its own without the course.

- Last push was April 2022, before generics landed in Go 1.18. The 01-ioutil-readall sample uses io/ioutil, which has been deprecated since Go 1.16, so the examples have drifted from current idiom.

- Scratch material sits alongside the teaching code: a 000_temp directory and a donovan-kernighan/temp tree with chapter 2 to 13 experiments, including bzip2.c and other C files. Nothing marks which directories are intentionally broken (like 01-does-not-run) and which are leftovers.

- The README says nothing about the Go version the examples target or how to run them, so there is no quick way to tell whether they still build on a current toolchain.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →