Preparing for Northcoders

Posted on: 3rd Apr, 2016

It’s Sunday afternoon and tomorrow, Monday, is the first day of the course at Northcoders. To say I’m excited is an understatement. I still can’t really believe it’s happening, or believe what it means for the future - that I get to turn a hobby I love into a career. Anyway, over the last few weeks I’ve had a bit of time off work which has been nice and I’ve been preparing as much as possible. I thought I’d just share some of the ways I’ve been preparing and some of the resources I’ve used - there’s so much out there for people learning to code that I’m sure my list barely scrapes the surface, but maybe it’ll be of interest!

Firstly, what exactly have I been brushing up on?

HTML/CSS

Since Northcoders is producing JavaScript developers, JS is pretty much always going to run on top of websites built in HTML and CSS so being as familiar with these as possible is only going to be a bonus. I wanted to go over stuff like some of the HTML5 elements I was less familiar with, such as Canvas, and the trickier bits of CSS like animations, transitions, flexbox.

The Command Line

Lots of JS tools like NodeJS run through the command line and so do version control systems such as Git. It’s inevitable that we’ll be using the command line from pretty early on in the course so I went over a Command Line Course on Code Academy and Console Foundations Treehouse. You could just play around creating files and directories in a test folder, moving them around and editing them. This Command Line Murder Mystern Game is also meant to be really great although I haven't done it myself.

Git

I’ve been using Git, a version control system, for a few months now. I think of it as a bit like Apple’s Time Machine - it stores copies of your work at different stages so you can easily go back to how something was before you messed it all up. Again, there is a free course on Codeschool.com which I went through for some extra practice. There’s also a free course on Code Academy. Git is so useful - I really don’t know how I managed without it now. Oh yeah.. By pressing cmd+Z furiously for 5 minutes whenever something went wrong and then trying to stop before I undid too much by accident. Not super professional.

Github

Github is a place to host projects, keep backups, and collaborate. It’s operated through the command line and it’s basically an online place to store all the backups and histories of your work that git creates. Again, I’d started using Github in the last few months and when I started out it was a massive learning curve because I’d never used a website that was operated through the command line before. What was this wizardry?! Anyway the struggle was worth it - Github is super handy and probably where employers will look to see what code you’re writing and what you’re capable of. In the past I followed the Treehouse Github Course to get me going and I found it excellent.

JavaScript

Well, since the course is JavaScript-based I obviously wanted to brush up on this as much as possible. In particular, I did a bit of research about how the MEAN stack works so that I at least know, conceptually, what’s going on even if I can’t do much with it myself yet apart from put together a very simple blog. And also just refreshing the basics. I don’t think you can ever go over the basics too many times. Go over them so often that you could type a for loop after 4 glasses of wine. For actually practicing writing code, I found CodeWars invaluable as it actually gets you writing small snippets of test-driven code at whatever level you’re working. It’s also incredibly addictive! JavaScript Koans are also a really fun way of hammering in the functionality of JS whilst dealing with actual code in a test-driven environment. JSBin and JSFiddle are great places as well to practice writing JavaScript without the hassle of creating a load of files on your computer and running them through the browser each time.

ES2015

There’s also lots you can learn about ES2015 which is the newest release of JavaScript and although most browsers can’t deal with all of its features yet you can run it through a compiler like Babel and then you can make use of some of its features. To be honest, the code I’m writing right now is not complex enough to need to use any of the cool functionality of ES2015 but you do see it in documentation now (e.g. the keyword ‘let’ and functions written with funny arrows => ) and that can be confusing if you don’t know what’s going on! There’s no shortage of stuff written on ES2015, such as this CSS-Tricks intro. There are also ES6 Katas available here which are pretty fun.

jQuery

I think jQuery is really worth taking a look at because it’s really easy to start working with and it’s probably the easiest way to actually start doing stuff with JavaScript in your website. You could be learning all about JS syntax but have no idea how you’d actually incorporate it into your site, and then you try jQuery and JS’s capabilities begin to make sense. It also helps you learn about the structure of a webpage, since you have to figure out how to traverse the DOM (Document Object Model - which is the way HTML is represented in JavaScript) to find and target the particular element you're trying to get to. There is a free jQuery course on Code School which moves quite quickly through the basics and onto more advanced stuff, and plenty about it on Treehouse too.

Diving into Documentation

So documentation can be pretty confusing and for ages I put off using it and preferred to just google the answer or use my own notes to see if I’d already come across a method I needed or something like that, but being able to make sense of the online docs for JavaScript and various libraries and frameworks makes everything so much easier. I have been trying to use to docs as much as possible, especially when training on CodeWars, just to see if I can find another way of doing something.