One of my goals of 2014 was to learn a new programming language, and for various reasons I decided on Go. While my learning progress has been pretty terrible for most of the year, I was able to make pretty good progress this week.
What made me get to 40% this month? Several things, but by far the most important one was A Tour of Go.
I feel that the Tour could be improved by adding three things – syntax highlighting to the code in the console, more exercises, and including solutions to the exercises. Apart from that, I think it is a perfect learning resource.
My thoughts on Go? I think it is an interesting language, and something that I will most certainly delving into more. I’d read some Go code before (mostly Docker code) so I was vaguely aware of what the language looked like. I was initially a bit hesitant about the fact that Go has both high level (e.g. functional programming) and low level (e.g. pointers) features, but I think I quite like this ability to have and use both. The concurrency primitives look excellent, and I can’t wait to write some code using it. Another thing that scared me a little was the lack of classes, but structs + interfaces seem to be powerful enough to deal with that. I’ve read online about Go’s lack of generics being a problem, but I haven’t written enough code in Go to comment on this issue. I really liked the fact that the Go compiler doesn’t allow you to compile code that has unused imports or unused variables.