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.
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
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 first day was presented by Amy (with Thomas in the chat room) and
Closures and scope
Extending the language
Constructors and prototypes
Mix-ins and inheritance
Day Two moved on from esoteric language concepts on to how most of us
part was presented by Amy again and covered:
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
Preprocessors like Sprockets.js
The class was billed as a framework-agnostic course intermediate for
I don't consider myself to be particularly advanced when it comes to
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,
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
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
full eight hours - for me, this was worth the admission fee alone.
own cross-browser Ajax utilities, and so I studied the source code of
Prototype and script.aculo.us and MochiKit, and now I'm a far better
programmer than someone starting out today might be forced to become.
I've found the same thing in the past. If you've ever worked on a
project where you can't use a popular framework, you suddenly have to
learn a lot very quickly. Browser differences are a headache, which is
why I'm glad these frameworks exist. What really shapes these libraries
Creating a simple library turned out to be a fantastic learning
exercise: it requires investigation of namespaces, presents plenty of
scoping problems to overcome, and requires attention to consistency,
organization and sane API design.