I want to learn Go — how to start?

Bartłomiej Klimczak
developer2.0
Published in
3 min readJan 4, 2020

You can find a lot of materials about Go (including this blog) but it’s hard to find the best place to start. This article’s goal is, to sum up, the most valuable materials I found to help others. I focus only on free materials.

Fundamentals

  • The Go tour — IMO the absolute must-do. You can try Go without installing it. You’ll learn some basic syntax and concepts step by step,
  • Go by example — if you’re confused about how to use a certain part of the language it’s possible you’ll find an example of it on this page. Extremely useful.
  • https://golangnews.org/ and http://www.go-gazette.com/ newsletters — it’s a great source of good quality materials related to Go,
  • 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs — a list of “gotchas” in Go. It’s a long list and there’s no way you’ll remember everything but it’s a good reference for the future.
  • How to Write Go Code — some people recommend it but actually I don’t. It uses GOPATH and doesn't use go modules what makes it a bit outdated.
  • Golang Tutorial for Beginners [video] — very basic introduction to the language but with a quite good explanation of some context you may not catch while finishing The Go tour. Recommended as a follow-up.
  • Learn Go in 12 Minutes [video] — covers the very basic Go aspects. You definitely won’t know how to write Go code after watching it but it’s a good demo of the syntax and a few Go concepts.
  • gocode.io — if you like gamification then it can be a fun way of starting playing with the language.

After that…

  • Effective Go — it’s a list of tips for writing clear, idiomatic Go code. It’s the gold standard and definitely must-read.
  • Go Code Review Comments — as authors say — it’s a supplement to Effective Go. It’s an official list of common mistakes with an explanation.
  • Go blog — if you want to be up-to-date with changes to the language and its tools
  • Ardan Labs blog — one of the best Go blogs. You’ll find a series of post about the GC or go modules and much more.

Books

  • The Little Go Book — a bit old book which covers fundamental aspects of Go. It doesn’t contain anything special. I’d rather think about it as the supplement of The Go tour.
  • An Introduction to Programming in Go — much more complex book which tells you more about concurrency or testing (veeery basic). It contains simple “problems” to solve which will help you understand those aspects better.
  • Go Bootcamp — basically, it covers the same topics as the book above but in more details. It contains links to external resources like Rob’s talk what’s a huge plus.
  • Webapps in Go — If you want to learn how to write a web app — the book is for you. You’ll find there how to connect to a DB, how to work with forms, upload a file etc.
  • Test-driven development with Go — writing tests in prev materials isn’t covered very well. In some cases, only in a few sentences. Unfortunately, it’s not finished yet.
  • Build a web application with golang — a book translated into many languages where you’ll learn how to build a web application in Go using beego.

As you may guess, the best teacher is practice! I hope that the list will help you find useful materials and will speed your learning up! If you know any other cool materials, let me know in the comments section below. Cheers!

Buy me a coffee

Tags: #golang

Originally published at https://developer20.com.

--

--

Bartłomiej Klimczak
developer2.0

I'M a backend engineer, blogger, speaker and open-source developer :)