Updates
Latest Tweet
What's New?
Check out for latest innovation, a computer based training video collection
Like this Page
Professional JavaScript for Web Developers Review by Mr. M. O'Sullivan
Complete Coverage - review refers to 2nd edition of this book.
For the most part this is an excellent book, the simplicity and clarity of the examples given is mostly excellent, and the coverage feels complete. This book is definitely for experienced JavaScript programmers, and probably other programmers from a similar syntactical based language that will be able to grasp the concepts quickly. Although it does begin with the basics, more as an overview/reminder, it doesn't continue along those lines as you move through the book, for example when covering regular expressions it doesn't tell you why regular expression literals begin and end with a forward slash as you should already know that, equally it doesn't waste time explaining the parts that make up a regular expression, such as repetition characters, position characters etc, as you should already know that too, instead it heads straight into advanced stuff, and this is the case on most topics. The terminology used throughout is definitely aimed at experienced programmers that will instantly understand the commentary; beginners will be baffled as programming terms aren't explained, unless it is specific to JavaScript.
Constructor, prototype, inheritance and many other patterns are discussed with great clarity. Equally the DOM and BOM are very well covered with the many differences amongst the browsers explained with cross browser solutions provided. Events are also given excellent coverage. The theory behind each aspect of JavaScript is often provided, I've always felt such theory is absolutely necessary in order to really get to grips with a language, and this sort of stuff is lacking in many other books, but not here thankfully. You'll walk away not only knowing how to do something and why you should do it that way, but also how it works under the hood.
There are issues (as opposed to downsides), one is that some aspects of the book, especially early on, feel more like you're reading a reference book rather than a tutorial and it does make reading those sections a little difficult from a concentration/interest standpoint due to the dry nature of reference type material. Having said that though it's obvious that completeness was the aim of this book as there is just so much stuff in here, much of it you'll likely never encounter in your working day, although it does leave one feeling somewhat overwhelmed at times. Another potential issue, to those that have no OO programming experience, is that comparisons with JavaScript and OO type features of other languages are made throughout, and again the terminology is applied without explanations, so if you have no OO experience or knowledge you may find parts of the book difficult to understand, clearly the author was trying to anticipate the questions of experienced OO programmers moving over to JavaScript. I call these issues rather than downsides as this is a professional book, in the right target market these issues shouldn't really be a problem.
The area which needs improvement is real-world application of advanced concepts. It's one thing understanding patterns and advanced techniques but knowing when to apply them in a meaningful context is frequently, but not always, lacking. In addition the author will teach a particular concept and then wrap it up in his own utility classes and then throughout the book he'll simply use his utility classes when he needs that particular feature, now this is no doubt the way to do things but whilst I'm learning I would prefer he'd reuse the actual features directly in order to help cement concepts in my mind that I'd previously covered as I go through the book, unfortunately the use of utility classes hides away the concepts you've previously learnt so you have to go back and review. In my view it would have been better if he left his utility classes to the best practices chapter towards the end of the book. On the plus side the author does support the book on the p2p forums and he was extremely helpful and quick to respond when I had questions.
One final note about this book is that it is slightly dated now, for example ECMAScript 4 is referred to in this book as the next standard but this has actually been abandoned for ECMAScript 5, and under EC5 some features have been deprecated in strict mode, such as arguments.callee amongst others, but don't let that put you off as EC5 lacks browser support. For me this book really hits the mark, especially with advanced JavaScript techniques, although I'm going to have to get in lots of practice before I forget it all!