I am not particularly fond of Go, but I work with Kubernetes, and Go is to Kubernetes what C is to Unix. So after a point, you have to know some Go in order to understand more of Kubernetes’s implementation, design and other quirks (and why not, implement something too).
My first try was with The Go Programming Language. Up in the mountains, no Internet, just me, the book and my laptop. It felt like when reading K&R, only it didn’t. Times have changed. This is not the way. The Book is OK to be by your side, but I need something else.
The second time was when I was asked to write a review of Go Systems Programming by Mihalis Tsoukalos. I read the book through and through and submitted corrections on errors and such and my opinion of it to the author and the publisher. But life happened and I paused from immediate need for Go and Kubernetes. I forgot almost all of Go that I learned through the process.
I then tried the Exercism track for Go. I’ve tried many languages on Exercism and I consider it a valuable tool for everyone. It is just not for me. That effort faded quickly.
I am now in my fourth attempt. Mind you, I am not trying to become super proficient in Go, or even idiomatic Go. I want to have the relative ease to understand code that I read and to be able to write 100 lines of Go that work. This time I’ve chosen Go by Example. I’m following this tutorial one example per day. I had a small hiatus during the holidays, but today I came back. This looks like it may work.
That’s why I am writing the post. It is a sort of public commitment. Like Stickk without Stickk.
One thought on “I am in my fourth attempt of learning Go”
1. Grab a copy of “Programming in Go: Creating Applications for the 21st Century (Developer’s Library)” – do the exercises on every chapter This should get you a more-than-passing familiarity with the language.
2. With the skills acquired from step 1, port something from a language you know to Go. Bonus points if porting it to Go has a tangible benefit.
3. If you are doing recreational programming at, say, Github (or similar) write a couple of programs in Go. Keep the “The Go Programming Language” handy.
The above is not a ton of effort and you can get tangible results.