Posts

How I learnt to stop worrying and start loving node

Note: This and all other posts tagged with ‘tech’ will discuss the technologies associated with the Novlr build and will be fairly in-depth.

When deciding how we were going to build Novlr, we evaluated a number of different technologies over the course of a few weeks and settled eventually on node.js (commonly referred to as just ‘node’). Node isn’t a platform I was familiar with (I do love a challenge) but we selected it because of its flexibility in server-side and client-side development for real-time, scalable online applications. We were also inspired by Ghost, who have built a simple blogging platform on node.js which allowed us to see what it is capable of.

I have developed primarily in php and on Drupal in the past but have a grounding in Javascript which I am hoping will give me enough to carry me through the node learning. I spent a month back in November putting in about 6 hours a day, alongside my day job, on research, online tutorials, building simple example apps and reading books. That was the fastest learning curve I have ever climbed but by the end of it I felt ready to start working with node and hoping that I could learn everything else I needed along the way! And boy am I learning.

Best way to learn node according to a beginner

I thought it might be useful for others starting on a node journey to share what I found most useful. So here’s what I did. In this order:

  1. If you haven’t already, learn some javasrcipt
  2. Read all about node – get your head around asynchronous programming. Learn what event-driven non-blocking I/O really means.
  3. Read this book and build the app  – this is from scratch, including installing node
  4. Sign up to this course at Code School  – it’s $25/month but easy to suspend subscription and won’t take you a month
  5. Do the three core concepts from nodeschool.io – these are excellent command-line tutorials, a great way to learn and have a supportive community.
  6. Do the Expressworks elective on nodeschool.io
  7. Follow this guide and make sure you are comfortable with express on node

At this point, I then built my first production site using node, express and jade (for templating) which is the site you are currently on, the Novlr marketing website excluding the blog which we threw up in wordpress on our existing apache server for ease, although we intend to switch this to ghost to have everything on the site on node at some point soon.

So that’s it. The journey so far

Every single day I learn something new. I break something and have to fix it again. I start from scratch. I reconsider the structure. I whine at Thomas, I can’t do this. It’s too hard. And then I get a little win that carries me through until the next emotional cracks reveal themselves.