Duration of Course: About 2 weeks
Prerequisite: JavaScript knowledge of 5/10

This is the age of the JavaScript developer, and it will only get better, particularly because of the widespread adoption of HTML5; the abandonment of Flash; the ubiquity of mobile devices; the recent rise of Meteor.js; and the popularity, stability, and robustness of Node.js, which allows developers to use JavaScript on the server.

[sc:mongodb-book]

Node.js, a revolutionary technology, is the immediate and near future of modern web application development with JavaScript as the sole server-side language. In this article, I provide you with a comprehensive road map for learning Node.js; this road map has worked for me and I am confident it will work for you. You will learn Node.js completely and you should approach this course with confidence because you are only 2 to 3 weeks away from building impressive modern web applications in short time.

Why Learn Node.js
JavaScript is the language of the web today and unquestionably for the near future because there is no known alternative to JavaScript in the works. The ECMAScript organization has been moving full pace ahead with advancing the JavaScript language.

With a solid understanding of Node.js, you will be able to use JavaScript to develop real-time, fast, scalable, data-driven web applications, and you will have the requisite knowledge to quickly adapt to any of the emerging, cutting-edge JavaScript technologies like Derby.js and Meteor.js. Incidentally, I have recently written a Learn Meteor Properly article and roadmap.

Unlike just a couple of years ago when you needed to know a true server-side language (such as PHP, Rails, Java, Python, or Perl) to develop scalable, dynamic, database-driven web applications, today you can do as much and more with JavaScript alone, as I noted in my Learn JavaScript Properly article.

How Not to Learn Node.js

  1. Although a number of Node.js tutorials exist online, most lack the comprehensiveness necessary for learning Node.js properly. Moreover, you can easily spend a frustrating fortnight trying to find and discern the worthwhile tutorials from the fruitless ones. I read a good bit of Node.js tutorials when I learned Node.js a few years ago. I also wasted a good bit of time on many of them. I have done the hard work so you don’t have to go digging for Node.js tutorials.
  2. Don’t go to Amazon and choose a Node.js book based on the reviews. Even though this is the customary way to decide on a book, because Node.js is still a new platform, most of the books don’t have a large enough sample of reviews to provide you with a clear picture of the book’s usefulness and value. And collectively, the reviews are not great.

    If you go to Amazon.com and type “Node.js,” you will see at least 21 Node.js books. While I have only read five of them (the five best of the lot), I found a pattern in the books that were not good: the authors do not appear to have a vast and rich understanding of the Node.js architecture and platform, and the books appear to be a collection of mediocre tutorials aggregated for the book. Of the five Node.js books I have read, two are good, though I recommend only one. The two worthwhile books are Professional Node.js: Building JavaScript Based Scalable Software, by Pedro Teixera; and Smashing Node.js: JavaScript Everywhere, by Guillermo Rauch. I recommend Pedro Teixera’s book, but you can learn quite a bit from Guillermo Rauch’s book, too, so you should get both, if you are serious about developing with Node.js

Book Review
As of this writing, there are only two reviews of Professional Node.js: Building JavaScript Based Scalable Software (Pedro Teixera’s book) on Amazon.com; one of them is excellent (5 stars) and the other is a bad review–it is best if you read it yourself. This is the bad review of the book:

I have no idea if this book is well written or not because the formatting is so bad as to make it virtually unreadable in some places.

Obviously, the author of this review has not read the book and his review is completely about the formatting, which I have not experienced. I would give the book 5 stars because it is by far the best Node.js book I have read.

Also note that I know neither of the authors of the two books I recommend in this article.

Resources

  1. Get a copy of The Node Beginner Book by Manuel Kiessling. It is a tiny book: it is really a Node.js tutorial. The book sells in a bundle with another book, Hands-on Node.js written by the aforementioned Pedro Teixeira, for $9.99. But interestingly, I didn’t find the companion book (by Pedro) to be as useful, so you don’t need it and we will not use it in our study of Node.js. But since you get both books for $9.99, take the deal and run. Get the Node Beginner Book here:
  2. Get a copy of:
    — Paperback Version: Professional Node.js: Building Javascript Based Scalable Software, by Pedro Teixera.
    — Kindle Version: Professional Node.js: Building Javascript Based Scalable Software, by Pedro Teixera.

Road map to Mastering Node.js

  1. If you already know JavaScript very well, and you feel invincible when you sit to code in JavaScript, carry on with step 2 below.

    If you don’t know JavaScript well enough to develop a full, interactive quiz application with just JavaScript (no jQuery), you should learn JavaScript properly.

    If you know enough JavaScript and want to proceed, but you feel you need a JavaScript refresher, read these 3 articles (in the order they are listed):
    JavaScript Objects in Detail
    JavaScript Variable Scope and Hoisting Explained
    — (Must Read) Understand JavaScript Closures With Ease

  2. Read chapter 1 of Professional Node.js and follow the instructions on how to setup Node.js on your development computer.
  3. Read the entire Node Beginner Book. As I noted above, it is a tiny book; basically a tutorial. This tutorial will give you a gentle introduction into Node.js and a very basic understanding of what Node.js development involves. It is good to start with this before you read the rest of the Professional Node.js book.
  4. Read chapter 2 of Professional Node.js.
  5. Read the CommonJS section of the article at the link below. You need not read the entire article. Here is a link to just the CommonJS section.
  6. Read chapter 3 to 6 of Professional Node.js.
  7. Read the entire Part III section (chapter 7 to 15) of Professional Node.js.
  8. Optional: If you have got the Smashing Node.js book I referenced earlier, read chapters 8 and 9.
  9. Read chapter 17 to 22 of Professional Node.js.
  10. And finish up by reading the last 3 chapters of Professional Node.js.
  11. Now that you have learned enough Node.js to build the backend of a modern web application, you have to learn Backbone.js, Ember.js, or Angular.js so you can rapidly build web applications on the frontend. You are a Node.js developer if you know only Node.js, but with oen of the noted front-end frameworks and Node.js, you are a badass JavaScript developer with the skills and tools to build all sorts of web applications. Go learn Backbone.js completely, or learn Ember.js or Angular.js.
  12. With a complete understanding of Node.js and Backbone.js, you are ready to build any type of web application. You can build a startup at this juncture, if you are intrepid enough.

    But before you head off for your adventure, build the NodeApp web application at the link below; this exercise provides you with a real-world practical in Node.js/Backbone.js web application development:
    http://dailyjs.com/web-app.html

  13. Further Learning: There are two more technologies you should learn to help consolidate your Node.js and Backbone.js skills: Handlebars.js for templating and MongoDB for database. Indeed, you have learned the simple Underscore.js template engine that comes with Backbone.js and you have learned a bit of MongoDB in step 10 above. But you have to learn Handlebars properly because it is more robust and feature rich that the Underscore.js template engine. Read my post, Handlebars.js Tutorial: Learn Everything About Handlebars.js JavaScript Templating.

    And you have to learn more MongoDB (unless you are suing some other database) to build serious web applications. You can get my MongoDB book, which covers everything you need to know about MongoDB to build sophisticated web applications.

  14. Final Words

    Stay the course until you complete the entire road map. Don’t give up. And don’t take longer than three weeks to complete it.

    Be good. Sleep well. And enjoy coding.