What are the best Go books in 2025?
What should you read first when you’re learning Go?
Go, also known as Golang, is a modern programming language designed to be easy to learn, quick to compile and run, and with concurrency as a first-class citizen. Go is widely used in all kinds of software, including network services, command-line tools, DevOps, and web applications.
While it’s perfectly possible to get up to speed with Go by simply following online tutorials and writing a few programs yourself, it can really help to have a well-written book at hand which will explain the fundamentals and what makes Go different.
You can’t learn to program from a book, to be sure, any more than you can learn to fly from reading about birds. The best way to learn is still by doing the thing (fortunately, writing software is substantially easier than flying).
A good book on Go will:
- Support your learning
- Help deepen your understanding
- Introduce you to concepts and practices that you weren’t aware of
- Suggest projects and directions for your future learning
Here are some of the best books to help you learn Go, as recommended by the Go community.
The Deeper Love of Go
The Deeper Love of Go is a new introduction to Go suitable for complete beginners to programming. If you have some experience with other languages, the book will also explain what’s unique about Go, and how to write idiomatic code.
The author
John Arundel is a well-known Go trainer and writer with many years of experience in Go and many decades of experience in software engineering. He is also the author of several books on Go for readers from beginner to advanced level. The Deeper Love of Go is his introductory book.
Readers say
Readers praised the book for its beginner-friendly qualities, saying that some other programming books have made them feel stuck early on, whereas The Deeper Love of Go helps unlock a lot of computer science fundamentals and programming ideas. Most felt it was well written, with some saying that Arundel’s writing was up there with the best O’Reilly authors.
Concepts such as variables, methods, and pointers are introduced naturally as part of a realistic application managing a small bookstore. Readers enjoyed the project-based approach and the opportunity to solve multiple code challenges throughout the book.
Reviewers praised the book for its gentle yet uncompromising approach to deeper topics such as concurrency and distributed systems. The consensus view is that it’s a solid introduction to programming in general and Go in particular.
Compared to others
The Deeper Love of Go is the most beginner-friendly book on our list. It doesn’t assume any previous knowledge of programming or of Go, and it’s often recommended to those wanting to learn Go as their first language.
It’s not as comprehensive as something like Learning Go since it doesn’t intend to cover all the features of the language. However, it does go into much more detail about the fundamentals it does cover. Like The Power of Go: Tools, it covers CLI tools, APIs, and user interface design, and like Concurrency in Go, it introduces readers to goroutines and the Go scheduler. Unlike advanced books such as Know Go, it doesn’t cover generics.
Learning Go
Learning Go is a single-volume textbook on Go that aims to cover every feature of the language, not necessarily in depth, but giving readers a good overview of the basics. While this one-page-per-concept approach sometimes results in rather terse coverage, especially of some advanced features, Learning Go is a useful reference for Go developers to have on their bookshelf. First published in 2021, it doesn’t cover all of Go’s latest features, but is still a solid introduction. Read our detailed review of Learning Go.
The author
Jon Bodner is a software engineer and Go developer. Learning Go is his only book.
Readers say
Readers generally praise this book, though noting it can be rather dry to read, perhaps because it’s so comprehensive. There were some complaints about confusing examples that referenced concepts which hadn’t yet been introduced.
Many reviewers recommended the book, though they highlighted a number of typos.
Compared to others
Learning Go is different from the other books on our list because it’s a single-volume reference guide to the whole language. As such, it doesn’t have space to go into great detail on any particular topic, but it does present a useful overview. It’s aimed at people with a programming background, so it’s not quite as beginner-friendly as The Deeper Love of Go. And unlike Concurrency in Go, it doesn’t attempt to do a deep dive into concurrent programming.
While not completely up to date, it’s still a great deal more modern than older books such as The Go Programming Language. The second edition does mention generics, but it doesn’t cover them in anything like as much detail as an advanced book like Know Go.
The Power of Go: Tools
The Power of Go: Tools by John Arundel is designed as a follow-up to his introductory book The Deeper Love of Go. It focuses, not on the Go language as such, but on how to apply it to building practical, useful programs that solve user problems, especially command-line tools. For example, it covers topics such as flags and arguments, dealing with files, JSON and YAML data, HTTP clients and servers, and connecting to databases.
Readers say
In general, readers described this book as useful, practical, and helpful. Some praised its emphasis on testing and real-world examples, while others enjoyed the simplicity-focused approach, with memorable phrases such as “obviousness-oriented programming”.
Reviews were mostly positive, describing the book as clear, concise, often amusing, and generally fun to read.
Compared to others
The Power of Go Tools is an intermediate-level book aimed at those with some Go experience, so it’s not as beginner-friendly as The Deeper Love of Go, which you should read first. It’s also not as comprehensive as Learning Go since it doesn’t aim to cover every aspect of the language, focusing mainly on command-line tools such as DevOps utilities. John Arundel’s books are regularly updated with every new release of Go, so it’s much more current than older books like The Go Programming Language or Concurrency in Go.
Concurrency in Go
Concurrency in Go is a book for advanced developers focusing on concurrent programming in Go. Clearly it’s not for beginners, but it is packed with useful information on patterns and practices for avoiding some of the most common mistakes in concurrent programming.
The author
Katherine Cox-Buday is a computer scientist.
Readers say
Some found the book difficult to read as it requires quite an advanced background in computer science and distributed systems. However, for people with that expertise, the book was recommended as a valuable guide to best practice. Readers praised the book’s examples and explanations of some difficult concepts, but some remarked that the book seemed poorly written in places and that there were many editing errors.
Compared to others
Unlike the other books on our list, Concurrency in Go is focused squarely on one niche topic. It covers that well, but it’s obviously not intended to be an introduction to Go like The Deeper Love of Go, nor an overview of the whole language like Learning Go. It’s a few years old now, but almost everything in the book is still current with modern Go, and it’s essential reading for anybody working on distributed systems.
Know Go
Know Go by John Arundel is a book for intermediate or experienced Go developers, focused mainly on modern features of Go such as generics and iterators. It covers the new standard library APIs and shows many examples of how to use generics in creating flexible and reusable software packages.
It’s a very comprehensive guide to generics, including:
- Type parameters
- Constraints
- Type approximations
- Generic functions and methods
- Generic container types
It also tackles many frequently asked questions, such as:
- The performance implications of generics
- When you should and shouldn’t use generics in your API design
Readers say
Like John Arundel’s other books on our list, readers praised the book as being fun and easy to read with clear explanations even of some difficult material. Some readers said that they’d gone from being apprehensive about using generics to being excited about the possibilities. Readers liked the friendly tone and noted that the book contained many useful and practical tips.
Compared to others
Although Know Go covers mostly advanced topics, it’s quite accessible even to beginning programmers and makes a good follow-up to The Deeper Love of Go and The Power of Go Tools. Because it’s specifically about generics, it provides much better coverage of this subject than a more general reference, such as Learning Go or The Go Programming Language.
The Go Programming Language
The Go Programming Language was one of the first books written on Go, published in 2015, but it’s still regarded as authoritative. Everything it covers is still more or less correct, though it’s missing important recent additions to Go, such as generics and iterators.
It’s aimed at experienced programmers but doesn’t assume any previous knowledge of Go specifically. It contains many working examples of Go code and shows how to use various features of the language and standard library.
The authors
Alan Donovan is a Google developer and a member of the Go team. Brian W. Kernighan is a computer science professor at Princeton, well known for his work on UNIX and for his many books, including The C Programming Language.
Readers say
The Go Programming Language attracts much praise from readers who described it as well-written, thorough, and easy to understand, though some found it dated.
Compared to others
This probably isn’t the first book you should read on Go; The Deeper Love of Go is a better introduction, especially for beginning programmers. It’s also not as up-to-date a reference as a book like Learning Go. And it doesn’t have as in-depth coverage of concurrent programming as a specialist book like Concurrency in Go.
The biggest problem with this book is that it’s ten years old, and much has changed in Go and software engineering in the meantime. However, it’s still worth having on the shelf as a reference, and it’s an acknowledged classic in the field.
Let’s Go / Let’s Go Further
Let’s Go and Let’s Go Further are specifically about writing production web applications in Go. It’s not a tutorial in the language but it’s aimed at those writing real-world Go applications in production and dealing with things such as performance, authentication, and security.
Web applications and frameworks are complex with lots of moving parts. Let’s Go essentially presents readers with a complete and working codebase for them to read and use in their own programs.
It’s not aimed at beginners, and you will need a fair amount of experience with Go programs and related topics such as JSON, HTTP, and web technologies. Read our detailed review of Let’s Go Further.
The author
Alex Edwards is an author and software engineer living in Austria. He also works as a freelance consultant.
Readers say
Readers liked the practical approach and found the book helpful for designing production-ready web apps. Many praised its detailed and thorough approach, though noted it was perhaps a book more for dipping into the areas that interest you rather than reading from cover to cover.
Compared to others
Let’s Go makes a good companion to some of the more general books on our list, such as The Deeper Love of Go and Learning Go. It’s more aimed at showing you what to do rather than explaining why you need to do that. If you’re looking for a more hand-holding approach, try The Power of Go Tools. If you’re looking for more coverage of modern Go, try Know Go.
The best Go books compared
Here’s a quick overview of the Go books on this list showing their various features, strengths, and weaknesses:
| Title | Author | Level | Strengths | Weaknesses | Best for |
|---|---|---|---|---|---|
| The Deeper Love of Go | John Arundel | Beginner to intermediate | Clear explanations | Not all language topics covered | Go beginners and those new to programming |
| Learning Go | Jon Bodner | Intermediate | Comprehensive | Limited depth | Experienced programmers new to Go |
| The Power of Go: Tools | John Arundel | Beginner to intermediate | Practical projects | Doesn’t cover web apps | Those looking to apply Go to real problems |
| Concurrency in Go | Katherine Cox-Buday | Advanced | Rigorous, academic approach | Can be hard going | Those with strong CS and programming backgrounds |
| Know Go | John Arundel | Intermediate to advanced | Covers latest features of Go | Narrowly focused on generics | Senior devs and architects |
| The Go Programming Language | Alan Donovan et al | Intermediate | Authoritative | Now rather dated | Those needing a detailed reference work |
| Let’s Go / Let’s Go Further | Alex Edwards | Intermediate to advanced | Best practices for web apps | Light on explanatory detail | Web service developers |
Top picks
Here is a quick overview of the books on our list, including our recommendations for which book you should read first at your level.
Best for beginners: The Deeper Love of Go
John Arundel has a well-earned reputation as a clear and accessible explainer. The Deeper Love of Go assumes no previous experience of programming and is an ideal introduction to Go for those without a computer science background.
Best one-volume reference: Learning Go
If you are buying a Go book chiefly to serve as a reference to dip into when you need to know more about some specific topic, Learning Go is ideal. It covers the whole language—in breadth if not depth—and makes a good standard textbook for Go learners.
Best for DevOps and tooling: The Power of Go: Tools
The Power of Go: Tools is aimed specifically at those who want to write tools for systems administration tasks, platform engineering, API clients, file management, data wrangling, and so on. It’s ideal for those who’ve learned the fundamentals of Go and now want to know how to put that knowledge into practice by solving real problems.
Best for web services: Let’s Go / Let’s Go Further
If you’re writing or working on a web application in Go, Alex Edwards’s Let’s Go books are a great source of practical, working code. For more in-depth explanations, though, you’ll need to look elsewhere.




