How to learn GO Lang, a promising market.
This text is based on personal experience and recommendations from a dear friend, Arthur Andrade.
What is Go
Go Lang, or just Go, is a programming language created by Google, I mean just by being created by Google you should trust it and GO ahead and learn it. I mean Google is a multi-billionaire company, I don’t even know how much money they have anymore, and just by being it you should think that they have, or should have, a great, an optimal, reason to create an entire, based on other ones, language for development. It was conceived as an answer to infrastructure problems of software developed by Google, multi core, networked systems, massive clusters, the problems created by were worked around instead of being solved, GO was created to solve it.
Go is a compiled language focused on productivity and concurrency ( even if you don’t use concurrency it’s a great language ). It is a language optimized to be simpler to read and write and by so gaining productivity. It’s used on cloud-based / server-side applications, command lines, reliability scripts, and more. It’s not an easy language to learn even though it is to use. Golang is not object-oriented but has some features that allow you to replicate some concepts of usability of OOP languages.
OK, I understood that go must have something special into it, but why should I learn it?
Programs written in Go run faster in other programming languages, it helps to develop complex and interesting software, it’s well-scaled comprehensive and with small syntax to write code in it. Created in 2009 it already has a market and stability to it, and if there’s a chance it may even land you a job at Google ( I’m hoping so, at least for me, haha ). It was built for software engineers, work-related programs, and not academic research, so your daily usage will be better than working with other languages like C. And the best I’ll leave as last argument Go is one if not the best-paid programming language, you have rust and solidity, but rust you don’t have much jobs available and solidity is only for blockchain related works and those are hard to get in too, so it would have to choose between’em I would choose go, I mean I choose it already hahaha.
Disclaimer for companies
Don’t lower Golang salaries please otherwise I would be wrong. And an appeal, try to open more mid-level and junior-level openings. Why? Well if you do so you be making sure your company and other ones will have labor and manpower to maintain the system, fix bugs, and create new features.
And why should you care for it? Well, read the topics above… Until now there are no good answers besides go in the market for problems in scalability, and well if you’re a company and you’re not ready to scale I have bad news for you … You will have a bigggg headache when refactoring your code, updating all the frameworks and even so having a worst performance than you would have with GO.
And I will share a secret with you ok? Do you know Elixir? it sucks to code in Elixir, it will be harder to find labor, it’s not something pleasant that people will strive for. The Google possibility to hire effect should be enough for you to strive to get into Go, it will attract the best programmers at least part of’em as a side effect.
Learning Go
Okay, first of all, you need to grasp and see what the language has. So slides, videos, documentation let’s read it ok?
this is the best tutorial I’ve come to like, you go slide by slide, run a little bit of code on a playground, and by doing so will be learning the basics:
https://tour.golang.org/basics/11/
Okay, now time for some quizzes? How about this site, you will be making some simple codes and learn the language on the way through:
https://quii.gitbook.io/learn-go-with-tests/
If you want a simpler life, you can check this repository too, it was recommended by my friend every folder is a different “task”:
https://github.com/julianosouza/go-crash-course/
Now after getting what is what, how about some projects or projects to have a portfolio and get some trust in the language?
- https://gophercises.com/
- https://github.com/kkdai/project52/
This is a more complete challenge, that has clear to-do lists and a complete environment to prove your capabilities with Go.
- https://www.notion.so/Juju-s-Challenge-Agenda-em-Go-972dce60444f46f5bd681e4c9c1c614d
Check out my first Two projects done in Golang:
This one is a simple character count used to learn some stuff about IO/files/etc
https://github.com/afa7789/GBTCharacterCount
This one is Snake Game ( easier it waits for your input ), it was a challenge for a job and I wanted to try out how to work with different packages and different files, structuring it, documenting it, and using pointers and nodelists as well as a struct to control the gamestate.
https://github.com/afa7789/SnakeWent
Anyway, after doing it all how about strive for a job?
Read my other article ( but it’s in portuguese, anyway there’s links for job search in the end of it): https://afa7789.medium.com/trabalhando-remotamente-para-o-exterior-em-ti-como-a72f4153b6e5
:) xoxo my linkedin contact me if you want