I’ve been for years a Java developer, but for the last 2 years I have developed a huge interest in Golang programing language, and most of the time people when is listening to me talking about that ask me, What do I need to learn Go?
To be honest, what I always think is that for learning anything in life, you only have to really want to do it, and apply any necessary effort to make it real. BTW there are useful ways to have a guide on how to start to learn based on your experienced. And I particularly split that in different bases:
Experience only based on OOP:
Golang is a multiparadigm language, you are free to build a totally functional architecture but you also have the option for using OOP practice and patterns because part of the definition of the language is based on concepts from OOP. For this reason, you need to spend time understanding functional programming to know what are you doing with Go and why.
Experience base on procedural programming:
If you come from a language like C, you can start taking the base Golang tutorial and start over it, because Go is like a C with steroids. And in the cases based on architecture patterns, you need to look for going good practice and patterns.
Experience based on scripting:
If you come from scripting, because you are a sysadmin or someone that only knows about the shell, you can read books and posts about fundamental of programming in parallel with the Golang learning.
No experience of programming before:
For every one that is initiating, I recommend to learn about fundamentals of programming first and then can go throw a Golang tutorial.
Materials that could be useful:
If you see I haven’t mentioned at all specific technologies, and this is because now days is not anymore about the language is more about why I would use this technology and how I will use it.
I also recommend looking for and groups on slack, telegram, facebook, and twitter.