Ruby on Rails Bootcamp at Big Nerd Ranch

During the first week of December I traveled to rural Atlanta to attend the Ruby on Rails Bootcamp at the Big Nerd Ranch.
The Ranch isn’t a place, exactly – more like a concept. In the US, they rent an executive retreat lodge 1-2 weeks per month, where 18 students take single rooms in a relaxed natural setting with full-service meals. They hire top-notch instructors on chunky technical topics, and they geek out in a major way.
The day schedule was thus:
* Breakfast at 8:30 AM
* Class from 9:00 to 12:30 PM
* Lunch from 12:30 to 1:00
* Class from 1:00 to 2:30
* Execise/nature/photography walk outside from 2:30 to 3:00
* Class from 3:00 to 6:30
* Dinner from 6:30 to 7:00
* Hacking sessions in the lab from 7:00 PM to midnight or 1:00 AM. The lab is open 24 hours a day, and some people took good advantage of it. Here’s the lab/classroom:
RoR-lab.jpg
The attendees were diverse, except that we were all white males. Here’s a photo:
group-RoR-1-web.jpg
One person from Germany, and one from the UK. Three US government/military employees – one who couldn’t discuss what department he worked for (probably the NSA. At one point he asked, “Is there a way to open a socket to a specific IP and capture the stream to a database?”). Ages ranged from early ’20s to early ’60s. One person had extensive Lotus Notes programming experience, several had worked on large complex software for industry. Two people worked on Windows machines, the rest on Mac OSX. Several were Linux refugees. We had one O’Reilly author in the room. One person had been to the Ranch once before, another had been twice before. Keith Bingman and I brought up the rear on programming experience, but we didn’t drown, and we both got a lot out of the full-immersion approach.
Cost: $3,500 plus a $400 plane ticket and $70 in airport parking. A significant investment, but worth it. I left my house on Sunday at 8:00 AM and returned home the following Friday at midnight.
Our instructor – Marcel Molina, Jr., one of the Rails core developers and a 37 Signals employee – deserves kudos and gratitude for organizing a course with no prerequisites that satisfied such a wide range of experience and understanding. Marcel knew the material _completely,_ and had in-depth knowledge of the Unix shell, databases, Martin Fowler’s computer science writings, typical practices and idioms, popular culture, and literary theory. We had a lot of fun banter (“_Who is_ the best Rails programmer ever?”), witty techie asides (“TextMate has _preferences?!?_”), and deep recursive pedagogy (grokking the functional and unit testing framework while getting sidetracked by a bug in Rails that existed only for 18 hours – during which time we had grabbed our code snapshot – while learning the theory of testing in general).
I had the rare experience of focusing on a single topic for five days, virtually all day every day. A couple of students had solid Ruby or Rails knowledge and came to work on their applications outside of the interrupt-driven work environment. For them, the class segments were less important than the focus time and access to an expert for design and code assistance along the way.
I’ve written about Rails before, about a year ago (“Avoiding Software Fear”). In that post I wrote, “‘New’ technology becomes ‘mainstream’ technology through the momentum of use.” Rails today has momentum of use, far more than when I first wrote about it last January. In the next six months I think people in the technical community will be saturated with Rails developments, from whizzy applications, to regular code updates, to new books.
In about six or eight hours of programming, I wrote a simple blog-style application. It has user login, posts, comments, human-readable URLs, time-stamping, and AJAX-based deleting. Remember, the last time I did any programming was in 1976. If you want to build web apps in the next few years, you could do a lot worse than pick a framework that assists programmer productivity. I have a lot to learn, but this was a great way to jump up the learning curve.