Go for Beginners — Part 1

So for the past few months I’ve been working on a Project to help me become a better Backend Developer.

I know medium is behind a paywall; It supports me a tiny bit. If you want to donate to me you can HERE. Or if you don’t want to and get past this paywall a copy of this series is on my GitHub HERE

I haven’t been able to work on my skills as much as I hoped for the past 5 months as I was in the British Army. Training to become a soldier surprisingly takes a lot out of you. Anyway the long and short of it is, I couldn’t get a transfer to the Royal Signals (Which I tried to join anyway but I was a month too young) I was told tiny white lies saying I’d easily be able to change when i’m in so a recruiter could make his annual christmas bonus.

All of that is besides the point, I’m out now and I wanted to work on my skills especially before starting my first professional development job, in a real team… earning real money.

So hopping straight back into my Backend Developer Project on GitHub which you can view HERE, I decided what could I do to improve my skillset and sharpen up my existing skills.

What is Go?

GoLang (Go) is an Open Sourced programming language designed by three google employees. The entire point of the language was that google employees can code faster and easier. It has modern features like garbage collection and takes advantage of multi-core computers capabilities and was designed with google in mind so that mean it has amazing scalability.

It’s as fast and as scalable as C but as easy to code in as Python

Why am I learning a language for Google Employees?

Go isn’t used by just Google employees anymore, it’s used by thousands of companies with it’s main use being based on cloud computing with scalability in mind.

This is super important within industry with the current shift from old style server cupboards at every enterprise. When now most applications are hosted on services like AWS, Google Cloud or Digital Ocean.

Why spend thousands on expensive equipment to handle a spike in users or if you don’t want to spend that much risk connectivity issues with users when the server overloads from too much traffic.

Cloud computing offers amazing scalability and lets business’ only pay for what they use.

TL;DR: It’s Amazing for scalability and has loads of Real-World Applications

No expensive servers, everything can be upgraded instantly.

How / What am I going to be Learning?

This is a technology I want to spend more time with to fully understand so I’ve broken down my learning into four phases.

  • Phase 1: Codecademy / First Steps
  • Phase 2: Practical Project
  • Phase 3: Example Interview Questions
  • Phase 4: Extended Practical Application

So here's a little breakdown of what each phase entails;

Phase 1: Codecademy

During Phase 1, I’m going to use Codecademy’s learn Go course. As personally I think it really helps me pick up the basics of a language such as syntax and things that are unique to Go. As it’s designed for complete beginners in any language it’s really good to ‘dip your toes’ in the language.

The course covers the following;

  • Introduction to Go
  • Variables and Formatting
  • Conditionals
  • Functions

As you can see it’s a pretty short course which is why I need to supplement my learning with additional steps, which is what i’m going to cover in a minute.

Phase 2: Practical Project

In Phase 2, I’m going to apply what i’ve learnt and turn it into an actual practical project. Most likely on my website KodeyCodesStuff.

I don’t have a plan at the moment on exactly what i’m going to do but it will be an actual functional project.

Phase 3: Example Interview Questions

This one is pretty self-explanatory. In my eyes coding interviews are pretty broken because pretty much all you do professionally is if you get stuck, you use google… That is beside the point, if i want to conquer this language i’m going to have to get myself up to scratch.

Doing interview questions in Go will give me a good understanding of how the language works and to apply it in some arbitrary way that i’ll never use on the job a Practical way.

Phase 4: Extended Practical Application

This sounds more fancy then it actually is. All it means is I will be trying to consistently use it in personal projects just to keep myself up to date with it and learn more things through experience.

Summary

In summary, I think it’s going to be a really useful language to add to my skillset and im pretty intrigued by it. So why not learn it!

Guess I better get started…

Backend Developer, Probably listening to music and drinking coffee