100 Days Of Go
4 min read
I have been considering learning a backend development for a while now because I thought and still think it'll be cool to build an app from scratch. Aside that I also found it interesting how easy it is to have changes reflect in production.
Because with backend, you fix something, push it to production and viola!. It's done. That's very different from mobile development where you have to live with your shame (the bug you let in) while you await approval from the store for an update. And even then, only users who have the updated app are in the clear. Anyway ...
Sometime last year I worked on a flutter app that made use of go for it's backend, I also had access to the backend Github repository and I remember looking at the code from time to time and found it really interesting.
As for why Go? I have always found the syntax interesting since I first laid eyes on it. I still remember when I saw the keyword
panic I found it funny because it reminded me of a meme.
I mean, I definitely found a lot of cool things about it when I did my research, like the fact that It was created by some OG's in the tech world, the long list of cool companies making use of Go, it's speed and how efficiently it handles stuff at scale but If I am being honest being efficient at scale means nothing for someone like me trying backend for the first time. What would I possibly require to perform blazingly fast at scale? A todo app?
Short answer, I wanted to learn a backend language and I thought Go looked cool.
Let's go back 99 days, It's June 17th 2022, Day 1 of 100DaysOfCode with Go and I finally defeated the spirit of procrastination by getting and starting a Go course on Udemy.
The course covered the very basics of Go. And for someone with previous programming experience I was able to go through it quick. Honestly I'm not sure I would take this course again If I could go back, not because it wasn't good but because I feel like I could have learned the basics from a place like Youtube, but then I still like the structure a course provides.
I mean, It was just Day 8.
It's now Day 9, and this is where Gophercises comes in. it's a platform that offers free coding exercises and helps you develop your Go skills while building interesting projects (Highly recommend). I was able to go through some of the exercises and they are available here.
During this period I also occasional solved some coding challenges on Exercism and read Introducing Go by Caleb Doxsey.
Fast forward >>> It's Day 24 and I am done reading Introducing Go and just started another course on Udemy. I know, I like Udemy.
The course covered quite a lot from templates to creating servers, handling routes, sessions, database (MongoDB, PostgreSQL, MySQL), AWS, Docker etc. It was quite interesting (Would recommend).
Three weeks go by, It's Day 45 and I have digested a lot of content. I was ready to build the next big thing.
Even though it was a simple todo app it wasn't as easy as I thought it would be and somewhere down the line, I wanted to make use of Docker only to realise I didn't know jack! But as usual the internet came to the rescue in the form of this amazing crash course on docker by The Net Ninja on Youtube (Highly recommend).
Fast forward again >>> It's Day 76 and I have a dockerized Go application that makes use of MongoDB Atlas running on AWS lightsail and a flutter app on Play store, App store and Web. Though I later had to take down the AWS service to avoid billing so It currently doesn't function properly. The full code is available on my Github though. You can find it here.
At this point I'm like what next, It's Day 81 and I am in the mood for something more challenging and found a Youtube course, Backend master class (Golang, Postgres, Docker) (Highly recommend).
I have no one to blame. I went looking for something more challenging and I definitely found it in this youtube course because It is Day 99 and I still find it difficult to keep up.
Now It's Day 100 and I am still consuming my challenging content one step at a time. Wish me luck 🤞🏾.
Hopefully I get to finish the challenging course I am currently on.
I am also looking to explore more of backend with Go, so If you're looking to mentor a budding gopher on a real world project I'm your guy.
I hope you enjoyed whatever it is you just read or at least found some interesting resources if you're looking to take a similar path. Go by example is another good place to familiarise yourself with the Go way of doing things.
Until next time!