The strange little gerbil of Go has become a beloved creature for many programmers. The Go language was first released in 2007 and it was fostered right at Google.
It’s definitely one of the fastest-growing languages for web servers and networking. But it’s also a general programming language that you can use for pretty much everything, and there are tons of books to help you learn the ropes without any struggle.
Take a look over this list and see what you can find. Whether you’re a complete beginner or a semi-skilled coder these books are excellent for anyone learning Go from scratch.
If you’re a complete beginner looking for a solid Go book then I recommend Go in Action. It teaches through practical examples and case studies where you’ll study realistic scenarios using Go. Definitely a quality intro guide even for aspiring non-techie programmers.
The most authoritative resource for modern programming is the book The Go Programming Language. It spans 400 pages full of exercises with clear explanations of how programming languages work from the ground up.
You do not need any prior knowledge to work through the lessons in this book. They’re extremely simple to pick up and you can learn so much just from tinkering with Go on your own.
The writing style is accessible even for complete beginners who have never written a line of code in their life. This can work well as a beginner’s book, although it is very technical and goes into a ton of detail.
If you want to learn Go maybe do some background research online first. After that you’ll know if you want to continue learning and if this book would work for you.
Manning’s practical approach to teaching is always refreshing and it’s fantastic to see how they’ve covered the Go language in this book.
Go in Practice works much like a step-by-step learning resource where you’ll study 70 different examples of Go programs and how they work. The authors take you through the language starting with a very simple “hello, world!” application.
From there you’ll delve into the CLI and pick up tips for local scripting through the command line. This includes basic math computations, working with routing, and learning goroutines for concurrency.
If you don’t understand any of these ideas don’t worry! The writing style is very clear and concise so you should have no trouble learning the ropes fast.
And if you can’t pick up a specific topic you can always Google for solutions on the web.
Another related Manning book is Go in Action, this one a bit simpler yet also more practical for absolute beginners.
By following these exercises you’ll get more tangible real-world examples that force you to learn ideas while building upon your knowledge. Each lesson gets progressively more complex while adding previous ideas into the lessons.
This forces you to really internalize the Go language and how it all comes together in the real world. You’ll learn all about data structures, local testing, concurrency, and using Go’s standard library.
Presentation techniques are flawless and this is certainly a reasonable intro for beginners. It may be somewhat tough to dig through the code without any prior coding experience, but it is definitely doable and the exercises will teach you more than any theory book can.
As a general purpose language there’s a lot you can do with Go. It was built to run fast and concurrency + scalability are two crucial subjects to understand.
The book Introducing Go: Build Reliable, Scalable Programs is very short but very sweet. It’s only 120 pages long and it covers a lot of the fundamentals of Go in a pithy writing style.
If you already know some programming in another language this book will be a piece of cake. I think it’s better suited for complete novices who want a simple intro without grabbing a massive title.
These exercises are not as practical for the real world but they do an excellent job showcasing what you can do in Go. By the end of this book you should feel comfortable writing your own applications and expanding your knowledge on your own.
Believe it or not you can actually run Go code on web servers. This lets developers create scalable programs that run as high-performance applications on any computer.
Sau Sheong Chang’s Go Web Programming teaches modern design principles for the web and how to apply these to your work. You’ll learn about dependency injection and how to write concurrent applications for the web(somewhat tricky but very fun!).
You’ll find a ton of practical exercises outlining all of the main techniques including API calls for traversing XML/JSON data. Benchmarking, unit testing, and scaling your applications are also covered in detail.
Later chapters talk about PaaS applications running on Go and how to maintain your projects with a container platform like Docker.
If you have any interest in using Go for the web this book is a must-own.
If you are completely brand new to Go and need a short simple resource to learn then you should skim through this book.
Go Programming Language: Easy Guide Book by Steven Keller offers a fully-fledged guide to the Go language. It teaches you concurrent programming from scratch and how to use the HTTP/2 protocol in your project work.
You’ll learn about the Go client and how TCP/IP calls work using sockets. Go has a fairly large standard library for networking but you can also rely on 3rd party APIs if you’re willing to dig around on the web.
I won’t say this book teaches you everything about Go. In fact, it’s really just the tip of the iceberg.
Still it’s a sweet resource for beginners who aren’t sure where to start.
Because Go is such a simplified language it can be confusing to understand what’s going on with the codebase.
In The Way To Go you’ll learn how to understand this simplified syntax and why it’s so much different than other languages. The author Ivo Balbaert has a way of writing that matches the simplistic nature of Go code.
Early chapters explain the basics of Go and how to get it setup on your computer. From there you’ll learn about structs, maps, tree systems, and parallel programming which is a staple for most Go development.
This book also explains best practices for each chapter along with patterns you should avoid. It’s the best primer to set you on track for executing Go code that’ll stand the test of time.
Go is such a nuanced language that it takes a lot of practice to understand which techniques work best. Or you could get a book like Go Programming Blueprints that’ll teach you all these techniques right from the start!
This book is incredibly simple to work through and it spans 250 pages of detailed concepts. All of these concepts are taught using examples and you’ll learn the “good” practices compared against the not-so-good ones.
Please note this book is not for complete beginners. You absolutely must have some Go programming experience(or at least any programming experience) before you can get anything from this title.
It does work well if you’re brand new to Go, but you really need to understand the concepts of variables/functions and how code typically works.
Here’s another web-based guide covering Go for web applications. Level Up Your Web Apps With Go spans 260 with tons of practical examples to help you build real working websites from scratch.
But you aren’t just building simple boring landing pages. You’re building complex applications that can connect into databases, authenticate users, and run data requests using concurrent programming.
Go is phenomenal for all this stuff which makes it a surprisingly beautiful language for web programming. It’s definitely not the “norm” and most people won’t understand why Go could be such a great tool for webapps.
But once you learn the basics working through this book you’ll look at web programming in a whole new light.
The somewhat lengthy Web Development with Go book is yet another incredible resource for learning how server-side Go operates.
This is an excellent reference for API work and building concurrent connections for larger web applications. You don’t need to have your own ideas or even really understand how these apps work. All you need is some work ethic and a reason to put some effort behind Go.
Through various exercises you’ll learn many different techniques for crafting Go projects. These include BDD-style testing and structuring projects on Google/Amazon cloud services like AWS. You’ll also pick up a few tips for MongoDB and custom database work.
If you’re willing to really dive into practical web development with Go then this book is 100% worth reading. It’s not even very long with just under 300 pages and a ton of reference material + exercises to practice.
Concurrency is a major part of Go programming because it’s the best way to speed up your application. This is very common with other languages too, but Go is practically built for concurrency.
That’s why Concurrency in Go is a worthwhile investment for anyone stuck on this topic.
Most beginner books do explain concurrency and offer a few examples to get you going. But this book really delves into the ideas around concurrency and how you should create applications with this in mind.
Parallel programming is a big topic under the umbrella of “concurrent” coding. It’s all covered in great detail and by the end of this book you should feel very confident writing concurrent applications on your own.
This book seems to fit a very specific audience of programmers who already know one(or a few) languages and want to pick up Go.
The writing style does not hold your hand or offer any special treatment for beginners. That’s why Programming in Go is a nice buy for any intermediate-level programmers who don’t know much about Go but want to learn.
Every single code example in this book is laid out clearly and explained in great detail. You can tell the author Mark Summerfield really knows his stuff. Through these code snippets you’ll learn a lot about how Go operates and how you can use your own methods in Go applications.
Later chapters get into idiomatic code and how you can use design patterns to simplify your workflow.
This book should take any programmer up to a solid comfort level with Go. It is by no means the biggest title or the best choice for everyone, but it does talk straight to you from one programmer to another.
Because Go works so well on client/server networking it’s fair to say there’s a lot you can do with this language. And Network Programming with Go is the ultimate guide showcasing how to use Go for your own ideas of quality networking.
You’ll learn about security issues and HTTPS connections, remote procedure calls, and web sockets connecting through HTML5.
If you’re going towards the web development route you may also want to brush up on your frontend coding skills. But you can get by with rudimentary HTML/CSS and create some amazing applications from scratch.
Keep this book in mind when you want to dive deeper into networking. It’s not the simplest guide in the world but it’ll really flesh out networking in Go to help you plan your own applications.
Go really isn’t that hard to pick up but it can take a while to master. Through practice you’ll learn where this language works best and how to best apply it into everyday life.
If you’re just getting started I recommend the two Manning books Go in Action followed by Go in Practice. These two should take any novice up to quite an adept level.
From there you can dive into web application programming, custom networking, or any other topic you wanna learn.