While the science community has a lot of love for Python, I've also become a fan of Go (Golang). Golang is described as a mix of Python, C++, and Java for the modern age. It has a small amount of keywords, it's easy to use, and it has fast compilation.

These are the resources I used to learn Golang:

Learn Golang at Tour of Go

Where else should you go to learn Golang 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!

The Go Programming Language by Donovan and Kernighan

I started reading this along with the Tour of Go as I was learning the basics. Though I had coded in Python and HTML/CSS/Javascript before, and I was familiar with the basics, a lot of the concepts in Go were new. Things like concurrency and interfaces were new, and the Tour of Go didn't go deep enough. Even now, this book sits on my desk and I reference it often.

Learn How To Code: Google's Go (golang) Programming Language

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.

Building Web Applications with Golang

This free ebook covers building web applications with Golang 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.

Go by Example

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.