It is now a consolidate tradition for me to publish, during summer time, a list of the books I liked reading or that I bought and are sitting on my shelves (or, lately, more and more on my iPad) waiting to be read.
- Learning Node.js (this post)
- Books on Arduino and the Internet of things
- Books to teach you how to write WP7 apps
- Some other .NET and soft skills books.
Why Node.js and what it is
Lately there has been a lot of talking about this new technology, that replaced Ruby and Rails as the cool technology of the moment. While Ruby and Rails never caught on me, Node.js really did.
Node.js runs on as standalone server, on Linux, Mac and Windows, but lately there has been a lot of discussion in the .NET twitter/blog-sphere about a project developed by Microsoft that allows running Node.js directly from inside IIS.
Scott Hanselman wrote a very nice post explaining what Node is, why it matters and how you can run it inside IIS, and Tomasz Janczuk, the author of the IIS-Node.js bridge, wrote a few post explaining how to install and get started with it, how to host an Express based application on IIS (more on Express later) and how to use WebMatrix and IIS Express to work with Node.js.
Are you convinced now?
Books and resources to learn Node.js
This post was meant to be about books, wasn’t it? Unfortunately there are not many Node.js books around and most of the knowledge is available in form of online tutorials and screencasts. But here there two (probably the only ones?) that are targeted for beginners that don’t want to hunt for information on the web.
A very concise 86 pages (at least that’s what my iBook says) eBook that will guide you from “novice to advanced-novice” while building a image uploading application. It won’t teach you best practices but will show you all the various aspects of building a Node.js application. The book is available online for free, or on github, together with code samples. Or if you don’t want to kill trees printing the book or want the convenience of having it nicely formatted as eBook, you can buy it for 10USD in bundle with the Hands-on Node.js book. For the cost of 3 coffees you get all you need to get stared with Node.js
Once you have completed the sample application presented in the previous book, the next step is Hands-on Node.js, also available on Amazon Kindle (as well as in bundle together with The Node Beginner Book). It starts by giving a bit of theoretical explanations on the eventing model of Node.js, and later it covers all the built-in modules of Node.js. It covers some automated unit testing and debugging tips as well. The thing I liked is the extensive usage of exercises that will make you learn the concepts even better (and it has the solutions at the end of the book).
UPDATE: As Maurizo says in the comment, there is also Node.js in Action from Manning. Still in MEAP (Early Access Preview), scheduled for release in Spring 2012, you can read the first chapter “Why the Web needs Node.js”.
The books are over, but the same author of Hands-on Node.js has a screencast called NodeTuts in which he explain how to work with Node.js. The first episodes are about installation and basic stuffs, but the following ones are more advanced and cover also external libraries and frameworks.
Another good source of information is How To Node. More advanced topics than NoteTuts but based on older version of Node.js and lately not updated that much. The geeky thing about this blog is that it runs on Node.js powered blog engine called Wheat and contents are hosted on GitHub.
External modules and libraries
But Node.js by itself will take you nowhere: it shines if used with external modules that will help you build web apps without having to deal with low-level processing. There are tons of modules, but I want to highlight some of what I think are the most popular and useful:
- Express.js is a generic web framework for Node.js, but not MVC based.
- Mongoose.js is a MongoDB “driver” for Node.js.
- Socket.io is a library for building applications based on the HTML5 WebSockets specs. Both server and client side.
At the end this turned out to be more a Node.js jump-start guide rather than a list of recommended books, but I hope you find it useful anyway.
Did I miss some good book or Node.js online reference? Do you have any other Node.js module you cannot live without? Please comment and let me know.
In the next days I’ll blog about more books for this (end of) summer.