How to learn Go - A beginner’s guide for beginners
How to learn Go - A beginner’s guide for beginners
The first language that I learned was C when I was in high school. Afterward, I got familiar with Python at the university and kept using it as it was really convenient. After my graduation, I felt the need to learn a strongly typed language, especially with network programming in mind. Therefore, I turned to Go, as a fast, modern language with great features for network programming (also, don’t forget the cute mascot). After a while, I figured the path to learning Go is somewhat different from other languages that I knew. I used trial-and-error to find the best way to learn Go and the result is what you will see in this post. One important thing to remember is that I am still a newbie, therefore this might not be the optimal solution ever, but since I have struggled to get into Go just recently, I feel this guide can help you not make the same mistakes and learn it faster than I did. I already had a basic grasp of programming in general, so this might not be really suitable for a newcomer to the programming world.
#1 Do not watch Youtube videos:
I know, I know, this might be surprising, but in this case, I believe watching videos are just a waste of time. I have learned many concepts from YouTube videos and there are so many awesome creators in there, but the time I spent watching videos to learn Go was basically a time wasted.
#2 Start by learning how to config Go environment
Go has unique characteristics that force you to become organized, and this is one of them. I made the mistake of not caring about this and it came to bite me as soon as possible. To learn about this, I strongly recommend the tutorial made by DigitalOcean on Go. It is a great starting point and helps you not as many mistakes.
#3 Learn by coding and solving problems
If you are already familiar with a programming language, you do not need to learn WHAT IS AN INTEGER or something like that. So start to solve easy problems that help you get a feeling of the programming language by participating in websites that offer you a combination of short lessons on each topic and one or two problems for you to implement your newly learned knowledge. My favorite website for this is Exercism. It gets you started really fast, has free coaching, and a great Github community that can help you, especially in the next step.
#4 Learn by participating in an open source project
After you have gotten used to the language a little bit, it is time to take a real challenge to get more familiar with it. I especially suggest you participate in an open-source project because they usually consist of people who are willing to help you and you can learn a lot from them. If you have used exercism for the previous challenge, you can just go to their GitHub and start learning by contributing to the project. They even have a tag for people who have no idea where to start. But this is just a suggestion, if you have any other open-source projects in mind that you can contribute to, just go for it! It will help you learn a lot. If you don’t know how to use Git or Github, these two videos can help you get up and running fast:
#5 Read Learning Go by Jon Bonder
Learning Go by Jon Bonder is an amazing book! It will teach you how to write code in Go style and teaches you the underlying concepts you need to know. I do not recommend starting this book earlier, because you need to get a feeling for the language first so you can get the most out of it.