This is an experiment in self-teaching Go, starting from complete unfamiliarity with the language. The goal is to provide a step-by-step educational resource that you can follow at your own pace, where each phase effectively builds on that which came before it with as little unnecessary overlap as possible. It's very much a "living document" or work in progress, and will likely be under constant revision as I revisit advice, update sources, tweak ordering and learn more about how these resources interact to create a well-rounded knowledge of the language. Please feel free to issue feedback and make any suggestions you feel are pertinent.
- Go through the tour at https://tour.golang.org/list
- Promptly abandon all of those plans you have to use channels everywhere
- Read the language spec once over: https://golang.org/ref/spec
- Read Effective Go: https://golang.org/doc/effective_go.htm