Learning JavaScript
There’s no doubt about it; I have more than a passing fancy for JavaScript. We loves it, doesn’t we, precious? In fact, I’d go as far as to say that it’s my personal favourite programming language.
Sure, JavaScript has it’s flaws and shortcomings; but then, so does my wife and I still love her! (Although, obviously she’d disagreed. She’d probably have something to say about being compared to a programming language too - just as well she doesn’t read my blog then, eh?)
Anyhoo, recently I’ve had the pleasure of working rather extensively with my afore-mentioned language du jour. For this reason, I needed to dig out the reference material and, since I haven’t blogged anything remotely useful for a while, I thought I’d share my choice cuts with the blogosphere.
Books
Firstly, no JavaScript programmer’s library is complete without the excellent “JavaScript: The Definitive Guide”, by David Flanagan, and published by O’Reilly. If you’re programming JavaScript in any way, you should get this book - it contains excellent explanations for all the characteristics of the language as well as providing a great reference section.
My next favourite book when developing with JavaScript is “The JavaScript Anthology: 101 Essential Tips, Tricks and Hacks”, by James “Brothercake” Edwards and Cameron “The Man In Blue” Adams, and published by the excellent SitePoint. This book provides a wealth of useful tips on various problems faced everyday when programming with JavaScript. It’s an invaluable reference source and it’s been a permanent feature on my desk since I bought it!
Next up is Christian Heilmann’s “Beginning JavaScript with DOM Scripting and Ajax”, published by Apress. This book is a great read no matter what your skill level, and will teach you the basics as well as some advanced techniques. I really like this book and, although I may be slightly biased since he sits about 3 desks away from me, Chris is a fount of information regarding my favourite language.
Lastly, no list of JavaScript recommended reading would be complete without a book by Jeremy Keith; and since he’s latest hasn’t been released yet, you should definitely take a look at “DOM Scripting: Web Design with JavaScript and the Document Object Model”, published by Friends of ED. Although this book only really covers DOM Scripting (which is just a small segment of what JavaScript is capable of), it covers it well and, since most developers will only really require this sort of implementation, it’s certainly one for the bookshelf!
Video
With the dawning of the YouTube era, it’s nice to see that online video is finally becoming a staple part of our brain-food. Further to this, Yahoo! have incorporated an entire theatre of informative videos within the YUI section of the Yahoo! Developer Network. Imaginatively entitled YUI Theatre, it’s a good place to watch some informative lectures.
As far as JavaScript is concerned, you should probably watch the following:
Douglas Crockford -- "The JavaScript Programming Language"
Yahoo! JavaScript Architect Douglas Crockford provides a comprehensive introduction to the JavaScript Programming Language in this four-part video:
Douglas Crockford -- "Advanced JavaScript"
Yahoo! JavaScript Architect Douglas Crockford lectures on the nuances of the JavaScript programming language in this three-part video:
Douglas Crockford -- "An Inconvenient API: The Theory of the DOM"
Yahoo! JavaScript Architect Douglas Crockford discusses the nexus between JavaScript and the browser, exploring the history of the BOM and DOM APIs and their impact on frontend engineering today. This presentation is archived in three parts:
Eric Miraglia -- "Applying Ajax: Speeding the Journey from Idea to Information"
Eric Miraglia, YUI engineer and technical evangelist, addresses the RealWorld Ajax conference in San Jose in April 2006. Miraglia’s talk focuses on applying Ajax techniques to power real-world interaction problems and looks at autocomplete as a pattern that illustrate’s the power of XMLHttpRequest.
Web
Finally, as web developers, one would hope we’d embrace the internet as a teaching tool. To this end, you might like to take a look at some of the following sites:
- Douglas Crockford's JavaScript site - Contains a great set of tutorials, musings, and development recommendations.
- Mozilla Developer Centre - A fantastic reference resource on all subjects; from JavaScript itself, through to the DOM.
- W3Schools JavaScript Tutorial - A great tutorial for beginners, the W3Schools site also has a nice reference secton.
- Sitepoint's JavaScript 101 - A good tutorial. Searching through Sitepoint's archive could also be recommended!
- A List Apart's Code Topic - A List Apart often publish tutorials involving JavaScript. The resource is too large to recommend a single piece. You're better off searching the archive yourself.
- Object Oriented Javascript - A bit of harmless self-promotion here. My tutorial still seems to be popular, and continues to be the largest entry point to my site!