Resources to learn Go(lang)

Engineering

For some time, I have been fascinated by the Go programming language launched by Google in 2009. I am a person with a scripting language background (PHP and Python) and was motivated to learn a new programming language.

I chose Go(lang) because I wanted to do some system programming with concurrency support.

Because I share my love with my friends and colleagues, I am often asked How do I start with Go?, or Do you have some excellent resources to learn Go?. This article is about which resources I used to learn Go.

  1. A Tour of Go is the best start. It provides an overview of the syntax and the features in a concise way.
  2. The book Go in Action is an excellent recommendation to get some background, best practices, pitfalls, and use cases for language features. Even though it is a MEAP, this is worth reading.
  3. The guide for golang: Effective Go. It describes all features with background and examples.
  4. Read foreign Go code of projects like moby, etcd or terminus.

And of course: Next to this start your own Go project. I recommend starting with it after you finish A Tour of Go and while reading Go in Action.

Some ideas for a project:

  • A small REST API (HTTP server)
  • A small chat client (sockets)
  • A small web/mailing list crawler (concurrency)

Further useful resources are:

And now: Have fun learning a new programming language!

Thread at Hacker News