How I Learned Golang and Why You Should Too
If you're a programmer who is interested in learning a new programming language, you should definitely consider Go.
What is Go?
Go is an open-source programming language created by Google. It's a statically typed, compiled language that feels like a dynamic language. Go is fast and efficient, with a small runtime and garbage collector.
Go is perfect for building web applications, microservices, and command-line tools. It's an excellent choice for concurrent programming, thanks to its support for goroutines and channels.
Why should you learn Go?
There are many reasons to learn Go. Here are a few of the most important ones:
- Go is easy to learn. If you're coming from a dynamic language like Python or JavaScript, you'll find that Go is very straightforward.
- Go is fast. It's statically typed and compiled, so it runs quickly.
- Go is fun. It has a small runtime and garbage collector, so you can write programs that are very efficient.
- Go is safe. Go's memory safety and type system make it a great choice for concurrent programming.
- It's a great language for building large-scale applications, and it has a lot of potential for the future.
- Go is popular. Go is used by companies like Google, Netflix, and Uber.
Why I Decided to Learn Go
I was introduced to programming in high school, starting with C++. My interest in Artificial Intelligence led me to learn Python after graduating from high school because it is the de-facto programming language for machine learning and deep learning. I was using TensorFlow, a Python framework for ML and AI stuff, for almost 2 years when my friend, who was learning Go, suggested that I learn the Go programming language too.
I wasn’t interested at first, but because of the Covid lockdown, I got involved in self-hosting and home lab projects that required using Docker, Kubernetes, Traefik, and other tools. I realized that these tools were written using Go, which got me really interested in the language.
A lot of my Software Developer friends said I could become a DevOps Engineer, as it is a popular and highly paid field, and I already had experience with some of the popular DevOps tools. I started Learning other tools like Terraform, which was also written in Go. This is when I started researching about the Go programming language and its language design. I immediately fell in love with Go and was totally convinced that Go is the language for me and it definitely has a future.
How I learned Go
- First, find the purpose why you want to learn Go and do some research because it is important to have a reason to keep learning and stay motivated. I want to emphasize the importance of patience before proceeding, because it's easy to get frustrated when you are learning something new. Trust the process, ask for help, join a community, and attend conferences.
- I watched a beginner's project video called Golang Tutorial for Beginners on YouTube to get an idea of the language's structure and syntax.
- I then bought a Udemy course called "Learn How To Code: Google's Go (golang) Programming Language" by Todd McLeod. I would highly recommend this course to anyone who is getting started with Go, as Todd is a great teacher. He covers all of the basics thoroughly with great explanations and examples. There are also a bunch of exercises included so you can practice what you've learned. Once you've learned the basics, you can start writing your own programs.
- After completing this course, I felt confident in my grasp of the language basics and its syntax. I then started taking on a few projects of my own and watching YouTube videos for guidance. There's an amazing YouTube channel by Akhil Sharma that features all types of projects for beginners to advanced learners. You can check out his channel and start working on your own projects because doing so will teach you more and give you an idea of how to structure a program. By taking on projects, you can learn a lot.
- Now that I have a good understanding of the programming language, I was ready to learn advanced concepts in Go. So, I decided to join a course called, “The Ultimate Go” from Ardan Labs.
Todd, the instructor of the course I took beforehand, had mentioned this course and that’s how I knew about it. The course was excellent! Bill Kennedy, Managing Partner at Ardan Labs and the lead instructor for this course is very knowledgeable and goes at a good pace. The course material is interesting and engaging. I would highly recommend this course to anyone interested in learning Advance concepts in Go programming. However, I would recommend taking Todd’s Udemy course first and then buying this course because Todd’s course covers the basics in-depth. This makes it easy to understand the advanced concepts taught at Ardan Labs. For me, it was a perfect combination. - I would also like to share some of the additional resources that I used on the side while taking the courses:
- I bought an eBook called, “The Go Programming Language” by Alan A. A. Donovan and Brian W. Kernighan. The book is well-written and easy to follow. It covers all the basics of the language and also provides some more advanced topics.
- I always recommend referring to the Official Documentation as it is the best free resource. It can be difficult to go through at first, but once you understand the basics and use the documentation often, it will become easier.
- The website for The Go Programming Language Specification provides a wealth of information for anyone interested in learning about or using Go. The site includes the full specification for the language, as well as a tutorial, FAQ, and other resources.
- Go by Example is another website that provides code examples. The website is divided into sections that each contain a number of code examples. The sections are organized by topic, and each code example is accompanied by an explanation of how it works. The code examples are well-written and easy to understand, and the explanations are clear and concise.
- I joined a Discord community for Gophers. This community is awesome because you can get immediate help from experts and other community members.
What’s My Next Step
My next step is to learn and understand more about some of the widely and commonly used in-built packages like fmt
, math
, encoding
, net
, strings
, strcov
, crypto
, bufio
, os
, io
, log
, sync
and external packages like gin-gonic/gin
, gorilla/mux
, spf13/cobra
, fatih/color
and few others.
Make sure to check out my GitHub repository which has links to all the resources mentioned above, as well as some additional resources!
Conclusion
Go is a language with countless potential. It's already being used by some of the biggest companies in the world, and it has numerous features that make it ideal for large-scale applications. If you're looking for a language that has a bright future, Go is definitely worth considering. Keep practicing, do side-projects and you'll be able to build something great.
Special thanks to Bill Kennedy and Todd McLeod, for your wonderful Go programming courses. You have helped the community and new Go developers immensely. Your courses are top-notch and have helped me improve my skills tremendously. Thank you, thank you, thank you!
If you want to stay up-to-date with the latest insights in Artificial Intelligence, DevOps, Cloud, Linux, Programming, Blockchain, Productivity, and more, subscribe to my Weekly Newsletter. You’ll also get access to my tutorials, tips, and guides, as well as resources from other experts in these fields.
Follow me on Twitter and GitHub!
Note: I'm not getting any commission for promoting the courses above--I paid for them myself and found them helpful in my own learning.