I first learned Go in 2014. I didn’t do anything with it after I learned the basics. After all the years, I even forgot the syntax and the basic concepts. This time, however, I wanted to make sure I properly learned Go and implemented something useful in Go.
I’ve now been programming in Golang since a few weeks and I’m absolutely in love with the language. I enjoy writing code in Go, especially, as someone who has been programming in Ruby for a while now. The language has an amazing design with some really cool features. It’s amazing how simple it is to use Goroutines with Channels. Go removes the apprehension from dealing with concurrent programming.
It’s been a while since I’ve dabbled around a new programming language. A few years ago, I learned Swift and I liked the expressiveness of the language. I had previously written code in Objective-C, the syntax of which (IMHO) is absolute garbage and made me not want to code in it…ever. Anyway, I’m not going to get into how much I dislike Objective-C. To sum it up, I liked learning and coding in Swift. I haven’t really built anything substantial in Swift yet.
So far, programming in Go seems really fresh. I’m super pumped about Goroutines, Channels and the ability to achieve concurrency in Go. It is simple and the concepts are straight forward.
Features I like
- Use of structs and how one can define methods on these structs
- Goroutines and channels are fucking amazing. Dealing with concurrency is usually a pain in the ass in other programming languages. Go takes away that pain and makes it simple. It almost seems pretty basic writing goroutines in Go
- Error handling. I know most people are going to disagree with me on this one, but, I think the approach to error handling in Go is fresh and nice.
Go has fantastic documentation online. The community is great too. But, before attempting to learn the language, I strongly recommend reading this: https://blog.golang.org/gos-declaration-syntax. The blog post sets the tone of the language. This changes the way you think in terms of Go and makes it easy to pick up the language and get better at it.
If you’re the kind of person that likes to learn a new programming language by watching video tutorials, check out Go Essential Training on Lynda.com.
Here’re some of the videos that I found interesting on YouTube:
- Rob Pike – ‘Concurrency Is Not Parallelism’
- GopherCon 2017: Kavya Joshi – Understanding Channels
- 7 common mistakes in Go and when to avoid them by Steve Francia
There’re tons of other YouTube videos that help you understand Golang better. I’m not going to link them all here. You should be able to find them fairly easily as needed.