It was about 5 years ago that I decided to look into becoming a web developer. I was in a miserable corporate job that I hated. I knew that I was about to be made redundant and I was trying my hardest to achieve that goal. I didn’t know what I wanted to do but I knew I wanted to do something I enjoyed, something that gave me satisfaction, something that would challenge me.
Someone, who wasn’t a web developer, recommended a book to me. I was considering a few potential career areas but after a few months of post-redundancy partying, I recalled the name of the book. I forget it now – it was by Sitepoint – and it was a beginners book.
At the end of following the book (which probably took me 6 months – it shouldn’t have!), I had a very basic website, from a HTML page, a CSS page and something called a responsive CSS page which I hadn’t understood at all.
It looked crap but I had understood a fair bit of the semantics of it, certainly HTML. Given how awful it looked, I decided without any guidance to learn Photoshop.
I bought a book and merrily (and slightly less slowly) ploughed through it until I had a basic grasp of Photoshop. I still didn’t understand how to make my website look modern and respectable.
So I bought a book on design principles (The Principles of Beautiful Web Design). Which was interesting but didn’t teach me any code which I thought was odd. And then, when asking on a forum, I found out that web developers and web designers, terms which I had previously brazenly interchanged, were separate roles.
My first eureka moment. I wanted to be a web developer, not a web designer.
So I bought another coding book, this time again a fairly beginners book on making a website with just HTML and CSS. And when I had finished it, I followed some more wise advice from a forum which was to build my own website. I didn’t do much in terms of changing the structure, but I changed some of the styling and et voila, I had a half decent website. Well, half decent if it was 2008 as opposed to 2013 but at least it was responsive (ie positioning of structure changes for mobile/tablet).
It was around this point where I discovered the existence of online courses – if you are getting bored already, the list of the courses that I have completed are at the end.
I was also the point where I stopped partying every single weekend – ie the beginning of starting to put the necessary effort in. Codecademy was a bit of a revelation, although when I was going through their HTML/CSS courses, I found that I did know most of it already – but it was useful reinforcement. I particularly appreciated the instant feedback as to whether something was right or wrong.
It was there that I first ventured into JavaScript – another world entirely from HTML/CSS. Following the JavaScript course on Codecademy was at times difficult, it being my first taste of it. I followed this up by buying a large book on JavaScript for Beginners, I forget who by. I followed that through, sometimes by typing into my console, but I didn’t really understand the point of the console.
I did also buy a book called Learn JavaScript In A Weekend, or something similar. I can confirm that I did not learn JavaScript in a weekend. 2 years later and I am comfortable with the basics.
Unfortunately the more I learned, the more I realised I had to learn. It seemed as though the list was becoming endless – jQuery, PHP, WordPress, Angular, React, SEO, Node, Express, SQL, Amp, animations…it was quite ridiculous, and I’ve only mentioned those that come to mind right now. Not to mention just how difficult JavaScript is. And everyone I spoke to online had a different opinion of what I should learn.
I had to make sacrifices. 10 hours studying a month was not cutting it. I set myself a strict target of 10 hours every week:
function howManyHoursINeedToStudy() {
var weeklyTargetHours = 10;
var totalHoursLeft = “”;
var totalHoursDoneThisWeek = “”;
totalHoursLeft = weeklyTargetHours – totalHoursDoneThisWeek;
return totalHoursLeft;
}
howManyHoursDoINeedToStudy();
Or something like that. If I only did 5 hours in a particular week, then the week after I would have to do 15. Granted I often had a backlog of around 60 hours but then I’d take some holiday from work and clear it. Yes, much of my holiday was spent learning to code too – not just weekends and evenings.
I also started some courses on Khan Academy on a variety of subjects. First I did the JavaScript one, which confused me at first as they used processing.js which includes various inbuilt functions not naturally available in JavaScript.
I started with their Intro to JS: Drawing And Animation course, which was fun as I got to use JavaScript through drawing on processing.js which is more interesting than learning JavaScript abstractly – though as I mentioned, that they use processing.js did cause some confusion when I later tried my own vanilla JavaScript projects and tried drawing shapes! Why isn’t rect(0, 20, 10, 20) giving me a rectangle?
They also had a course on making websites interactive, along with two more difficult ones, neither of which I have completely completed (almost!) on games and visualisations, and my favourite, which was natural simulations.
In fact, I enjoyed Khan Academy so much that I even went over their HTML/CSS courses to see if their was anything I have missed, and their SQL/jQuery courses too. The ones that are taught by Pamela and… oh gosh, I’ve forgotten her name, are compellingly taught in a quirky and fun way – I think I fell in love with both course-masters at some point.
Not everything I enjoyed so much. I signed up for a 6 month free version of Pluralsight, but found their teaching more monotonous – with little chance of evaluation and it was often difficult to follow – as I always re-code everything on a course, on my computer.
CodeSchool I also took up the offer of a free month, and a half price month, and did some of their HTML/JavaScript courses. The JavaScript ones had quite a steep learning curve. I’m not entirely sure why I did the HTML/CSS ones as by this point I was pretty on the ball with them.
I may have signed up to pay for CodeSchool, it certainly had promise, lots of evaluation points, some form of community and a very wide range of courses taught (probably too many as by this point I was signing up for courses on all kinds of things that I didn’t need to do).
But then I discovered Free Code Camp. So this was around December 2015 and it was my aim to have my first junior web development role by the end of 2016. Granted this wasn’t my first targeted date – I had previously said end of 2014, 2015, beginning of 2016 yadda yadda. But now there was a plan and a true focus. Free Code Camp was about to really help me.
I started on the easy tasks – it doesn’t teach a lot of HTML or CSS, so I wouldn’t advise starting with Free Code Camp – learn your HTML/CSS skills elsewhere.
It doesn’t even teach JavaScript that thoroughly – it certainly teaches you the fundamentals and enough to do some reasonably powerful coding. Again, previously mentioned sites will teach you more in depth – they all have their strong points.
But where it excels is in both the algorithm and project sections. The algorithm challenges really do make you think about how to use JavaScript, how to structure it, when to use chaining, if statements, for loops, etc. My ability to use JavaScript improved significantly thanks to Free Code Camp (admittedly I’m still years and years away from those £100k a year jobs) – most other courses on other sites either asked questions, or asked you to fill bits in. This was thinking about a challenge from top to bottom.
Then they have projects. For these, you have to write a website – the most basic being a tribute site, which I did to a footballer, Dean Windass. That was quite simple HTML and CSS.
They do go up in difficulty as you pass the JavaScript challenges, most recently I was working on ones using APIs – such as a current weather website. APIs are not taught well in Free Code Camp so it was a case of investigating – though they also have an excellent forum where I did ask for help on a few occasions, and am sure I will do again! Also you can see what other people have done with their sites, which I try not to do unless I am really stuck – though there is always a myriad of different ways to solve them.
So, that was pretty much me for the courses side of things, whilst I was learning how to become a web developer.
Now I have a job, for which I need to learn PHP and WordPress (quickly!), I am using Lynda, which is a subscription service (my company pays) and they do have some excellent courses on PHP and WordPress – something not easy to provide via something like Free Code Camp due to the local testing environment required. It is a whole other world. Lynda provides a set of videos, the courses are often quite long, longest I’ve found so far is a whopping 14 hours, but generally in depth yet comfortably so. I haven’t done their videos on HTML, CSS or JavaScript and probably won’t, certainly not HTML/CSS. They are excellent to follow along to, making websites from stratch or re-designing them and normally give you challenges too. You can see my collection of Free Code Camp projects here.
I do stress the sacrifices that I’ve had to make along the way. There were a few occasions were I just wanted to jack my dull accounting job in, with no money saved in the bank, and just concentrate on studying. Maybe I could have taken a bank loan. It would have been a lot quicker to have been studying/coding full-time.
But I couldn’t really risk not having an income, so studying part-time on the weekends, in the evenings had to be the choice. So many social events, so many parties, so many cultural events that I could have gone to that I had to turn down. I needed to get fit but had no time for that. I was often very tired. I ended up drinking too much Red Bull (counter-productive on tiredness). I didn’t get to watch cricket often, drink beer, sit in the sun, go for walks in the country, go to the theatre, go to comedy shows, go to nightclubs, go on weekends away, get behind my DJ decks, do any art, etc etc. Occasionally, yes, but nowhere near as much as I would have done otherwise.
And now I have my junior role, complete with significant pay cut, I cannot afford to do them! Plus, I’m only at the beginning of my journey and now have even more to learn just to keep my job, let alone progress.
Next up I will discuss the other reading materials and useful sources that helped me along my way, followed by websites that I made to go towards my portfolio, and in the final post I will discuss how I approached the job application stage. Hopefully I will write them before I am looking for a new job – things are somewhat precarious.
Here is the list of courses that I completed (or nearly), prior to being employed – those in bold are those I definitely recommend to beginners:
Codecademy:
HTML & CSS
JavaScript
jquery
Learn Sass
Learn SQL
Make A Website
Make An Interactive Website
Khan Academy:
Hour Of Code
Intro to HTML/CSS: Making Webpages
HTML/JS Making Webpages Interactive
HTML/JS Making Webpages Interactive with jQuery
Intro to SQL: Querying and managing data
Advanced JS: Games & Visualisations
Advanced JS: Natural Simulations
CodeSchool:
Try Git
Try SQL
Try jQuery
JavaScript Road Trip Part 1
JavaScript Road Trip Part 2
Pluralsight:
Pluralsight – Javascript Fundamentals.
Pluralsight – Introduction to jQuery.
Pluralsight – Learning To Program: Getting Started.
FreeCodeCamp:
Currently halfway through Intermediate Algorithmic Scripting
Learn HTML & CSS first. And thoroughly, before you attempt JavaScript!
Here is a list of books I read:
Photoshop CS6 Unlocked
The Principles of Beautiful Web Design
The CSS3 Anthology: Take Your Sites to New Heights
SEO White Book: The Organic Guide to Google Search Engine Optimization: Volume 3 (The SEO Series)
HTML5 & CSS3 For The Real World
jQuery: Novice to Ninja
Implementing Responsive Design: Building Sites for an Anywhere, Everywhere Web
Drupal 7 Explained: Your Step-by-step Guide
Jumpstart Bootstrap
Jumpstart JavaScript
Create Your Own Website Using WordPress in a Weekend
JavaScript – A Beginners Guide – Fourth Edition
JavaScript – The Complete Reference – Third Edition
CSS Master (not read it yet)
CSS Secrets: Better Solutions to Everyday Web Design Problems (not read it yet)
Professional WordPress: Design and Development (not read yet)
Professional JavaScript for Web Developers (not read yet)