My main focus recently has been on wrapping my head around Node.js. My first introduction was via a Treehouse course a few months back. I breezed through the course, but finished it not understanding what the hell I just did, nor what type of practical applications Node.js could help me with. I then attempted at learnyounode on Free Code Camp and think I confused myself even more. So, I went back to Treehouse, took the Node.js courses again and felt a bit more comfortable. Unfortunately though, that course is a bit outdated. Hopefully Treehouse does an update soon.

Now I’ve once again returned to learnyounode and it’s starting to click, a little. I’ve heard from other Free Code Camp students that are struggling with similar questions, so I’m going to compile a list of resources in this post that can hopefully help others.

First, what is Node.js?

Node.js is V8 (the JavaScript engine running inside Google Chrome) bundled together with a couple of libraries, mainly to do I/O – i.e. writing files and handling network connections.

It’s important to note that Node.js isn’t any special dialect of JavaScript – it is just normal, modern JavaScript, running everywhere instead of just the browser.

Node.js allows developers to use JavaScript everywhere instead of just in browsers – the two big mainstream uses as of writing are web/app servers (Node.js is very well-suited for messaging-like applications like chat servers, for example) and Internet of Things (running inside Arduino-like devices).

Mattias Petter Johansson (This guy makes some great videos on Youtube)

Okay, but why the hell would I use Node.js?

In one sentence: Node.js shines in real-time web applications employing push technology over websockets. What is so revolutionary about that? Well, after over 20 years of stateless-web based on the stateless request-response paradigm, we finally have web applications with real-time, two-way connections, where both the client and server can initiate communication, allowing them to exchange data freely. This is in stark contrast to the typical web response paradigm, where the client always initiates communication. Additionally, it’s all based on the open web stack (HTML, CSS and JS) running over the standard port 80.

Tomislav Capan (read the entire post here)

Still confused? Go here and watch every preview through lesson @9. For me, that was the “aha!” moment.

How can I learn Node.js then?

  1. Work through how-to-npm, learnyounode, and learnyouexpress. Repeat each 2-3 times until you are comfortable
  2. Watch this playlist from thenewboston
  3. Watch this playlist from Derek Banas
  4. Do this tutorial by Chris Sevilleja
  5. Check out more tutorials

More Resources: