This last week I’ve been geeking out - getting back to my roots as an engineer. Now that I work in business development/marketing, its been so long since I coded something (other than an excel macro) that not only are my skills getting rusty, but I really miss the fun of architecting an elegantly designed system. It was only a few years ago that I was teaching programming at the University of Sydney - everything from software engineering to concurrent programming to network systems to artificial intelligence and more. It’s amazing how quickly these skills disappear if you don’t keep using them. Luckily they come back pretty quickly when you do start using them again.
So I decided to teach myself Ruby on Rails. After all - it seems everyone in web 2.0 land is singing the praises of RoR, so I decided it was worth a look. I have programmed a web app in Ruby before, but it was back in 2002 before there were any sort of frameworks like Rails available, and it was hard enough getting my code to talk to a MySQL database through a fairly primitive connector that was available at the time. In fact I ended up hacking together my own primitive .rhtml format because ERb was either primitive or non-existant at the time. But I digress…
Aside from the fact it feels great to code again, I am remembering what an elegant and well designed language Ruby is. I’m also very impressed with the quality of the rails framework - it really is everything a framework should be.
I’ll conclude this post with some advice for anyone out there looking at learning Ruby on Rails for themselves:
- Learn Ruby first. You’ll really appreciate having a solid understanding of the underlying language. To learn Ruby I recommend Programming Ruby: The Pragmatic Programmer’s Guide. You can read the first edition in its entirety online, or you can purchase the second edition. Commonly called the ‘pickaxe’ book (due to its cover art), this book is widely considered to be the bible for learning Ruby.
- Set up your development environment, and program a Ruby application. For windows users, you should download Instant Rails which contains everything you need for running Ruby on Rails applications. Unless you prefer the command line and a text editor (I am quite partial to vim myself), I recommend installing radrails - a free Ruby IDE based on Eclipse. After telling radrails where your ruby executable is, plus a couple of others (ri and rdoc) you’re up and running. I’d also recommend using Subversion for version control, but I wont go into details here - email me if you need help. Side note: you see the events listed on the side of my blog? I wrote a Ruby program to parse the BASES digest email newsletter and add the events to my blog automatically. That was my ‘test’ program to make sure I was proficient at Ruby before moving on to Rails.
- With your development environment ready to go, and a good understanding of Ruby, it’s time to learn Rails. This is where the real fun begins. I recommend Agile Web Development with Rails. The second edition is updated with all the latest cutting edge Rails features, but has not yet been published. Luckily you can download the ‘beta book’ as a work-in-progress pdf file. You may also find this tutorial useful, which shows you step by step how to complete the examples in the book using the radrails environment.
- After all that (or in parallel), I recommend reading Getting Real, which is full of useful advice on how to quickly build a web 2.0 application.
That’s my advice for now, I’m far from an expert on the subject but I hope some of you will find it useful.
And now that I’ve satisfied my primal geek urges I can get back to blogging about entrepreneurship and such :)


Founders at Work: Stories of Startups’ Early Days
0 Responses to “Geeking Out”