JavaScript Master Class: A Review

Last week I attended Amy Hoy’s and Thomas Fuchs’s JavaScript Masterclass: Virtual Edition October 2010. This article is an account of my experience. Hopefully it will help you decide whether to attend their next class.
Ric’s Disclaimer: Although I admit to generally being a fan of Amy’s and Thomas’s work, I’ve tried to write a balanced review, and I paid full price for my ticket.
Format
The class mainly took the form of either Amy or Thomas – one at a time – talking through slides and examples via live video and screen-sharing (using Adobe Connect). There were two four-hour sessions (across 2 days) with breaks every hour or so, during which there were optional exercises to complete based on the content just covered. There was also a more challenging ‘homework’ exercise after the first day’s session.
Whoever of Amy or Thomas weren’t presenting were available in a Campfire room for questions, clarification and general chat. There were twenty or so people in the class (and therefore the chatroom), so I was initially worried that the chat room would be too busy, but in my class only about half a dozen people actively participated in the chat room, so it was easy to get my questions answered.
This format worked really well, and didn’t require an especially fast Internet connection (I know this because my ISP was having problems on the second day, and I had to connect using a 3G mobile modem!).
The slides (in original, and printable format) were available for download before the course started, which I found useful since I occasionally wanted to dwell on a slide. A recording of the video and a transcript of the chat room were available for download a few days after the class.
As a bonus, included in the price of the course ($429), was a copy of the JavaScript Performance Rocks e-book, which we reviewed last year.
Content
Day One
The first day was presented by Amy (with Thomas in the chat room) and covered JavaScript language principles including:
- JavaScript’s object model
- Metaprogramming
- Functions
- Closures and scope
- Extending the language
- JSON
- Constructors and prototypes
- Mix-ins and inheritance
Day Two
Day Two moved on from esoteric language concepts on to how most of us use JavaScript ‘in the real’ world i.e. in a browser context. The first part was presented by Amy again and covered:
- Browsers
- The DOM
- Events
- Frameworks, such as Prototype.js
For the latter part of the second day, Thomas took over presenting and Amy migrated to the chat room. Thomas gave some advice about how to manage your own JavaScript projects, with the following topics:
- Minification
- Namespaces
- Deployment
- Preprocessors like Sprockets.js
- Refactoring
- Performance
- Unit Testing
- Documentation
Conclusion
The class was billed as a framework-agnostic course intermediate for advanced level JavaScript developers, who want to “level up to expert”.
I don’t consider myself to be particularly advanced when it comes to JavaScript, but I found that the Language parts of the course (i.e. Day One and the first part of Day 2) were mainly just revision, although Amy’s and Thomas’s explanations of the concepts (as well as the exercises) did help to clarify my understanding.
It was great to get an insight into how experts like Thomas go about organising large projects such as Prototype.js, Script.aculo.us and Freckle (their time-tracking app).
Regarding framework agnosticism, although no prior knowledge of any frameworks were required before the course, many examples were taken from Prototype.js, (so being familiar with this helped) and the presenters certainly weren’t afraid of voicing their opinions of other popular JavaScript frameworks. :)
I would have liked to have seen less focus on language concepts, although they certainly did a good job of explaining them, and more practical advice on applying them in different situations.
Having said that, I certainly felt that I got something from the course. The content was engaging and well prepared, and it was fun to chat with Amy, Thomas and the other participants (and ask their advice and opinions on the matters covered). It’s not often you get the opportunity to get the attention of a true JavaScript master like Thomas Fuchs for a full eight hours – for me, this was worth the admission fee alone.
