JavaScript - How Did It Start? A Short Story Long of One JavaScript Course

Recently I have finished a JavaScript course on freecodecamp.org, but it was much more than just “another” course. I want to share my thoughts about it and JavaScript in general, as I am sure that there are many people in a similar situation. If you feel stuck, hopeless and frustrated, or maybe just curious about learning web development, this text may show you that you are not the only one, and maybe even give some clues.

Where Should I Start?

Let me start with some personal background and my learning story.

My story with programming or let’s say interest in programming started nearly 3 years ago. In 2019 I decided to finally take some steps and learn something more about it. Without CS degree, without any experience or background, and even without having any friend in that field who would lead me or at least give some advice. My only friend was - Google. I had no idea where to start, what is the difference between front-end and back-end, what is JavaScript, and how this whole “coding” looks like. Naturally, I encountered HTML years before, when I was a secondary-school student, but basically, that was all.

HTML and CSS - Programming Illusion

It shouldn’t be a surprise that one of the first websites about programming that I had found, was freecodecamp.org and their “Responsive Web Design” course. It was the place where that first spark with coding happened. Meanwhile some few additional resources, a few YouTube videos and viola! Here I am in the game, after a couple of hours I can build my own website from a scratch, in notepad, using not one but TWO! “programming” languages - HTML and CSS, but hey! Are those real programming languages? Or maybe it is just a way of “coding” things or even a tool?

Digging Down The Rabbit Hole

At that time, I had no clue what are the languages of programming, what were the differences between them, and their purpose. Digging, digging and digging, down the rabbit hole, deeper and deeper every day. My curiosity and optimism about programming was that high, that I was trying to learn something new, nearly every day. Shortly after that, I have got Android Studio and tried to build my own android apps. Later on, somewhere I have seen Python. Going back to Java, to automate some of my tasks at my current job, and eventually building even some Arduino projects, binding them with “my” Android app written in Java. Wait for a second! Where am I going? Ok, let’s slow down a bit. It is true that within a relatively short time I have managed to pick on so many technologies, and actually build some projects, but the truth is it was more just like putting puzzles together and making them work.

Where Am I?

I didn’t know the core fundamentals and didn’t actually understand how things work, and sometimes didn’t even know what am I doing. After months of constantly trying new technologies, going through different tutorials such as freeCodeCamp, Codecademy, Udemy, Udacity, SoloLearn, W3Schools, Edx and few others, with some success in ones, and failures in others - I was completely lost. I definitely enjoyed doing it, even though I have already spent hours and days trying to fix small bugs in my “copied” code to make it work, that is why I didn’t want to give up. It was definitely time to take a step forward, and finally, focus on one technology.

Full-Stack

React, was one of the technologies which sounded like the one, having the highest potential, giving you the abilities to create a huge variety of apps for different purposes and also the possibility of gaining a “valuable” skill one day. Scrimba, recommended by freeCodeCamp indeed, looked like a very cool option. I have spent another few weeks on trying to create my own clone of YouTube, building a server-side with Node.js, connecting it with MongoDB for the database purposes, and deploying everything to Heroku with the help of Amazon Web Services for the static files. Ok, I made it once again, but let’s be honest - again it wasn’t me, it was thanks to people on Stack Overflow and others, who shared their bits of code here and there.

Going Back to The Start

Everything was so obscure, one day one of my friends who is electronic engineer, asked me to explain “my” code to him and I found myself that I had no idea what is going on there. It was definitely time to take a huge step back and go back to the roots. If I want to make something out of it one day, it is the final time to learn some solid basics. Nearly after I year, I have decided to revisit freeCodeCamp’s JavaScript course.

Slow Down!

In fact, I have finished that course once before, but because I was so desperate to start writing my own “cool” apps, I have just skipped many of the questions, without reading the description, just trying to guess the answers by looking at the samples or even copying the solutions. It was a huge mistake, my advice number one is - don’t rush, take smaller steps, but be mindful of what you learn. I was doing seemingly huge things, but I wasn’t even able to solve some basics problems using vanilla JavaScript.

Read Documentation

Many of you, who have some experience with freeCodeCamp’s JavaScript course, may complain that their course goes incredibly fast and there is no time to get used to new terms and methods. It is true, some of the tasks, especially “Intermediate Algorithms Scripting” are just like a nightmare, some of them really demand you to just get out of your comfort zone, look for different solutions, make research and most importantly READ DOCUMENTATION! At this point, I want to add second advice for all of you. As a person without the IT background and as a non-native English speaker, I have found W3 schools documentation a lot easier to understand. It is just my personal opinion but of course, you should use different resources as well.

I Couldn’t See Anything

console.log, without it coding is like walking through a dark room without any light, just trying to guess where the switch is. This is my third advice for all of you trying to learn JavaScript and most probably other languages as well, use console.log or any other equivalent to it. At first, I couldn’t understand why people would hire testers, and spend their precious time on writing a “second” code which will test the main one. It just didn’t make any sense to me before. I can’t say that I am aware of what Test-Driven Development is right now, but it really helped me to connect the dots and everything seems to have more sense.

What Is Next?

In this way we are coming to the end of this short long story of one course on freeCodeCamp, I have to admit that I still struggle a lot with some of the exercises in that course and I used a lot of help from the others. freeCodeCamp probably won’t teach you an entire language on some solid level, but because of it’s very demanding way of learning, it may teach you how to think about solving programming problems. Learning any programming language is a never-ending road, as there are countless ways of solving a given problem, and this is the beauty of programming in my opinion. That is why, once you are in, DON’T STOP! and keep on learning, practising and digging deeper every day.

6 Likes

Hey Pawel,

great story!
Keep up the great work!

3 Likes