Hello, and festive greetings.
I am going to share with you my story about how I started a tutorial on youtube over two months ago and how it has consumed pretty much most of my time.
There is a caveat, I didnt spend the full two calander months on this, I had other things that kept coming in the way and taking my attention else where, but alas here I am, two months later. Here it is, practically completed. Here I am, tested and exhausted.
I dont do a TL;DR, so please dont expect one.
So here is my story, of my own false prophecy of 'How hard can it possibly be?'
It begain with a youTube video, from the content creators over at freeCodeCamp.com - excellent resource for new wannabe dev's like me. I mean its 2020, who hasnt picked up a new skill in lockdown?
The tutorial in question was to build out a copy of the infamous Asteroids Game made by Atari in 1979. The one where you are a wee spaceship shooting the asteroids into smaller pieces. Simple and all written in JavaScript. Plus the instructor was a cool sounding Austrailian dude who knew his maths. Which really did help, and here comes the but. But there was issues I was having with the style and manner in which the script was being written in.
I dont want to sound overly ungrateful. As a self-learner, I highly value any and all bits of coding related educational content put out into the ether by all the fantastic content creators and instructors out there. But I wasnt happy with the way this particular instructor was writing the game.
Everything was a function within a function nested within other functions. Everywhere was var
's, no let
's or const
's in sight. Since, I have learnt in JavaScript history that, there is a world post EcmaScript and the wild stuff that came before.
The instructor did use some really interesting loops and methods to arrive at the end goal, which was in essence a MVP (Minimum Viable Product) of a game.
You could be forgiven in thinking that the tutorial itself was from a time before ECMAScript became the norm, but i was published in 2018, and I couldnt excuse some of the historic style of coding that I was experincing.
One of the reasons why I started that particular tutorial out of the thousands on the platform was because, I'm a child of the 90's.
I remember that particular game with strong nostalgic reverence. I played it alot as a kid. When I eventually finished following along with the tutorial, (there was a number of bugs that I kept coming across) and I decided that I was going to write it as it was told by the instructor in the video
Normally one would feel a sense of self satisfaction and reward when finishing a lesson such as that. For the whole thing was a new learning experince, learning concepts and format I'm not at all familiar with.
What is this tutorial Im talking about, well here is the link to the Youtube Tutorial
After I had completed the tutorial, I was extremely annoyed, game of thrones finale level of annoyance. Mainly at the script I had written. It encompassed absolute squat of what I had learnt so far, part of me was wanting to still practice alot of the Javascript I had learnt from places such as MDN, where they use let
's const
and every other type of ES5/6 JavaScript standard. So moving from one to the other felt like going next door for dinner, it was wrong and unfufilling.
In truth I was wanting more from the game that or, I was wanting to do more to it, shall I say. I was wanting to first of all make it responsive to the viewport, the original game wasnt at all respective of that. I was wanting a way to store the user name and their highscore and have it displayed on the screen, another thing that was missing from the tutorial. A settings page, (which was requested after some feedback after testing). In short there was a number of improvements that I saw that the script I had could benefit from.
Another part of me was annoyed with the outcome was because, as a wannabe web dev, we need to have a protfolio of projects, things we have built and proud to put our name on. This wasnt that, after much-much thought on this. I cant stress how long I was annoyed for, and it was a peculiar type of annoyance, knowing you could do better but feeling like I should also be grateful from the knowledge that I gained from doing it.
Turns out I was more annoyed because I felt like the lesson - albeit free, was a waste of money, so to speak. I felt cheated. So after more time pontificating over the finer points of the script I had decided what I needed to do to absolve myself from my shame.
First of was to clean it up, I havent learnt using var
declarations in my scripts and I wasnt going to start picking up bad habits, I have been extremely disciplined in how I learn to code and part of the con-job feel to it was that I went against the grain when following the lesson. So I had started by re-writting the script into EcmaSscript standards. Bringing in some Object Orientated Programming classes
and other structures, Using requestAnimationFrame
where the original used setInterval
for its animation loop. I started to believe that I could use this as a project to realise my own ambition towards this game.
Then I said the ill fated phrase that doomed my soul untill its completion: 'How hard can it be...?'
It would take a further 2 months of pretty much rewritting the entire thing. How hard? turns out, it was very hard. For a very long time when google only takes you so far and stackoverflow is of little use, I thought I had hit my theortical and techincal limit.
Some of the problems that I was encountering was so specific to the game that I was often stuck for days, one problem had me stumped for over a week. For some reason I managed to persever with each challange. For each solved problem would bring about its own euphoria and joy. And for a world lockdown, those two qualities have been very scarce.
One problem after another untill one night, the proverbial penny dropped... it felt like it has been dropping for ages but when it all went click. Only then did I truly start to understand JavaScript better than I ever thought I did or could or even had the ability too.
I was able to explore the implementation of my ideas better, instead of formulating them and not being able to really execute them properly. In short, this game and this exercise in particular had given me alot of new found self-belief that I could code, more than any other online exercise had instilled.
I honestly felt like Joe when I was facing the Volcano at times (only us pre-millennial's will get that one). Doomed if I didnt, doomed if I did, but then I had ran out of things that needed to do to the game. It was by all accounts ready, and I am finally satisfied with the outcome.
Thank you for taking the time to read this post, here is a link to my game. I do hope you enjoy it. I am always open to feedback and still looking for ways to improve it. I am in the process of writting up a tutorial of my own for this version of the game (and I will post back with a link), with the hopes it might inspire others to doom themselves on their own ill-fated prophecy, I mean I managed to do it! So, 'How hard could it really be...?'
Hope you have a merry Christmas and a Happy New Year...