My JavaScript book recommendations

I’ve been using JavaScript since the late 1990s – the era of the first browser wars between Netscape Navigator and Internet Explorer. At the time it was just to liven up the static html pages with some mouse over effects. Since the early 2000s it was all about simple form validations. But from 2008 onwards – thanks to the arrival of jQuery and the meanwhile ubiquitous presence of Ajax – the use of JavaScript has exploded. I’ve been using jQuery extensively since 2009, mainly to enhance to user experience of the web sites and applications that I’ve developed.

Probably due to the vast number of jQuery plugins that are available, I’ve never felt the need to really deepen my knowledge of the JavaScript language. That is, up until november 2012, the time I first came in to contact with the amazing framework that is called AngularJS. As a veteran Java developer AngularJS I was immediately very charmed by the framework because on the one hand there were all these familiar concepts like dependency injection, the MVC pattern, modularity, data binding, etc., whilst on the other hand my productivity soared using AngularJS instead of server side Java frameworks like Wicket or JSF.

Starting to use AngularJS I was warned by several sources that it had a very steep learning curve. So I decided it to be prudent to take the time to familiarize myself with the core concepts and ideas behind the framework. And I did so by reading the book called AngularJS by Brad Green and Shyam Seshadri. I can heartily recommend it to anyone as a starting point to learning the basics, theory, and the core concept underlying the framework. I would give this book a rating of 4/5.

Its new, updated version:

In 2013 I did a couple of smaller projects using AngularJS, and I found the infamous learning curve to be quite exaggerated – probably due to my Java background. I did however find myself struggling every now and then not with AngularJS but with the JavaScript language itself: its syntax looking so familiar but it turning out to be quite a different beast. So I set out to expand my knowledge about the core JS language by reading the book Secrets of the JavaScript Ninja by John Resig (the creator of jQuery) and Bear Bibeault. The first part of the book IMHO is the most useful part, and it was exactly what I was looking for at the time. It taught me all about functions, closures, JavaScripts’ take on OOP, and much more. The second part of the book was not really for me as I found it to be dealing with lots of stuff I want the libraries and frameworks I use to abstract away for me. However, that part of the book did make me appreciate jQuery and AngularJS even more. After having read the complete book I have some mixed appreciations for it. The first part of the book was exactly what I was looking for, whilst the second part was too much for me. Had it been just the first part I would have gladly rated it with five stars but now I’ll give it a 4/5.

For the greater part of 2014 I’ve been working on a big Java based project that also involves quite a lot of JavaScript code. The amount of custom JS code has become quite staggering. Amongst other things, I quickly ran into trouble in organizing the ever growing code base. While trying to find ways to manage the fruits of my labour I came across the excellent work by Stoyan Stefanov simply titled JavaScript Patterns. Especially the chapter on the “revealing module pattern” turned out to be a life saver. But the book holds many more gems well worth the read: 5/5.