By George A. Michel.
From February 18th to April 19th, the orange room near the front of Hacker Lab was crammed tight with bustle. Michael Kaiser-Nyman, founder of Epicodus, had selected the space for a pilot run of his intensive, 9-week Ruby bootcamp. I was one of the students.
The lot of us were chosen out of the pool of applicants for what I can only guess was a mixture of verve and weirdness. In our midst was an accordian-playing world-traveler, a professional soccer player, and a software engineer from Boeing, to name but three.
I couldn’t have asked for a better way to reconnect to my would-be coder roots. After veering so far away from it that I honestly thought I would never be back, I’m now further along than I’ve ever been. Michael Kaiser-Nyman is a fellow autodidact and a TDD nerd. At one point he saw that the ex-Boeing programmer had written untested code and *deleted* it. At one point he did it to me and I shook my fist to the high heavens. Secretly, I relished it. If I got anything out of this course, even in the initial weeks, it was moving beyond my tendency to write illegible, untested code. By the end of it, testing was simply a part of the way I did things, and OOD something that I grasped intuitively. Because web development deals so much with the negotiation of complexity under rapid change, it’s proven to be a reassuring foundation.
The weekly curriculum looked like this:
- Week 0 (prep) – Simple algorithms and utilities (to learn control flow, git basics, Ruby syntax)
- Week 1 – Terminal games in pure Ruby (to learn OOD principles)
Week 2 - Terminal games with unit testing (to learn Rspec)
- Week 3 – Database apps from scratch (to roll our own postgres and learn about associations)
- Week 4 – Database apps with ActiveRecord (to not have to do it anymore, and learn more complex associations)
- Week 5 – Build clients for RESTful API’s (to learn the Rails API functionalty, HTTP basics, RESTful, etc.)
- Week 6 – Build simple RESTful API servers (to learn heroku deployment and better understand the server side of the equation)
- Week 7-9 – Build our own and our team members projects (to learn project planning, git merging and branching, front-end basics)
There was one thing that we did in Epicodus more than any other thing, and that was pairing, two people to a terminal. In practice, it added a fascinating layer of cooperative negotiation and shared knowledge to the coding process, while affording a surprising level of stamina and focus. In Epicodus, we each had over three hundred hours of this. I learned a tremendous amount about myself and the people around me from the experience, the sort of communication skills that can manifest in subtle little ways even in domains that have little to do with programming. This, too, will pay dividends, I suspect.
Epicodus, and the developer’s bootcamp model in general, has prompted a wide range of opinions in the conversations I’ve had over the past nine weeks. Several of the developers running around, bearing frequent witness to the living diorama in the orange room (perhaps mistaking it for a help desk at some point, if they happened to come into Hacker Lab for the first time after the start of the course) have given me very encouraging feedback. Others have been more skeptical. Do dev bootcamps even work? Is it snake oil? Are people who take these Rails courses, as one pleasant gentleman asked (though I paraphrase,) money-grubbing luddites who have no business coding because they lack attention to detail? How many brogrammers does it take to screw in a light bulb? (Answer: None. That’s a hardware problem, brah.)
After the course, Michael came in and cleared the room almost immediately, leaving an odd stillness where the bustle had been, yet another story among many under this broad little roof. I, for one, am very much the better for it.