I've just finished my first week of Hack Reactor, an intense program even in comparison to the other hacker schools. Our class runs from 9am to 8pm six days a week, but in honesty I was there until 11pm on most nights and I was never the last student to go. The students in our class come from a mix of backgrounds. Some have done CS degrees and others had virtually no technical background at all before getting in. In this week, we've learned how to use Jasmine for automated testing, we've slung jQuery to make front-end Twitter clones, we've implemented linked lists, queues, stacks, trees and hash tables, and meditated upon many JS koans. One thing that really helped make it possible was that the instructors signed us up for accounts at Code School and gave us some prep work to do before the first day of class.
Code School
Code School is a site with videos aimed at helping people learn various programming technologies. I first heard about them via HN comments praising their Rails For Zombies. As one might guess from the title, they don't seem to take themselves too seriously. They definitely know their stuff, but the videos are often zany and entertaining as well as educational. I tried some of their free content and was pleasantly surprised to find that the videos were actually only a small part of the program. After each video, the site puts you into an interactive console or an IDE and gives you various small programming tasks that build on each other. There are also downloadable slides to refer to, and if you get stuck you can ask for a hint without getting the actual answer.
Passive learning vs practicing
In my experience, just watching the videos doesn't do that much good, no matter how good they are. For pretty much every lesson I've taken on Code School, I've ended up being over-confident while watching the videos. "Yeah, I got this... it's pretty easy to understand" is my internal dialogue throughout the video, pretty much right up to the point at which the exercises start. When asked to actually write the code to do various tasks the video just taught, it's quite a bit harder and that's when my brain actually wakes up and the real learning begins! There's a world of difference between just listening or reading about how jQuery works and actually writing the code to add a given feature to a site!
In all honesty, it's thanks to Code School's jQuery Air: First Flight course that I was able to build the skills needed to handle the first contracting work I got when I first moved to SF several months back. Seeing Hack Reactor assign Code School modules as prep work immediately gave me confidence that we would be starting at full speed when day 1 arrived.
Our assignments
Being hardcore and all that, Hack Reactor asked us to do the following classes on Code school:
- Try Git
- CSS Cross-Country
- Functional HTML
- jQuery Air 1 & 2
- CoffeeScript
- Anatomy of Backbone
- Real-time Web w/ Node.js
- Git Real
To put it bluntly, that was a LOT of prep-work! Only having been admitted to Hack Reactor about a week before the first day of class, I was very fortunate to have already worked through half the jQuery and Git assignments along with the Node.js lessons. Even so, I spent the entire week studying on Code School, only taking a break on the last day before class started. And I'm glad I did.
The effort paid off, and really helped me start Hack Reactor ready to go. Despite some initial confidence issues, it's been going extremely well and my partner and I are actually ahead on our assignments and will have time to delve into even more fun stuff!