Learning Go

25th Feb 2024

4 mins read

I worked collaboratavely on a startup that I had started but failed two years ago, I will definately talk about that later, and two of my team members were working on the backend using Go, I had heard of the language, but never interacted with it at any level.

At the time, Laravel- the PHP framework was all I had used, and the duo kept insisting on how Go was the 'thing', and as a student then, studying by day and trying to build start ups by night, my first question was, how steep was the learning curve, and everytime they would answer "Very easy, easier than any PhP.

To get them out of my shoulder, I promised that I would look at it, only I didn't say when.

Two years down the line, I'm sitting on my desk as Frontend Engineer for a company x working on a fintech product. As I greatly focus on my screen trying to beat my deadlines, our Hr introduces to us a lady, who will be joing the team under a different project, I'm excited, another lady! slowly the ratio of men to women in our tech department is balancing out.

One day in our lounge area, the lady and I were having a conversation of the different tech stack and skill which we want to learn in the future, and on the top of her List is Go, and I ask, why Go?
and she said that it is rising as a language of choice especially in the international space, she also added that if I wanted to bag that remote job that I greatly aspire to have, then having Go will put me at a great advantage.

One Wednesday, after ensuring the last task for the day has been marked as done on Odoo, and some time is left me for me to do a little research, I open my a new tab in my browser, and I type, 'What is Go'.

What is Go Programming Language.
Go is a statically typed, compiled programming language. it wa s created by google developers for efficient compilation, execution and easy of programming. While python is easy to program and has efficient compilation, it lacked efficient excecution. What about Java, you may ask, Java got both efficient compilation and execution but it also got a steep learning curve that for a new team member who has not worked with Java before, then th ease of programming was out of the picture. C++ on the other hand only had one value, efficient execution, thus, the need for a programming language with all the tree gave birth to Golang.

Go Principles

  1. Simplicity
  2. Backward compatibity - meaning programs supports previous versions.
  3. Contains all packages and tools needed for absolutely everything when building a project eg, intergrated testing systems and integrateddependensy management sytysem.

Characteristics of GO

  1. Strong Static Type system
  2. C inspired Syntax
  3. Gabbage collection
  4. Fully Compiled
  5. Rapid Compilation
  6. Single Binary Output
  7. Cross-platform

Use Cases

Go is used to build:

  1. Creation of cloud  and network services - microservices
  2. Development of command Line applications especially in devops
  3. In Cloud infrastrucure such as building Docker and terraform

At this point, my mind is curious to find out more about go, how a project is initialised and files created, I'm a little anxious since It's a language with no framework and the last time I used a language in it's raw form 3 years ago, when I was learning PhP, but ever since I stumbled on Laravel, I have been a spoilt big girl.

I sign myself up for Go course, eager that by the time I'm done, I'll be well versed to code in it with my eyes closed.

Keep up with me for the adventures to come.