2022-12-31

Garden of Go

This is my curated list of Go links to talks, tutorials, articles, and other things that have impacted my learning of this wonderful language. While this is a post, expect it to be maintained regularly. If you want to suggest a link, please open an issue.

Getting started

New to Go? Start here.

go.dev

This is the official site for Go and the Go blog. You can download Go here, as well as take a tour of the language.

Effective Go

Still part of go.dev, but one of the first books you should read on how gophers do things in the language.

Go Code Review Comments

An intro to writing idiomatic Go, as well as some of the more idiomatic patterns in the language, like defining interfaces near consumers, etc.

Blogs to Follow

Some regularly updated blogs to check for Go news or things happening in the community.

Go Blog

Articles from the language maintainers themselves. There's a lot here, I'll try to pick out particular articles as they pertain to other categories.

Dave Cheney

Can't say enough that this writer and speaker has done for the community. He has articles and talks ranging from philosophical to deeply technical (yet approachable) deep dives on the language.

Go Beyond

Blog by Ben Johnson, creator of BoltDB and Litestream.

Bitfield Consulting (John Arundel and others)

I regularly recommend these articles and tutorials for any new thing in the language.

Big Nerd Ranch

My former Nerds(TM) add to this all the time, and I expect there will be more and more Go posts (to add to mine).

Tutorials

Go By Example

A litany of concise examples using different bits and pieces of the language and standard library.

Logrocket web server

Log Rocket's walkthrough for playing with a web server.

Official Tutorial for Error Handling

Pretty much required reading for errors in Go. Also check out the next iteration of this when the language hit 1.13 and added some more functionality for errors.

Keeping it simple

Talks and articles about one of the core tenets of Go: Simplicity.

Simplicity is Complicated

If you ever wanted to know why Go has made core decisions about itself, Rob Pike gives some answers.

SQLite and Go

David Crawshaw shows us all how to keep it simple with boring technology: a love of SQLite and Go.

Architecture

Go Structure Examples

Kat Zien tours different ways to not only structure Go applications, but ways to think about structuring components in general.

How I write HTTP services after eight years

A great post from Mat Ryer on how to evolve an application from simple to complex without immediately jumping to layers of indirection like unecessary interfaces.