I had the opportunity to take the beta version of exam 70-480: Programming in HTML5 with JavaScript and CSS3, and I just found out this week that I passed. I now add “Specialist” to my list of certifications. (I’m “certifiable“, too, but that’s a different story.)

I primarily relied on two books while studying: the first was HTML5 Up and Running and the second was JavaScript and JQuery an O’Reilly “Missing Manual” series book, by David Sawyer McFarland. The JQuery book was new enough to include HTML5 concepts, which complimented the first book nicely, and helped me pass the exam.

The book is separated into several sections. The first section of the book starts off at an incredibly basic level, explaining how to add a JavaScript file to a page and how to debug your JavaScript using various browser tools. Next, the author goes over basic programming concepts in JavaScript such as native types, variables, operators, etc. He finishes up the first section discussing if/then logic and loops. Although many of these concepts are universal across programming languages, it’s good to know what’s natively available (and what’s not) in JavaScript.

I especially appreciated the author diving into arrays. Since JavaScript is not natively a strongly typed language (in the way that, say, C# is), coupled with the fact that I often use JavaScrpt to traverse item collections (i.e. arrays) in the Document Ojbect Model (or DOM) of a page, this was especially helpful.

The second section of the book gives a great introduction to JQuery. It starts off with how to add a JQuery library to your page, then gets you going right away with examples of how to manipulate the DOM using JQuery syntax. The next several chapters go into the more advanced topics of using events and animations with JQuery, which are two topics I don’t typically dive into when writing JavaScript (and I needed to know for the exam!)

The third section of the book goes into more details about ways you can use JQuery to build full-fledged solutions. This moves beyond basic examples, and starts showcasing particular JQuery solutions you can download and start playing with. Although I appreciated why the author was writing about this, I found the discussion of particular plug-ins a little irrelevent, since my purpose of reading the book was more to grasp overall concepts. That being said, in chapter 9, the author discussed how to use JQuery to validate controls on a page. This, I’ve found, is one of the most frequently used and effective way of implementing JavaScript and JQuery, so I found that chapter especially relevent. Chapter 10 dives into AJAX (i.e. asynchronous process), while chapter 11 dives into using Google Maps and Flickr. (I admit, I skipped over this chapter, not finding it immediately necessary for me to know.)

The last section of the book was a grab bag of miscellaneous topics, but I actually found it quite helpful. The author covers some more advanced topics such as using regular expressions and performing date/time conversions. (How you do this in JavaScript, which executes in the browser, can be quite a bit different than how you would execute the same process in server-side code.) The last chapter reviews some common mistakes JavaScript developers frequently make.

As with the HTML5 book I reviewed, the author is a Mac guy and clearly a Google guy, too, but I found that much of what was written was pertinent across browsers. I credit this book with beefing up my knowledge of JQuery as well as helping me pass my latest exam.