I've been slowly making my way through Stoyan Stefanov's book, "Object-Oriented JavaScript", and I'm really torn on how exactly to rate it. It's not that I didn't like the book - I loved it and will explain why - but I feel that the book may be improperly titled. My biggest concern here is that folks will see the title and think the book is something that it is not. Don't get me wrong - this book is gold - but it may not be for you. First off - let me explain my history with JavaScript and what I think about my current level of skill. I first played with JavaScript the day it was released (back before a marketing baboon made them rename it to JavaScript). I got quite good with it - even doing a bit of DHTML for Netscape (which was like working for Google back then). But as I got more and more into ColdFusion, and as got it to be more of a pain in the rear to write JavaScript for multiple browsers (yeah, I'm looking at you IE), I gradually gave up doing anything with the language.

I only picked up JavaScript again when I began to play with Adobe Spry. Now - folks know that I'm a dedicated, hard-core jQuery fan boy. But at the time, Spry was a great, simple, and practical way to get into AJAX development. ("Great, simple and practical" - sound like any server side language you know?) I gradually moved over to jQuery and I've been doing a heck of a lot more JavaScript than I used to.

However - I've never really had any good formal training in JavaScript. I've definitely played a lot with it and read plenty of online docs and tutorials, but my knowledge about the internal workings and features is definitely hodgepodge. I've been on the looks for two types of materials lately - a good "Beginners" book (just to help condense/formalize/complete my knowledge) and a good "Advanced" book to help me get to the next level.

So keeping what I said in mind - Stefanov's book actually worried me a bit. I thought perhaps it would be a bit difficult to get through. I gave it a shot though and I'm darn good I did. The book is actually a beginners book. It covers everything in detail and quite a few little tidbits/details that I never learned. In fact, shoot, I'd say the book is perfect for someone new to JavaScript. (Although it is written at a high level - I'm not sure it would be very accessible to someone without at least some computer programming experience.) That being said - I was really surprised. I had expected the book to begin with the expectation that you knew JavaScript and the bulk of material would discuss object orientation and JavaScript.

The book does have one chapter on it... but that's it. It's certainly a high quality chapter. Frankly - I'm going to need to read it again as I got a bit overwhelmed about 3/4s in. But that's really it. The last chapter also covers this a bit and focuses on coding best practices and design patterns. So I guess you could say two chapters match the description of the book. But all in all, I could imagine someone with strong, or intermediate skills in JavaScript being disappointed. As a counter to my complaining above - the back of the book does go into detail about what is covered. As does the detailed description on the publisher web site. I still feel though that the title is misleading.

So if your skill level is like mine, or perhaps your even less skilled in JavaScript, I can definitely recommend picking up this book. Its written at a level that I think is both easy to understand and challenging as well. Speaking of challenges - every chapter has a set of code samples at the end. This is nice - but it would be even nicer if he posted solutions online. Yes I'm being lazy, but I'm sure I'm not alone in wanting to see the answers. One more nice thing - I absolutely loved the fact that the author made you use Firebug for testing. That's much better than creating loads of text files for things that can more easily be done in the console.