This is really cool from a first glance. I definitely think one needs to take this sort of approach when learning a new technology. Despite having enthusiasm about a new field of software development, it's far too easy to abandon any attempts education oneself due to the dryness of the material.