Best Resources to Learn Go, Google’s Programming Language
While the science community has a lot of love for Python, I’ve also become a fan of Go (Golang). It’s described as a mix of Python, C++, and Java for the modern age.
Go was invented by Robert Griesemer, Rob Pike, and Ken Thompson. It’s described as a mix of C, Java, Python, but especially known for making it easy to build fast and efficient software. It’s a compiled language, so it has the runtime efficiency of C++, but it’s easy to read, so it feels more like an interpreted language like Python.
Why does this speed matter?
We are reaching hardware limitations of Moore’s law, which states that number of transistors per silicon chip doubles every year. And as the amount of data we processes increases too, writing performant software becomes more important. Research has also found that for every second it takes for your site to load; your revenue can be reduced by 7%.
It has a small amount of keywords, it’s easy to use, and it has fast compilation. In addition to Google, companies that use Go include Netflix, Twitch, Uber, and Dropbox, and Docker and Kubernetes were built with it. And the market share is only growing!
If I’ve convinced you to give it a try, read on for the top 5 resources I used to learn to program in Go.
Where else should you go to learn Go besides the official documentation? The Tour of Go is an interactive tutorial taking you through the basics of the Go programming language. No downloads required, just try Go right in your browser. Not only that, but the official Go website has amazing documentation and an awesome blog that covers topics from beginner to advanced.
Remember, don’t skip the exercises! This will deepen your understanding of the concepts and show you holes in your knowledge. It’s very different to read about using a programming language, and actually coding with it!
This is a great Udemy course on the topic. I never finished it (unfortunately, this is a habit I have with a lot of my Udemy course purchases), but it’s as long as a full semester university course. There are 45 hours of lectures and the instructor is very approachable. If you have a better time learning with video lectures, this course is cheap and starts with the basics — explaining variables, types, and control flow.
This free ebook covers building web applications with Go up front. A lot of these resources do cover building simple web servers, but don’t go into depth about making Go work with databases, web services, and deployment. From here, you can find more resources on the specific technologies you want to use with your Golang web app.
Often, when I search some concept in Go, Go By Example comes up! It has a lot of code snippets to solidify the concepts in the other resources for learning Golang. However, it isn’t interactive, so I’d recommend taking these examples, and putting them into the Go Playground. Play around with changing the code until you understand the concepts!
While there are a ton of resources out there for learning the basics of Go, learning from a book, video, or tutorial is just the first step to becoming proficient with a programming language. Building a project makes you apply the concepts in a real life setting and forces you to understand edge cases, caveats, and solidifying these concepts in your head.
Originally published at https://www.amarchenkova.com on May 5, 2020.