List of the best Golang books of all time sorted by rating. The most popular and recommended Go books for beginners and advanced programmers.
The Go Programming Language
The most extensive summary of Go, written by two of the language's designers. It clearly introduces syntax, features, and most effective practices, together with illustrative examples. Explanation to the basic data types, functions, packages, testing, and concurrency is added, to give a foundation on which clean and effective idiomatic Go code can be written. Material indispensable for reading by both the beginner and the accomplished Go developer in order to reach a new level in the language and its environment.Concurrency in Go
It dives deep into Go's concurrency primitives and uncovers the patterns of how one should write concurrent programs that are safe and efficient. Goroutines, channels, select statements, and the sync package with real idiomatic examples teach how to write fine parallel algorithms and how to structure effective concurrent programs. This subsumes common patterns of concurrency, for instance, pipelines, cancellation, and fan-out/fan-in. There are also provided tips for testing, debugging, and optimizing the concurrent code. A must-read knowledge base for Go developers who desire to really leverage the language's strong concurrency features.Black Hat Go
Use Go for security research, penetration testing, and exploit development; syntax; features; and an ecosystem of libraries and tools for security. With this book, you will get hands-on examples of building custom tools in Go for scanning, enumeration, and exploitation; analyzing; and reverse engineering malware. Discuss benefits of using Go in security work, including cross-platform support and having concurrency features.Head First Go
A simple beginner's look at Go in the extremely interactive and visually-rich Head First format, introducing the syntax, data types, control structures, functions, and packages of Go—with hands-on exercises and projects. Special features include some of the most unique characteristics of Go, such as goroutines and channels, and the introduction of testing, debugging, and package management. Additionally, it comprises real-world examples and case studies, and also some tips on writing clean and idiomatic code.Go in Action
A book focusing on practical, real-world application development using the Go language and its ecosystem. This subject covers a large portion of the data structures, concurrency, web development, and testing project examples. Learn how to practice Go in terms of its design philosophy, best practices, and large codebase structuring. The advanced topics of performance optimization, debugging, and deployment are also included.Go in Practice
Tips and recipes for writing efficient, maintainable, idiomatic Go code. This might cover touchpoints in topics such as error handling, testing, debugging, performance optimization, and concurrency with real-world examples and case studies. It also gives guidance on how to structure packages and work with third-party libraries, integrate with other languages, and tools.Mastering Go
A complete guide for writing idiomatic, high-quality Go code, describing the language and its ecosystem, focusing on data structures, algorithms, concurrency, network programming, and testing with practical code snippets and exercises. It also provides an insight into Go design philosophy and best practices, coupled with a few hints for performance optimization and maintainability.Go Web Programming
This is a complete course to writing web applications using Go. The course is designed to provide an in-depth look at the language and web development ecosystem. Topics covered will include HTTP servers, templates, databases, authentication, and deployment. This course will be project-based and examples driven. Emphasize certain Go features such as goroutines and channels to make your web application much faster.Learning Go
This interactive introduction to Go is straightforward and useful for both first-timers and experienced developers alike. Syntax, data types, control structures, functions, and packages in Go will be explained through examples. It also includes exercises and projects to embed learning and model real-world skills. Detail special features of Go, such as goroutines, channels, testing and debugging, package management, and more.Learn Concurrent Programming with Go
After a deep introduction to the benefits and challenges of concurrent programming, this book explains in detail the Go concurrency primitives and patterns in a practical approach. Abundant examples will be provided with the use of goroutines, channels, and the sync package to show how you write concurrent programs efficiently and safely.