1.The Go Programming Language
Carefully crafted to make you competent - if you are patient enough give yourself the time to learn.
Not a book for the impatient; but if you're a novice, this is the book to trust to take you through from beginner to competence and well on your way to proficiency. I've been a professional C/UNIX developer since the mid-80's and Java and Python for the past 20 years. Don't get me wrong: Go is not a difficult language to learn; but I thought I could pick it up in a few hours. There are serious ground-shattering differences between Go and everything else. Although it borrows liberally from C, Java, and Python - it really is a different approach because the language authors aren't afraid to address the shortcomings made in those and other languages for the sake of conforming with the ideas long held to be "norms".
2.Go in Practice
Go in Practice guides you through dozens of real-world techniques in key areas. Following a cookbook-style Problem/Solution/Discussion format, this practical handbook builds on the foundational concepts of the Go language and introduces specific strategies you can use in your day-to-day applications. You'll learn techniques for building web services, using Go in the cloud, testing and debugging, routing, network applications, and much more. After finishing this book, you will be ready to build sophisticated cloud-native Go applications.
3.Concurrency in Go
The author's approach is clear, concise and extremely well organized. Some great examples in the book take the time to show a basic approach and how to grow it into well-formed, concurrent process. With that in mind, that is how the book is organized as well: taking a simplistic approach and growing into a much more sophisticated solution. This is the way many excellent high level engineers and architects I know work and how I try to work. There's even some unit testing and benchmarking code in there that helps show how to fit some of the pieces together.
4.Go Web Programming
Go Web Programming teaches you how to build web applications in Go using modern design principles. You'll learn how to implement the dependency injection design pattern for writing test doubles, use concurrency in web applications, and create and consume JSON and XML in web services. Along the way, you'll discover how to minimize your dependence on external frameworks, and you'll pick up valuable productivity techniques for testing and deploying your applications.
5.Go in Action
Go in Action is for any intermediate-level developer who has experience with other programming languages and wants a jump-start in learning Go or a more thorough understanding of the language and its internals. This book provides an intensive, comprehensive, and idiomatic view of Go. It focuses on the specification and implementation of the language, including topics like language syntax, Go's type system, concurrency, channels, and testing.
6.Head First Go