I’m Chanpory, and this is my site on how to live and work better as a designer.

You should follow me on Twitter here.

For more, check out the archives.

I’ve just completed my first day of an intensive Ruby on Rails bootcamp. No, I didn’t get to wear a uniform, don macho combat boots, or get yelled at by angry drill sergeants. But I do get to fumble around in a shell terminal, which is just about as painful (and I suppose kinda sexy, too).

Here’s a recap of the first day:

Let’s start with some pictures

Quick stats

  • Taught at Marakana’s facility in San Francisco
  • All day from 10am to 6pm
  • 11 Students
  • 2 teachers
  • 1 TA
  • No rooftop access for lunch (lame)

Why the hell am I in a programming class?

For the past 10 years, I’ve worked as a visual and interaction designer within a painful waterfall process like this:

  1. Gather requirements
  2. Create wireframe turn it into specifications book with a billion pages
  3. Create Photoshop PSDs with a billion layers
  4. Send to engineers, and pray it turns out how you hoped

This process is painful. It’s slow. It’s expensive. And it’s demoralizing, since most projects get killed before the engineering process. 90 percent of the projects I’ve worked on never even made its way to a browser window or desktop.

Then I read 37signals’ Getting Real, a treatise on rapid software development. I drank the Agile kool-aid and decided the flavor is good. Two years later, I’ve convinced my bosses to pay for a programming class. So here I am getting down and dirty with Ruby on Rails.

My hope is to unstuck the traditional design process and learn how to create dynamic prototypes which users can actually touch and use.

Class structure

The class starts with two days of Ruby, followed by three days of Rails. The Ruby part is taught by Liah Hansen and the Rails part by Sarah Allen. Both work at local development agency, Blazing Cloud.

Today’s Ruby began with an overview of test driven development, creating classes, defining methods, and string manipulation.

What works

Diverse classroom

I loved seeing that most students were from out of town. Students came from as near as Portland, Oregon and as far as Switzerland. Since software development is a bit of a boys’ club, it was also refreshing to see about 40 percent women in the class.


I’m a huge fan of Why’s (Poignant) Guide to Ruby, which introduces Ruby via a hugely entertaining, though insanely weird, narrative. It’s more of a reference book, so it doesn’t walk you through creating a program. In today’s class, however, I got started creating mini Ruby programs immediately. It’s very satisfying to make something work!

Relatable instructor

Liah is very approachable, friendly, and interactive. She’s collaborative and behaves more like a peer. She’s definitely not a drill sergeant.

Display mirroring

I sat at a desk with my friend and DDO colleague, Sean Durham, who’s also taking the class with me. Each pair got their own table with a monitor in the center, which mirrored the instructor’s display. I’ve never seen this type of setup before, and it was great to see exactly what the instructor was presenting.

What doesn’t work


Marakana is way out in San Francisco’s industrial district past Potrero Hill. It took two busses to get to the facility, a converted live/work loft. Fortunately, I just found out the course includes a $36 a day taxi stipend. Maraka is looking for a new space downtown. Let’s hope they move soon.

Not for absolute beginners

The class moves pretty quickly, and it does assume you have some programming knowledge. If you’ve never touched any kind of code or markup in your life, you might get lost. My previous experience with Javascript and PHP definitely came in handy. Check out _why’s guide if you need an absolute beginner’s tutorial.

Needs better metaphors

The course reader so far is bland and lacks any narrative or thread to tie the concepts together. I wish the course adopted some of the brilliant metaphors for programming concepts in _why’s guide. This would help aid memorization and foster a deeper understanding of the Ruby language.

Should be team taught

The class is large with 11 students. (Marakana’s competitor, AcademyX, has an average of five per class.) With this many students, the class could be team-taught. Liah’s had about a year of Ruby experience, so it’d be great to pair her with someone who knows Ruby like a mad man. This would help answer more advanced questions and also provide even more direct interaction. If only _why hadn’t vanished. He’d be perfect.

The bottom line

Today’s Ruby class was fun, hands-on, and collaborative. I love the project-based approach, but I yearn for a bit of jazz, sizzle, and bang. With a little more pathos, the class would really resonate and could turn into a hit.

All Bootcamp Diary Entries

Rails Bootcamp Diary: Day 1

Rails Bootcamp Diary: Day 2

Rails Bootcamp Diary: Day 3

Rails Bootcamp Diary: Day 4


  • Michael Buckbee

    gravatarSep 21, 2010
    1:59 am

    If you like why’s style, you might want to check out Hackety Hack – it was his starter system for getting people going with ruby.


  • Chanpory Rith

    gravatarSep 21, 2010
    8:33 pm

    Michael, thanks for the suggestion! I’m glad to see _why’s work living on. Hopefully, he’ll return soon. Or maybe someone will take his mantle!

  • George

    gravatarSep 22, 2010
    10:54 pm

    I couldn’t agree more with your reasoning for taking a programming class, but why Ruby specifically? What about Python, Javascript, or even Jedi-level ActionScript?

  • Chanpory Rith

    gravatarSep 24, 2010
    12:29 am


    Great question. I chose Ruby because it focuses on humans rather than machines. This means the syntax is more readable and easier to understand by a person like me or you. It also means a lower learning curve than other languages.

    Ruby is also the basis for the Rails application framework which is the most popular framework for rapid web development right now. There’s a large community of contributors and developers for Rails, so I think more and more apps will be written in Ruby on Rails, because it’s faster to prototype in.

    Anything related to Flash, like ActionScript, gives me convulsions. I also think Flash will become less popular with greater adoption of HTML5. Javascript is useful to know, but it’s more for front-end development rather than backend.

    Hope that helps!