Learn Ruby In 3 Weeks

Sunday, March 13, 2005

Update: I put the wrong end date, it's been corrected below. What a jackass... And the series resumes tomorrow - I've been sidelined with backed up client work and a major cold. Looks like I've got a lot of ground to make up to stay on schedule. Ah, that's what weekends are for: working.

I've decided to learn the Ruby programming language over the course of 3 weeks - anyone wanna learn along with me? I'm going to blog out every day of my progress throughout and leave the commenting on for group participation. Here's the details.

Book

I'll be using Sams Teach Yourself Ruby in 21 Days. It's pretty widely available, whether at your local megastore or online. If you do decide to get it from Amazon, I'd appreciate if you click through the referral link from my site before ordering just to support the project in a small way. No one's asked this, but just to be clear: it doesn't tack on any extra charges, it just gives me a tiny cut for passing on customers.

Schedule

The starting date is about two weeks from now: Sunday, March 27th, 2005. That should give people enough time to get the book. I'll blog out every day of the course (including weekends) from then until Saturday, April 9th Saturday, April 16th. And for any geeks following along in San Diego or visiting during the weekend of the 9th, I'll also be hosting an end party to celebrate, an informal get together at a bar or coffee shop nearby - more links and details later on.

Format

You don't have to have a blog or even a server to participate. I'll make a post every morning summarizing the chapter's objectives and then I'll update the same post later in the day with a description of how it went for me, with the comments area left open the entire time. Just stay tuned to the main page of my weblog or subscribe to the RSS/Atom feed and you're cool.

Participation

The posts will have commenting turned on and anyone can leave their own notes about how it's going for them: enthusiasm for the new language, questions about stumbling blocks, links to more resources - it's all fair game. You don't need a blog to join along, although those that do should feel free to give shoutouts to their sites, preferably in the comments rather than emailing me. Actually, give yourself a mention even if you're not blogging it out!

You also don't have to have any specific hardware or server setup - Ruby runs fine on Windows, Linux or OS X and unless I'm mistaken, all the exercises will be done on your local computer.

Motivation & Background

I'm a professional web designer who just recently went out on his own after many years of working away full-time at UC San Diego. My skill set is primarily client-side and I'd say I'm firmly in the intermediate programming camp, with advanced skills in non-traditional languages "real" programmers turn their noses up at (Actionscript, XHTML/CSS, XSLT) and semi-newbie status with server-side scripting (like my case study section or simple email forms for clients' contact pages) that they tolerate only a bit more. And that's fine - I don't and am not looking to make desktop software or giant backend apps, the kind of stuff that runs your accounting department and backs up your servers. I want to make great websites, from beginning to end.

Inspiration

  • Kottke's book club experiment (initial post and review), with a post announcing the McSweeney's book he wanted to read and an end post announcing that he was done. It was yet another neat application of the blogging medium to a new collaborative project - not only was there a sense of going through something with others, but I picked up a good read I probably never would have otherwise and got back into comics for the first time in a long time.
  • Tantek's writeup (overview and much more useful commentary) of Tim Berners Lee's "Weaving The Web" - I got a lot more out of the book than if I had read it without his insight.
  • Mark Pilgrim's "Dive Into Accessibility" was a huge influence on me when I was first learning the ropes of standards-based web development and I found the 30 day format very digestible.

Future

I'm curious to see what this'll be like and might consider doing it again. For example, the next logical step after learning Ruby is using the Ruby On Rails framework/library/whatever. Due to a clear O'Reilly tutorial, I've already installed it, played with it and seen the light - it was fun, something I've also heard a lot about learning Ruby in general. There's a "Four Days on Rails" PDF out that looks cool and even more promising, Dave Thomas (no, not the Wendy's guy, the one that wrote the fabulous, inspirational, highly influential and immensely readable "The Pragmatic Programmer: From Journeyman to Master" tomb) has already written a book on Ruby (already in second edition) and is in the final stages of writing a book on Rails titled "Agile Web Development with Rails", due out in July. Branching out to other areas is definitely possible too, whether to even more foreign territories as a newbie or topics where I can give more of an expert viewpoint, like CSS or Turkish soccer :)

Summary

So that's the project and I'm excited to get it underway! Feel free to leave a comment here to say hello. I've got a few friends lined up already and hopefully there'll be a good-sized group of people doing this at the same time, but the beauty of the time-stamped blogosphere is that at the end of this, there'll be a resource standing there for anyone that comes across it later and decides to run the gauntlet too.

elsewhere on the web: , , ,

Welcome to the party! Invite all your friends!
I've seen all the Dave Thomas cheering. It really might be a better book. I think I'd be game to try either way.
I'd agree with Curt. Definitely check out "Programming Ruby (2nd Ed.) by Dave Thomas. The first version of the book is available free on the Internet:

http://www.rubycentral.com/book/

And the newer version (already mentioned by Curt above) is available in both printed and PDF format (you can get both for a discount). The book is excellent and is a good way to learn Ruby.
If you are not familiar with programming or are finding the pickaxe a bit of a jump, I wrote a tutorial, sort of a quick intro to Ruby:

http://pine.fm/LearnToProgram/

All of the code examples in the tutorial are live, so you know it's accurate. (And if you hit 'reload', you'll see the random number examples change. :)

Just thought I should mention it.

After that, 2nd edition Pickaxe, of course.

Chris
Al, I'm going to join you in learning Ruby in 21 days, and blogging along the way. I started by brushing up on OO programming with Object-Oriented Thinking.
Welcome aboard to everyone joining along and thanks for all the book and blog references - keep them coming! And yes, yes, I hear ya about Pickaxe, it's a great reference book and it'll definitely go in my library - go ahead and check out the post after this one for more on why I picked the Sams book for this tutorial series, though.
When will day two start. This is going to be a long three weeks.
Hey Chris Pine,
I ran across your tutorial about a week ago. I am a newbie to programming but have always wanted to learn. It is a great tutorial and I am almost finished with it.
only problem is this is going to be an addicting hobby. hahaI have learned alot already. Thanks alot for giving of what you know.
I want to learn program web applications would you recommend php or ruby?

by Kwazi.
If you're used to write in languages like Delphi, or new at programming, I strongly recommend the tutorial written på Chris. It will get you started a lot quicker than the other two.
Hey AL
Hello from Arkansas. I'll make sure to get my book tomorrow.
Cool, welcome Arkansas!

And for the others in hibernation and lurking, this post series isn't dead, it's soon to be revived - I've moved from San Diego to San Francisco and still waiting to settle in with a place. Any tips while I'm apt hunting?
I am learning Ruby on my own, thanks to all the wonderful online resources on Ruby - tutorials, books, blogs. I have published my study notes in the hope that somebody would find the same useful while learning this wonderful language - Ruby.
Not all will be able to vibe with Dave Thomas's style of writing and structure, esp for newbs. For one, in the book "Programming Ruby", he'll slam you against your head with advanced techniques, so much it will probably make your head dizzy and confused.

Not until you've reached the middle of the book, then he'll go over all the concepts again, but by that time, you're worn out, tired, and confused at his writing.

If you're a newb, Sams 21 days for Ruby is a great book. I def recommend Chris Pine's Learning to Program also.
Cool, thanks for the vote, I think it's a good book for learning as well. My impression of Programming Ruby was that it was more of a reference book good for using in spurts as needed on actual projects, not necessarily for picking up the language from scratch.

To be perfectly honest, a big reason I've slacked on finishing the tutorial is that I overestimated how much Ruby you need to know to use Rails, by a wide margin. The single chapter specific to web development towards the end felt pretty slim and conversely, the pickaxe book makes Rails such a breeze to read and apply. Still, I feel the need to get back to this tutorial to brush up on fundamentals and to tie up loose ends :)

Post a Comment

-->