Archive for September, 2009

I recently had a chance to read “Learning jQuery 1.3″ by Jonathan Chaffer and Karl Swedberg. Having been using jQuery for quite a while in dozens of web development projects, and having released a few plugins, I consider myself an advanced user of this great library. However, my knowledge of jQuery comes almost exclusively from the official online documentation (particularly the API reference) and some occasional reading. So I thought this could be an interesting opportunity to compare my experience-based knowledge with a structured course in a book.

The book is divided into two parts — the first six chapters are a gradual introduction to the concepts of jQuery and its basic features, while the remaining chapters discuss the more advanced topics and show some real-world applications of the library.

I expected the introductory part of the book to be a bit boring, since I already knew all that elementary stuff, but I was pleasantly surprised to be wrong. The authors have managed to describe the basics (selectors, events, AJAX, etc.) really comprehensively, drawing attention to many details and subtleties. For example, the chapter about effects is nothing like the “how to amaze your visitors with cool effects” approach that many tutorials seem to take — instead, the reader gets a thorough explanation of topics such as custom animations and effect queuing.

The advanced chapters are even more interesting, demonstrating a number of practical examples of how jQuery can enrich users’ experience when dealing with common web application features, such as presenting data in tables and filling out forms. While the examples are quite complicated and lead to code snippets spanning several pages, they remain beginner-friendly, as all the new elements are introduced progressively, starting with the basics and adding more features along the way.

Last but not least, the book includes useful appendices that list numerous valuable online resources and development tools for jQuery users. There is also an excellent appendix on JavaScript closures, which is a very significant (and often misunderstood) subject for jQuery plugin developers, as well as anyone interested in advanced JavaScript programming.

What I consider the greatest strength of the book is the professional approach to web development that the authors take and try to pass to the reader. The book places great emphasis on good web development practices, especially accessibility issues — all the many examples conform to the concepts of graceful degradation and progressive enhancement, and the presented techniques can be safely implemented in accessible web applications.

I highly recommend the book to any present or future jQuery user. If you’re a beginner, it will help you learn jQuery and use it the right way. If you’re experienced, you might be surprised to learn a few new tricks (I was), or at the very least, you will find it an interesting read.