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.

In the last years these lists contained .NET and development methodologies books and web development books (jQuery and JavaScript). The topics of the book in this year’s list are a bit different. There will still be a bit of web development on .NET, but due to the nature of the projects I did in my spare time, the list will mainly be about WP7 development, Arduino/InternetOfThings and one of the cool technologies with which I’m experimenting lately, which is Node.js.

Instead of 11 or 13, this year there will be more books, so I’ve split my summer reading list over 4 posts:

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.

I declared in a few other occasions I’m a web developer at heart, and my first programming language was LiveWire, the first implementation, on Netscape server, of a server-side JavaScript library, in 1996. Node.js immediately sparked my interest: a return to my origins.

Node.js is basically a server-side JavaScript library that handles web requests in an asynchronous and event-driven way. It’s low level API, but the cool thing is that tons of libraries and modules have been built on top of it; what at first sight can look just like a super-scalable low-level networking and parallel library, is becoming a complete development platform full of high-level libraries. If you look at similarity in the .NET universe, Node.js is like an asynchronous HttpHandler, on top of which all Microsoft web frameworks, WebForms and ASP.NET MVC, have been built.

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.

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).

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.

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:

Backbone.js and underscore.js – not specific to Node.js, they are standard JavaScript libraries than can also be used in client-side JavaScript development, even in conjunction with jQuery. One is a library that helps making sense of all data used in a JavaScript application, with the help of key-value lists and more. The other brings functional development to JavaScript.

Spine.js is again a standard JavaScript library that implements the MVC pattern. Can be used with Node.js to build a MVC web application.

...naturally programming is the main passion for a programmer but me I prefer to read other books while I'm on holiday! There are many changes/new technologies every minute in the IT world ;-) but I think we're living in a period of the history that there are also many other changes (social etc. as we see and hear every day) ;-) I suggest this interesting book: 'To Understand and to be Understood' by Erik Blumenthal! -- it's a kind of Self-knowledge and old book and not easy to find but it's very actual!

Node.js. It's the latest in a long line of "Are you cool enough to use me?" programming languages, APIs, and toolkits. In that sense, it lands squarely in the tradition of Rails, and Ajax, and Hadoop, and even to some degree iPhone programming and HTML5. It's my cup of tea now!

Comments have been closed on this topic.

about

This is the blog of Simone Chiaretta, an Italian .NET developer, architect, ex-Microsoft MVP, ASPInsider, Subtext core member, ASP.NET MVC lover with a passion for triathlon.