Maybe you’ve heard of golang (henceforth Go): a Google-born, concurrency-friendly, statically typed language with a growing community of devotees. Although the size of the language’s collection of syntax pales in comparison next to, say, Ruby’s, Go also handles a few key programming concepts in ways that differ from the FP and OOP languages we’re used to so that a seemingly simple question like “Is Go object oriented?” takes 2,505 words to answer.
I began learning Go in preparation for contributing to Diego. One of the first and most comprehensive resources I came across, aside from the Go documentation itself, was a free online manual called An Introduction to Programming in Go by Caleb Doxsey. The book turned out to be an excellent starting point for learning the language. That said, I found myself skimming some chapters, rereading others, and seeking outside resources as I went along. In this post, I’ll use Caleb’s book as the cornerstone of a suggested curriculum for programmers who would like to pick up Go as an additional language.