For some time, I am fascinated by the go programing 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 programing 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 got some excellent resources to learn Go?. This article is about which resources I used to learn Go.
- The A Tour of Go is the best start. It provides an overview of the syntax and the features in a concise way.
- The book Go in Action is an excellent recommendation to get some backgrounds, best practices, pitfalls, and use-cases for language features. Even it is a MEAP, this is worth reading.
- The guide for golang: Effective Go. It describes all features with backgrounds and examples.
- Read foreign go code of projects like moby, etcd or termius.
And of course: Next to this start your own Go project. I recommend starting with it after you finished the A Tour of Go and during 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:
- Go by Example for example code how to use different features
- Golang weekly to keep updated on the Go community by email
- /r/golang to follow the Reddit community about Go
- golang-nuts the official golang user mailing list
- avelino/awesome-go to get a curated list of awesome Go frameworks, libraries, and software
And now: Have fun to learn a new programing language!