How I started writing Go
..and continue to learn it
What worked for me may not work for everyone, but hopefully some of this will be useful. For the most part, this assumes you already have familiarity with at least one other programming language.
-
Listen to a talk by one of the founders, like Rob Pike or Robert Griesemer. This will give some foundational knowledge of why Go was formed.
-
Go through these:
- Learn Go in Y Minutes
-
Go is a really simple language. A lot of things that one would expect to be there are there. Once you want to learn a more idiomatic way to write go, go here: Effective Go - The Go Programming Language.
-
From here, my next step was to really learn how to do things in Go that I currently do in my primary language stack (which is developing a ton of CRUD REST or GraphQL apps with Java- Spring boot or Python-Flask). Towards this end, doing a project based book really helped: Let's Go - Alex Edwards then Let's Go Further.
Alex Edward's writing is some of the best technical writing there is and will teach you how to write production grade code. I would say this is the most useful resource that helped me get up to speed with Go, although it does not cover a lot of theoretical aspects.
-
For more deep dive and theory, anything by Arden Labs and Bill Kennedy always gets recommended (but I haven't gotten around to finishing it still, it is intense).
-
If you prefer books, you can either pick up Jon Bodner's Learning Go or The Go Programming Language https://www.gopl.io/ (which has kind of been considered the Go bible)
-
To stay updated, I tuned in to the conversations in the Go Community in the company, the reddit sub r/golang and Jon Calhoun's newsletter.
-
Although it is outside of one's control, it helps vastly if you are part of a team that writes Go code, and have fellow colleagues who can effectively review your code.