You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

305 lines
24 KiB
Markdown

Awesome Go Books [![Build Status](https://travis-ci.org/dariubs/GoBooks.svg?branch=master)](https://travis-ci.org/dariubs/GoBooks) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
9 years ago
====
* [Books](#books)
* [Starter Books](#starter-books)
* [Advanced Books](#advanced-books)
* [Web Development](#web-development)
* [Resources](#resources)
9 years ago
9 years ago
**Books**
====
9 years ago
**Starter Books**
9 years ago
----
9 years ago
### [The Little Go Book](http://openmymind.net/The-Little-Go-Book/) *Free*
<img src="http://openmymind.net/assets/go/title.png" width="120px"/>
The Little Go Book is a free introduction to Google's Go programming language. It's aimed at developers who might not be quite comfortable with the idea of pointers and static typing. It's longer than the other Little books, but hopefully still captures that little feeling.
### [An Introduction to Programming in Go](http://www.golang-book.com/) *Free*
9 years ago
<img src="http://www.golang-book.com/public/img/intro/cover.4194045234.png" width="120px"/>
This book is a short, concise introduction to computer programming using the language Go. Designed by Google, Go is a general purpose programming language with modern features, clean syntax and a robust well-documented common library, making it an ideal language to learn as your first programming language.
This book is free to [read online](http://www.golang-book.com/) or [pdf form](http://www.golang-book.com/public/pdf/gobook.pdf).
9 years ago
### [Go Bootcamp](http://www.golangbootcamp.com/) *Free*
9 years ago
<img src="https://softcover.s3.amazonaws.com/38/GoBootcamp/images/cover-web.png" width="120px"/>
9 years ago
This companion book contains material initially written specifically for this event as well as content from Google & the Go team under Creative Commons Attribution 3.0 License and code licensed under a BSD license.
### [Learning Go](http://www.miek.nl/go) *Free*
<img src="https://www.miek.nl/go/fig/bumper-inverse.png" width="120px"/>
A online book to start learning Golang. It features numerous exercises (and answers).
9 years ago
The [markdown source is available on Github](https://github.com/miekg/learninggo).
### [Go for Javascript Developers](https://github.com/pazams/go-for-javascript-developers) *Free*
<img src="https://raw.githubusercontent.com/pazams/go-for-javascript-developers/master/src/images/thumb.png" width="120px"/>
This book helps Javascripters become Gophers. Outlining the differences between these languages makes it easier to switch back and forth, and can help mitigate potential issues when doing so.
### [Go in Action](https://www.manning.com/books/go-in-action)
<img src="https://images.manning.com/120/160/resize/book/c/4037d5d-e5e5-49bf-a3c1-480be2907eaa/Kennedy-GO-HI.png" width="120px">
Go in Action introduces the Go language, guiding you from inquisitive developer to Go guru. The book begins by introducing the unique features and concepts of Go. (We assume you're up to speed with another programming language already, so don't expect to spend a lot of time rehearsing stuff you already know.) Then, you'll get hands-on experience writing real-world applications including web sites and network servers, as well as techniques to manipulate and convert data at speeds that will make your friends jealous. In the final chapters, you'll go in-depth with the language and see the tricks and secrets that the Go masters are using to make their applications perform. For example, you'll learn to use Go's powerful reflection libraries and work with real-world examples of integration with C code.
### [Go Programming Blueprints - 2nd Ed.](https://www.packtpub.com/application-development/go-programming-blueprints-second-edition)
9 years ago
<img src="https://www.packtpub.com/media/catalog/product/cache/e4d64343b1bc593f1c5348fe05efa4a6/b/0/b05569.png" width="120px"/>
This book shows you how to build powerful systems and drops you into real-world situations. Scale, performance, and high availability lie at the heart of our projects, and the lessons learned throughout this book will arm you with everything you need to build world-class solutions.
9 years ago
### [Programming in Go: Creating Applications for the 21st Century](http://www.informit.com/store/programming-in-go-creating-applications-for-the-21st-9780321774637)
<img src="http://www.informit.com/ShowCover.aspx?isbn=9780321774637&type=f" width="120px"/>
Programming in Go brings together all the knowledge you need to evaluate Go, think in Go, and write high-performance software with Go. Summerfield presents multiple idiom comparisons showing exactly how Go improves upon older languages, calling special attention to Gos key innovations. Along the way, he explains everything from the absolute basics through Gos lock-free channel-based concurrency and its flexible and unusual duck-typing type-safe approach to object-orientation.
9 years ago
### [The Go Programming Language](http://gopl.io/)
<a href='http://gopl.io/'><img src="http://gopl.io/cover.png" width="120px"/></a>
*The Go Programming Language* is the authoritative resource for any
programmer who wants to learn Go.
Alan A. A. Donovan and Brian W. Kernighan show you how to write clear
and idiomatic Go to solve real-world problems.
The book does not assume prior knowledge of Go nor experience with
any specific language, so you'll find it accessible whether you're
most comfortable with JavaScript, Ruby, Python, Java, or C++.
The book features hundreds of interesting and practical examples of
idiomatic Go code that cover the whole language, its most important libraries,
and a wide range of applications.
Source code is freely available for download from the book's companion web site
[gopl.io](http://gopl.io/),
and may be conveniently fetched, built, and installed using the `go get` command.
### [Introducing Go: Build Reliable, Scalable Programs](http://shop.oreilly.com/product/0636920046516.do)
<a href="http://shop.oreilly.com/product/0636920046516.do"><img src="http://akamaicovers.oreilly.com/images/0636920046516/lrg.jpg" width="120px"/></a>
Perfect for beginners familiar with programming basics, this hands-on guide provides an easy introduction to Go, the general-purpose programming language from Google. Author Caleb Doxsey covers the language's core features with step-by-step instructions and exercises in each chapter to help you practice what you learn.
### [Get Programming with Go](https://www.manning.com/books/get-programming-with-go?a_aid=nathany&a_bid=53f68821)
<a href="https://www.manning.com/books/get-programming-with-go?a_aid=nathany&a_bid=53f68821"><img src="https://images.manning.com/720/960/resize/book/3/ddd56a6-ba2b-4ca4-bda2-540761b91c55/Go-Youngman_hi-res_REV.png" width="120px"/></a>
9 years ago
*Get Programming with Go* introduces you to the powerful Go language without confusing jargon or high-level theory. By working through 32 quick-fire lessons, you'll quickly pick up the basics of the innovative Go programming language!
### [Go Programming by Example](https://www.amazon.com/Go-Programming-Example-Agus-Kurniawan-ebook/dp/B00TWLZVQQ)
<a href="https://www.amazon.com/Go-Programming-Example-Agus-Kurniawan-ebook/dp/B00TWLZVQQ"><img src="https://images-na.ssl-images-amazon.com/images/I/41tDoH9l0GL.jpg" width="120px"/></a>
Go, commonly referred to as golang, is a programming language initially developed at Google in 2007. This book helps you to get started with Go programming. It describes all the elements of the language and illustrates their use with code examples.
### [Go Recipes](http://www.apress.com/us/book/9781484211892)
<a href="http://www.apress.com/us/book/9781484211892"><img src="https://images.springer.com/sgw/books/medium/9781484211892.jpg" width="120px"/></a>
Solve your Go problems using a problem-solution approach. Each recipe is a self-contained answer to a practical programming problem in Go. Go Recipes contains recipes that deal with the fundamentals of Go, allowing you to build simple, reliable, and efficient software. Other topics include working with data using modern NoSQL databases such as MongoDB and RethinkDB. The book provides in-depth guidance for building highly scalable backend APIs in Go for your mobile client applications and web client applications.
### [Learning Go programming](https://www.packtpub.com/application-development/learning-go-programming)
<a href="https://www.packtpub.com/application-development/learning-go-programming"><img src="https://vladimirvivien.github.io/learning-go/front-cover-small-243x300.jpg" width="120px"/></a>
*Learning Go Programming* is a book intended to help new, and seasoned programmers alike, to get into the Go programming language. The book distills the language specs, the documentations, the blogs, the videos, slides, and the author's experiences of writing Go into content that carefully provides the right amount of depth and insights to help you understand the language and its design.
### [API Foundations in Go](https://leanpub.com/api-foundations)
<a href="https://leanpub.com/api-foundations"><img src="https://s3.amazonaws.com/titlepages.leanpub.com/api-foundations/hero?1504290765" width="120px"/></a>
With this book you'll learn to use Go, taking advantage of it's multi-threaded nature, and typed syntax. Starting your API implementation in Go is your first step towards what a rock solid API should be.
**Advanced Books**
9 years ago
---
9 years ago
### [Test-driven development with Go ](https://leanpub.com/golang-tdd) *Free*
9 years ago
A short guide to Test-driven development in golang. free to [read online](https://leanpub.com/golang-tdd/read).
### [Go programming language secure coding practices guide](https://checkmarx.gitbooks.io/go-scp/) *Free*
The main goal of this book is to help developers avoid common mistakes while at the same time, learning a new programming language through a "hands-on approach". This book provides a good level of detail on "how to do it securely" showing what kind of security problems could arise during development.
### [Network Programming with Go](https://www.apress.com/us/book/9781484226919)
9 years ago
<img src="https://images.springer.com/sgw/books/medium/9781484226919.jpg" width="120px"/>
Dive into key topics in network architecture and Go, such as data serialization, application level protocols, character sets and encodings. This book covers network architecture and gives an overview of the Go language as a primer, covering the latest Go release.
Beyond the fundamentals, Network Programming with Go covers key networking and security issues such as HTTP and HTTPS, templates, remote procedure call (RPC), web sockets including HTML5 web sockets, and more.
### [Mastering Concurrency in Go](http://shop.oreilly.com/product/9781783983483.do)
9 years ago
<img src="http://akamaicovers.oreilly.com/images/9781783983483/lrg.jpg" width="120px"/>
9 years ago
This book will take you through the history of concurrency, how Go utilizes it, how Go differs from other languages, and the features and structures of Go's concurrency core. Each step of the way, the book will present real, usable examples with detailed descriptions of the methodologies used. By the end, you will feel comfortable designing a safe, data-consistent, high-performance concurrent application in Go.
9 years ago
### [Go in Practice](http://www.manning.com/butcher/)
<img src="http://www.manning.com/butcher/butcher_cover150.jpg" width="120px"/>
Go in Practice guides you through dozens of real-world techniques in key areas like package management, microservice communication, and more. 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.
### [A Go Developer's Notebook](https://leanpub.com/GoNotebook/)
<img src="https://s3.amazonaws.com/titlepages.leanpub.com/GoNotebook/large?1425551366" width="120px"/>
A developer's exprience in golang.
9 years ago
### [The Go Programming Language Phrasebook](http://www.informit.com/store/go-programming-language-phrasebook-9780321817143)
<img src="http://www.informit.com/ShowCover.aspx?isbn=9780321817143&type=f" width="120px"/>
Tested, easy-to-adapt code examples illuminate every step of Go development, helping you write highly scalable, concurrent software. Youll master Go-specific idioms for working with strings, collections, arrays, error handling, goroutines, slices, maps, channels, numbers, dates, times, files, networking, web apps, the runtime, and more.
### [Go Design Patterns](https://www.packtpub.com/application-development/go-design-patterns)
<img src="https://www.packtpub.com/media/catalog/product/cache/e4d64343b1bc593f1c5348fe05efa4a6/b/0/b05557.png" width="120px"/>
Learn idiomatic, efficient, clean, and extensible Go design and concurrency patterns by using TDD.
### [Black Hat Go](https://www.nostarch.com/blackhatgo)
[<img src="https://nostarch.com/sites/default/files/styles/uc_product/public/BHG_frcvr.png?itok=wLh62MKg" width="120px"/>](https://www.nostarch.com/blackhatgo)
In Black Hat Go, you'll learn how to write powerful and effective penetration testing tools in Go, a language revered for its speed and scalability. Start off with an introduction to Go fundamentals like data types, control structures, and error handling; then, dive into the deep end of Gos offensive capabilities.
### [Concurrency in Go](http://shop.oreilly.com/product/0636920046189.do)
[<img src="https://covers.oreillystatic.com/images/0636920046189/cat.gif" width="120px"/>](http://shop.oreilly.com/product/0636920046189.do)
Concurrency can be notoriously difficult to get right, but fortunately, the Go open source programming language makes working with concurrency tractable and even easy. If youre a developer familiar with Go, this practical book demonstrates best practices and patterns to help you incorporate concurrency into your systems.
### [Hands-On Dependency Injection in Go](https://amzn.to/2Q6dLQC)
<img src="https://images-na.ssl-images-amazon.com/images/I/51%2B8EdihuKL._SX404_BO1,204,203,200_.jpg" width="120px"/>
Hands-On Dependency Injection in Go takes you on a journey, teaching you about refactoring existing code to adopt dependency injection (DI) using various methods available in Go.
Of the six methods introduced in this book, some are conventional, such as constructor or method injection, and some unconventional, such as just-in-time or config injection. Each method is explained in detail, focusing on their strengths and weaknesses, and is followed with a step-by-step example of how to apply it. With plenty of examples, you will learn how to leverage DI to transform code into something simple and flexible.
Hands-On Dependency Injection in Go takes a pragmatic approach and focuses heavily on the code, user experience, and how to achieve long-term benefits through incremental changes.
### [Hands-On Software Engineering with Golang](https://www.packtpub.com/gb/programming/hands-on-software-engineering-with-golang)
<img src="https://www.packtpub.com/media/catalog/product/cache/ecd051e9670bd57df35c8f0b122d8aea/9/7/9781838554491-original.png" width="120px"/>
This Golang book distills industry best practices for writing lean Go code that is easy to test and maintain, and helps you to explore its practical implementation by creating a multi-tier application called Links R Us from scratch. Youll be guided through all the steps involved in designing, implementing, testing, deploying, and scaling an application. Starting with a monolithic architecture, youll iteratively transform the project into a service-oriented architecture (SOA) that supports the efficient out-of-core processing of large link graphs.
Youll learn about various cutting-edge and advanced software engineering techniques such as building extensible data processing pipelines, designing APIs using gRPC, and running distributed graph processing algorithms at scale. Finally, youll learn how to compile and package your Go services using Docker and automate their deployment to a Kubernetes cluster.
9 years ago
**Web Development**
----
### [Building Web Apps with Go](https://www.gitbook.com/book/codegangsta/building-web-apps-with-go/details) *Free*
9 years ago
A good resource for start Building Web Apps with Go. Free to [read online](http://codegangsta.gitbooks.io/building-web-apps-with-go/content/).
9 years ago
### [Build Web Application with Golang](https://www.gitbook.com/book/astaxie/build-web-application-with-golang/details) *Free*
Another awesome book for learning Web Development in Golang. Free to [read online](http://astaxie.gitbooks.io/build-web-application-with-golang/content/en/index.html)
9 years ago
### [Webapps in Go the anti textbook](https://github.com/thewhitetulip/web-dev-golang-anti-textbook) *Free*
<img src="https://github.com/thewhitetulip/web-dev-golang-anti-textbook/raw/master/cover.jpg" width="120px"/>
This book was written to teach how to develop web applications in Go for people who know a bit of Go and have basic information about web applications in general. We (you) will build a webapp without using a third party framework and using as few external libraries as possible. The advantage is that you'll learn a lot when you code without a framework.
### [Mastering Go Web Services ](http://shop.oreilly.com/product/9781783981304.do)
<img src="http://akamaicovers.oreilly.com/images/9781783981304/lrg.jpg" width="120px"/>
9 years ago
This book will take you through the most important aspects of designing, building, and deploying a web service utilizing idiomatic REST practices with a focus on speed, security, and flexibility. You will begin by building your first API in Go using the HTTP package. You will look at designing and building your application including popular design structures like Model-View-Controller. You will also understand methods for deploying code to staging and development. Finally, you will see how the security features in Go can be used for protection against SQL injection, and sensitive data compromise.
### [Level Up Your Web Apps With Go](https://learnable.com/books/level-up-your-web-apps-with-go)
9 years ago
<img src="http://akamaicovers.oreilly.com/images/9780992461294/lrg.jpg" width="120px"/>
This book gives you all you need to use Go in your web applications. Youll learn the basic concepts — language structures, the standard library, and Go tools — then tackle more advanced features like concurrency concepts, testing methodologies, and package structures.
At each step, youll get advice for better coding in Go. Youll see how to structure projects, how to use concurrency effectively, and best practices for testing—as well as many other hints and tips gleaned from real world experience of developing web applications with Go.
9 years ago
### [Go Web Programming](http://www.manning.com/chang/)
<img src="http://www.manning.com/chang/chang_cover150.jpg" width="120px"/>
Go Web Programming teaches you how to build web applications in Go using modern design principles. You'll work through numerous examples that introduce core concepts like processing requests and sending responses, template engines, and data persistence. You'll also dive into more advanced topics, such as concurrency, web application testing and deployment both to barebones servers and PaaS providers.
### [Cloud Native Go: Building Web Applications and Microservices for the Cloud with Go and React](https://www.amazon.com/Cloud-Native-Applications-Microservices-Developers/dp/0672337797)
<a href="https://www.amazon.com/Cloud-Native-Applications-Microservices-Developers/dp/0672337797"><img src="https://images-na.ssl-images-amazon.com/images/I/51oy5Nd9BoL._SX384_BO1,204,203,200_.jpg" width="120px"/></a>
Today, companies and developers need to respond to changing markets at breakneck speeds. Organizations that aren't built on highly-available, rapidly-evolving software are going the way of the dinosaurs. Cloud Native Go brings together the knowledge developers need to build massive-scale cloud applications that meet the insatiable demands of today's customers and markets.
### [Web Development with Go: Learn to Create Real World Web Applications using Go](https://www.usegolang.com/)
<a href="https://static-2.gumroad.com/res/gumroad/9387844778319/asset_previews/7446424985b5f9cb53689105d297021d/retina/Cover300ppi.png" width="120px"/></a>
Web Development with Go was written to teach both beginners and experts how to create and deploy a real web application. You won't be building a boilerplate TODO list, but will instead be creating and deploying a production ready photo gallery application, similar to Pixieset, from scratch. The book assumes no previous web development experience and covers everything you need to know to successfully build your own web application.
### [Go: Building Web Applications](https://amzn.com/B01LD8K5C0)
<a href="https://amzn.com/B01LD8K5C0"><img src="https://images-na.ssl-images-amazon.com/images/I/51vKBWRztbL.jpg" width="120px"/></a>
This course is an invaluable resource to help you understand Go's powerful features to build simple, reliable, secure, and efficient web applications.
### [Building Microservices with Go](https://www.packtpub.com/application-development/building-microservices-go)
<img src="https://www.packtpub.com/media/catalog/product/cache/e4d64343b1bc593f1c5348fe05efa4a6/b/0/b05528.png" width="120px"/>
Whether you are planning a new application or working in an existing monolith, this book will explain and illustrate with practical examples how teams of all sizes can start solving problems with microservices. It will help you understand Docker and Docker-Compose and how it can be used to isolate microservice dependencies and build environments. We finish off by showing you various techniques to monitor, test, and secure your microservices.
### [12 Factor Applications with Docker and Go](https://leanpub.com/12fa-docker-golang)
<a href="https://leanpub.com/12fa-docker-golang"><img src="https://s3.amazonaws.com/titlepages.leanpub.com/12fa-docker-golang/hero?1503844662" width="120px"/></a>
A book filled with examples on how to use Docker and Go to create the ultimate 12 Factor applications. It goes over individual steps of [The Twelve-Factor App](12factor.net) guidelines and how to implement them with Go and Docker.
### [Build SaaS apps in Go](https://buildsaasappingo.com)
<a href="https://buildsaasappingo.com"><img src="https://buildsaasappingo.com/public/basaig.jpg" width="120"/></a>
Together, we'll build a strong, API-first, reusable codebase suitable for
building a SaaS or vanilla web application. By the end of the book you'll have
a solid framework to use as the starting point for future projects.
### [Let's Go!](https://lets-go.alexedwards.net/)
<img src="https://lets-go.alexedwards.net/sample/assets/img/cover.png" width="120px"/>
Let's Go teaches you step-by-step how to create fast, secure and maintainable web applications using Go. It guides you through the start-to-finish build of a real-world application — covering topics like how to structure your code, manage dependencies, authenticate and authorize users, secure your server and test your application.
Resources
====
### [Golang tutorial resources](https://webia.io/topic/golang-learning-resources)
### [A tour of Go](https://tour.golang.org/)
### [Video: Learn Go Syntax in one video](http://www.youtube.com/watch?v=CF9S4QZuV30)
### [Tutorials: Go by Example](https://gobyexample.com/)
### [Go Fundamentals Video Training](http://shop.oreilly.com/category/learning-path/go-fundamentals.do)
### [More Books on the Go Wiki](https://github.com/golang/go/wiki/Books)
### [TutorialEdge.net Course](https://tutorialedge.net/course/golang/)
### [Coursera Specialization: Programming with Go](https://www.coursera.org/specializations/google-golang/)
### [Course: Mastering Go Programming](https://www.udemy.com/course/mastering-go-programming)
### [Course: Web Development with Googles Go Programming Language](https://www.udemy.com/course/go-programming-language)
### [Golangbot.com Articles](https://golangbot.com/)
Contributing
====
Your contributions are always welcome, just follow [the rules](https://github.com/dariubs/GoBooks/blob/master/CONTRIBUTING.md)!
License
====
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.