People ask me fairly often where to start with Go. This is the list I give them, in the order I would go through it. It is deliberately short — the biggest problem with most resource lists is that they hand you forty links and no sense of what to open first.

NOTE

This was written in 2022. The official material at the top has been kept current by the Go team and is still exactly what I would recommend; a few of the community blogs further down have not been updated since. I have left them in because the writing is still good, but check publication dates before trusting version-specific details — particularly anything predating generics in Go 1.18.

Start here

Take A Tour of Go (opens in a new tab) first. It runs in the browser, takes an afternoon, and covers enough syntax that the rest of the material stops looking foreign.

Then read these two, in this order:

  • How to Write Go Code (opens in a new tab) — how modules and packages fit together. Read it before you write anything non-trivial, because Go has firm opinions about layout and fighting them is miserable.
  • Effective Go (opens in a new tab) — the closest thing to an official style guide. This is the one that teaches you to write Go rather than write your previous language in Go syntax.

Once you can read Go

For tutorials at a gentler pace, golangbot (opens in a new tab) and TutorialEdge (opens in a new tab) both work through the language in order.

Books

Going deeper

Keeping up

If you only do one thing

Read the standard library. Not all of it — pick a package you already use, net/http or io or strings, and read the source. Go's standard library is written to be read, and an hour in there teaches you more about how to write Go than any tutorial will.