THE READING ROOM / BOOK GUIDE
The Go Programming Language
A guide to Go by Alan A. A. Donovan and Brian W. Kernighan, aimed at programmers who want the language explained through working code.
About the book
The Go Programming Language is a technical book about learning Go as a practical systems and network programming language. Donovan and Kernighan write for readers who already program in some other language and want to understand how Go handles types, concurrency, interfaces, and package organization. The book pairs explanation with code examples, treating the language as something to be used.
Kernighan's presence connects the book to a long tradition of instructional programming writing, but the subject here is Go specifically: its syntax, its standard library conventions, and the design choices that distinguish it from older languages. The emphasis falls on readable programs and on the reasoning behind Go's approach to composition and concurrent execution.
The book reflects Go as it stood at the time of writing. Readers should expect a solid foundation in the language's core rather than coverage of every later addition to the standard library or toolchain.
How to read it
Approach the book with a compiler or editor open. The examples are meant to be typed, run, and modified. Reading passively will leave the concurrency and interface material abstract; running the code makes the distinctions concrete.
The prose is direct and the pace is steady, but the material assumes comfort with programming concepts such as pointers, memory, and goroutines. Beginners to programming altogether will find it steep. Experienced programmers can move quickly through early syntax and slow down for the chapters on interfaces and concurrency.
Who it suits
Programmers coming from Python, Java, C, or JavaScript who want a structured route into Go will get the most from this book. It suits developers who prefer learning from complete, compilable examples and who want to understand why the language is shaped as it is. Readers preparing to write networked services or concurrent tools in Go will find the treatment of those areas especially relevant.
Reading considerations
The publication date matters. Go has changed since then, so some library details and tooling references may not match current releases. Check the language version you intend to use and expect to consult current documentation alongside the text. The book teaches the language; it does not claim to cover every ecosystem tool or framework.
Follow the HN conversation
40 different recommenders are recorded in the upstream dataset. These are AI-classified source counts, not an independent rating.
Search HN comments about this book ↗
Explore videos on the same subject ↗
Book notes prepared with DeepSeek, using catalogue records and Open Library subject information. They are reading guidance, not a personal review or a verified chapter-by-chapter account. Book details can vary by edition. HN data methodology · Book metadata and covers.
