What was your technical background before you started learning Ruby/Rails?
I remember playing with Basic as a kid. My brother had these great choose your own adventure style books where you had to type in basic listings to get to the next part of the story. I typed them in to my parent’s Apple IIgs (we had the Woz signature, yeah bay-be!). I thought it was quite cool, but didn’t really go anywhere with it.
My brother was great. Even though I only had a passing interest in software as a kid, he exposed me to a lot of great ideas just by talking, in particular functional programming.
In my more teenage years I played with OO Pascal in delphi. I did some TCL to script IRC. I liked to learn about programing, but didn’t really do much with it. I read a book on c, and picked up the basics of the c abstract machine.
I developed an interest in game development. I read Foley and van Dam and loved it. I skimmed the web of research literature, starting from Siggraph proceedings, Hughes Hoppe, Seth Teller, Larry Gritz and others. I enjoyed thinking about algorithms quite a bit, but didn’t do much to apply them.
I did some contract art and design for games, and got exposed to some minor in game scripting.
I worked for a CRM VAR for a bit and got exposed to web development with asp. I also played with the early betas of .NET.
I did a little PHP on the side, and hated it.
I worked a non-technical job for a couple years. Around this time I discovered citeseer. I skimmed thousands of papers, and printed hundreds to read in more depth. I don’t exaggerate. I filled my two filing drawers and covered my desk with tall piles of printed papers, only to dump it all in the recycling bin. This repeated 4 times.
I wish I’d kept notes, because I haven’t retained that much detail, but I do find it satisfying to have a sense of the geography of CS.
I read Hennessy and Patterson, loved it, and read a couple compiler books too. I highly recommend this.
How long ago did you start?
I learned the basics of Ruby circa 2001 at the CRM VAR. I had a small scripting task: generating some human friendly temporary password tokens. Perl is what you use for that, right? I’ll learn that, let’s go take a look at it. Bleh. Hrm, maybe there’s some Perl alternatives. Oh hey, this Ruby looks cool. Wait, that’s what I can use to do… and 15 minutes later it worked.
I was hooked.
I kept a passing interest in Ruby after I tired of technical work, and occasionally attended the local users group.
What were the two most useful resources to you in the learning process (not counting the Agile Book or the Pickaxe Book, which weâll assume everyone knows)?
1. Community.
The blogs, the local users group, irc… they’ve all been invaluable in helping me learn. In particular I want to single out Jeremy Voorhis for teaching me a staggering amount while I was at PA, and being willing to debate topics I found interesting.
2. The Source.
Consistently, the source is the best place for me to answer the tricker questions about rails. Looking at other people’s source is how I’ve learned the most useful ruby. If you’re new to Ruby, this may be a bit daunting. I certainly find portions of the Rails source intimidating. But dig in there, it’s totally worth it.
Tell us the story of how you came to learn Rails:
In late 2004, someone in the portland ruby group mentioned Rails. I’d tried to play with mod_ruby, and found the experience mostly dissatisfying. I checked out Rails. I liked it. I kept an eye on the early blogs, the heiraki and the trac (until it got insanely busy).
In spring 2005 Lucas Carlson gave an intro to Rails talk for the Portland Ruby Group and the portland perl mongers. It was a good talk, and way more people than the ruby group had ever attracted before that time. More than when Matz came for OSCON a few years prior (sorry Matz). I got the feeling that I was one of only a couple people in the room who’d gotten into rails farther than the screencast, but still, the response was thought provoking.
In late 2005, rails really started to hit. I realized I could do this for a living. I hadn’t been interested in a technical job for a while. The chance to work with small, smart, early adopter companies, and to do with with Ruby was way to good to pass up. I started freelancing. In December, 2005, I started working with PLANET ARGON. I learned an amazing amount in my time there.
Three Ruby bloggers to whom youâre passing the baton: