My One Year Programming Journey
Nik Vogrinec
14 July, 2020 · 5 minute read
Today is the day. Exactly one year ago – July 15th 2019 was the day I decided to start learning web development. My goals were simple, become a front end developer. Now, I knew back then I had to have smaller goals than just leading up to the final one. I had to decide which path to take. And this is what I did.
How do I center this?
First month of learning was pure HTML and CSS. To be honest I got the hang of HTML quite early on, but what was giving me the most trouble was CSS.
I named this section ‘how do you center this?’ because that is exactly what I had the most problem with in CSS. I simply could not figure it out. I watched tons of youtube videos of people creating responsive websites, mobile navigation menus, cool effects and animations, but I was lost. I knew basic CSS and I was able change colors of backgrounds and text, but positioning? Nah, no way. My sites looked so basic -- just divs on top of divs and images with no aspect ratios, everything looked so bad!
So how did I exactly learn CSS, you might ask?
I learnt most that I know today from an amazing Udemy course by Jonas Schmedtmann, called ‘Advance CSS and Sass: Flexbox, Grid, Animations and More!’. After finishing that course my life changed. It’s about 30 hours long which is a huge time commitment, but I think it was well worth it.
So what next? The course included a few projects where you learn some tricks, but that wasn’t enough, I needed to dive deeper, so what I did was I created a bunch of projects and continued to watch tons of youtube videos, but now I could understand what was going on and I could replicate the code I had seen in youtube videos.
As simple as that! Both HTML and CSS took me about two months to get the hang of. This is also the time I got more and more interested in becoming a front end web developer professionally, but I knew HTML and CSS were not enough to get any job at all, even though, I kept reading articles and posts about people getting their job with just those two. So the logical next step was the language I was most scared of and despised - Javascript.
Whats a function?
Now, I must admit, I had some experience in writing code before this, but not anywhere near to what I needed to know. I had programmed in Python and C++ before, but that was extremely basic; just some inputs from the user and prints to the screen (back then I thought that’s all programming is). I had no idea what object oriented programming is. I started at the start, totally fresh.
So just like CSS I first started learning JS on youtube, I mostly watched mmtuts. He explained complicated JS concepts in an easily understandable way for any JS beginner to grasp. I thought I was getting the hang of it; functions? Check, Callbacks? Whats that, I don’t need that, Basic syntax? Check.
What better way to extend my knowledge than to make a simple calculator. Let me tell you, I got lost making that project so many times, but at the end I made it – it actually worked!
So what next? A new project of course - a simple game of rock and scissors! This one was actually easier since the youtube video I watched showed how you can generate a random number in JS, I did not understand the syntax, but it worked, so I used it. I was so happy when I finished it, I showed it to my dad and friends, even though it was really basic, I was happy with my progress.
This is where I got my notepad out and started marking down everything I needed to learn until July 15th 2020. It was simple: Learn React and Wordpress. Now, I know what you might think, those two aren’t connected at all, and you’re right, they’re not. I noticed a vast amount of React tutorials and recommendations from other developers, so I decided to go for it. I’ve also started to check around local job postings and found out that many jobs required knowledge of WP and PHP, so that’s why WP was on my list.
I had a basic understanding of JS at this point and I knew it just wasn’t enough to get into React. So I did what I had to do, I bought another course on Udemy from the same teacher that taught me CSS so well, Jonas Schmedtmann. If you don’t get it yet, I really like Jonas, he’s an amazing teacher and I strongly recommend his courses to anyone getting into web development.
During this course – I must admit – I struggled A LOT. It was way harder than anything I had to learn before and my morale just went up and down. I almost lost all hope, but I pushed through and I made it to the end. I still did not understand half of what Jonas presented so well -- this was all on me, but I did make notes on almost everything.
This is where I made a bunch of other projects, most notable are Keyboard music player and a movie search app. Both took me about a day to make and I enjoyed making them, I used my newly acquired knowledge of JS and created something I enjoyed and that’s what programming is about!
Node, HTTP and API
This is where I made a fortunate mistake in my journey – I started learning about back end development with Javascript; more specifically NodeJS. I noticed Jonas had released a new course about a month before I finished his Javascript course about Express and MongoDB. Of course, I had to take that course as well since I did not understand Javascript as well as I wanted from his previous course. So I did and let me tell you; it went worse than his vanilla Javascript course. It started fine, I got to know the basics of Node and how the internet works basically which really helped me with many projects in the future. But, after a while the course got into details of ExpressJS – a NodeJS framework – and this is where I felt the same as in vanilla Javascript course, I had no idea what I was doing. I tried following his lessons, but I just did not understand Javascript well enough to follow along. Some might say I wasted time with this course, but no, I don’t think I did. Yes, it was very hard, but in the end I did finish the course and all I needed was some practice. This is when I made a fully functioning 9GAG clone with JWT authentication and image upload. It took me very long to make, but I knew how I wanted to do it, and so I just read the documentation and slowly but surely created it. I felt like I was at the top of the world, that I could make anything!
Nowdays I use Javascript all the time so I got decently good at it and I am very happy with my progress. Since then Javascript has become my favourite language .
Ready, set, REACT.
React has steep learning curve, but once you get through and break the ice a new world opens. My journey started with another yet course, I did try reading the documentation and learn that way, but at that time the React documentation looked very hard to understand and read for me – a beginner -- but honestly React has one of the best documentation around. I started really getting into React and I made quite a few applications with it. I have also started learning GatsbyJS which is just a framework built on top of React that provides static site generation using GraphQL. And I have been making all my bigger projects in Gatsby ever since.
Old school cool.
It was time, the time to fight the old demon – PHP. I had expected PHP to be this old dead language that people steer away from just by hearing it’s name. I decided to try and learn it because I knew there were legacy sites that needed updating and most of the jobs around do require some knowledge in PHP. So I did. PHP is in my opinion way easier than Javascript. PHP has a simple inheritance as oppose to Javascripts prototypal inheritance which is quite more complicated for begginers. I started by learning procedular PHP and then moved onto Object oriented PHP which in my opinion is way superior. I got the hang of PHP quite quickly but Javascript is still my #1 programming language.
365 days.
This is it! This is the part where I talk about my future plans. The first question is did I complete the goals I set 365 days ago? The answer is a hard yes. My future goals are simple: get a job as a developer and learn Laravel. I worked every single day without a day off for 365 days to achieve this goal while going to school as well! learnt most of the technology I wanted to a satisfactory level and I do think I am ready for at least a Junior position for a front or back-end developer in a company. Will I get a job? Well, that’s for my next blog!