I've been trying to make time to learn Go since 2015. I've been on and off with it, tried various resources, hacked on a couple of projects, but I still don't have the confidence necessary to work on real-life projects and put Go on my CV.
For the past couple of months I've been working with a company that does blockchain projects. Due to the specific requirements of ICOs and crypto exchanges, the need for more structure and predictability from the language/platform has become increasingly obvious.
We're using Node.js for our backends and it's becoming harder and harder to reason about a product's backend. Requirements are somewhat volatile, there's not much time to spend on writing documentation, so the code needs to be written such that it's not hard to maintain and modify when the requirement to do so arises.
I know there's also TypeScript if better predictability or debug-ability are so important. The only problem with TypeScript is that it's not actually a real language. It's not "a real boy". It's an amazing tool, but I wouldn't want to have myself, or the developers I work with, hung up on a tool. I also feel that having a second language I'm equally proficient in, would be a great way to enhance the creativity and flexibility of the solutions I build.
So, without further ado, I set myself out to learn Golang!
You might ask yourself why should you care that I started to learn a new language. You shouldn't. I wrote this article to keep myself accountable for carrying through with my "task". I'd like to share this experience with the people who are following me online, and maybe motivate one or two of them to learn the language.
I will do my best to constantly update the reading list with the newest links, courses and tips I come across, during this new endeavour.
Image credits: Wellcome Images — A man of learning (Avicenna?). Oil painting by a Neapolitan painter, 17th century.
CC BY 4.0, via Wikimedia Commons