This page lists a few resources for programmers interested in learning about the Go language.
A selection of books about Go.
- The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan
- Go in Action by Brian Ketelsen, Erik St. Martin, and William Kennedy
- Programming in Go by Mark Summerfield
- Learning Go by Miek Gieben (nearing completion)
- More books, http://go-lang.cat-v.org/books
Installing Go and configuring your workspace
Start here to learn how to set up a workspace to write Go code.
- How to Write Go Code
- Writing, building, installing, and testing Go code
- Five suggestions for setting up a Go project
Editors and IDEs
- Sublime Text via the GoSublime plugin.
- Vim via the go-vim plugln.
- GoLand from Jetbrains, the makers of IDEA.
- An incomplete list of Go tools.
- and more from the Go Community Wiki.
Once you’ve got your environment set up, here are some excellent resources to learn Go.
- The Go programming language tour
- The Go Bootcamp Book, everything you need to know to get started with Go, by Matt Aimonetti.
- Go by example
- Effective Go
- The Go language FAQ
- The Go style guide
- Damian Gryski’s Gophervids is an aggregator for recordings of Go meetups and conferences.
- Going Go Programming by William Kennedy
- An incomplete list of Go tools by Dominik Honnef
- Go Koans
- Writing table driven tests in Go
- Writing benchmarks in Go
- Learn X in Y minutes (where X == Go) by Sonia Keys
- Cross compilation with Go
- Tutorial: Go (Golang) Pointers in 5 Minutes
Here is a selection of presentations about Go targeted at those wanting to learn about the language.
- Getting started with Go, by Andrew Gerrand.
- A tour of Go, by Russ Cox.
- Go at Google, Rob Pike, SPLASH 2012.
- Organising Go code by David Crawshaw
- Naming by Andrew Gerrand
- Testing techniques by Andrew Gerrand
- More presentations, talks.golang.org and the community wiki.
Interact with the Go programming community.
- The Go Forum.
- #go-nuts IRC channel at Freenode. For the truly curious the channel is logged by botbot.me.
- Gophers’ community on Slack (signup here for an account).
- #golang on Twitter.
- Go+ community on Google Plus.
- Go user groups and meetups.
- golang-nuts mailing list. This is a high volume list. You may find it more rewarding to interact with the group via email, rather than the Google Groups web interface.
- Gopher Academy.
- Go questions on Stackoverflow.
- The Go Programming Language Blog.
- Go community Wiki.