Domain
Go
Go (Golang) is a modern, compiled, garbage-collected language designed at Google specifically to make large, concurrent systems software easier to write correctly. Where C++ builds up from C by adding features, Go took the opposite approach — a deliberately small language, with concurrency (goroutines and channels) built in as a first-class citizen instead of bolted on. This domain assumes you already know C, and explains every Go concept by contrast with what you already know from C, C++, or both.
Go isn't built on C the way C++ is — it's a genuinely different language with its own compiler, runtime, and standard library. It earns a place in this notebook anyway because it's a real, growing presence in systems and infrastructure software, and increasingly in IoT/edge tooling specifically (see this domain's closing chapter, Go for Embedded/IoT). Understanding it well means understanding where it deliberately agrees with C/C++'s choices, and where it deliberately doesn't — which is how every chapter here is framed.
Topics
- Introduction to Go — philosophy, toolchain, your first programwritten
- Variables, Types & Control Flow — declarations, the built-in types, if/for/switchwritten
- Functions & Multiple Return Values — no output pointers needed, plus named and variadic functionswritten
- Structs & Methods — Go's answer to classes, without inheritancewritten
- Interfaces — Go's answer to polymorphism, implemented implicitlywritten
- Slices, Arrays & Maps — fixed arrays, resizable slices, and key-value mapswritten
- Goroutines & Channels — Go's concurrency model, built into the languagewritten
- Error Handling — no exceptions, errors as ordinary valueswritten
- Packages & Modules — code organization and dependency managementwritten
- Go for Embedded/IoT — where Go actually fits on constrained hardware, and TinyGowritten
Nothing left in "Planned" — this domain now covers the full arc from a first program through concurrency and error handling, closing with where Go genuinely fits on embedded and IoT hardware.
Read top to bottom the first time through — each chapter assumes the ones before it. The final chapter, Go for Embedded/IoT, closes the loop back to Embedded by covering where Go actually fits (and doesn't) on constrained hardware, and TinyGo, the compiler that makes some of it possible.