My Experience With The Ruby on Rails Tutorial

My Experience with The Ruby on Rails Tutorial

Tell anyone you’re learning Ruby on Rails and you’ll soon get a recommendation for Ruby on Rails Tutorial by Michael Hartl. After spending 6 weeks working with Treehouse‘s programing content and building a basic web app, I decided to jump into Hartl’s tutorial.

Michael is a former Y Combinator alumni and his tutorial (from now on RoRT) takes you through building a Twitter clone in Rails. It took me around two months to finish 10 of the 11 chapters, and I thought I’d share some thoughts and lessons learned.

Even simple programs require a ton of work
Hartl has us build a Twitter clone in RoRT, without using any gems for user authentication. This ends up being a surprisingly large amount of programming. I was intimidated by all the steps involved in adding validation, building different models (user, micropost and session), creating partials, passing information between different classses and handling errors.

Super thorough and complete
I’ve never met Hartl but he seems like he’d have his sh*t together in every way. The tutorial almost like an elegantly written program in of itself: it’s complete, bug-free, modular and self-referencing. Hartl specifies the exact version of every gem, database and Rails/Ruby on Rails to use. The book had absolutely zero errors from what I could tell – every time something messed up or seemed wrong, it ultimately was an issue on my end. That gave me tremendous faith in the course.
Continue reading…

Learning to Code: Lessons From Building a Rails App with Treehouse

Learning to Code: Lessons from Building a Rails App with Treehouse

Last night I pushed my first Rails app to production – you can find it at (oops! It looks like all the traffic has crashed the app. Hiding the URL for now) Here’s what it looks like.

It’s like a super stripped down version of Twitter – you can create an account and post statuses. It uses Twitter Bootstrap for some basic styling and Gravatars for profile pics. One obvious area for improvement (among many) is that right now, you can post a status as any user (not just yourself) and edit anyone’s status.

Despite this issue, I’m still very proud of it. Deploying the app to Heroku was a very satisfying moment and feels like a real milestone in my quest to learn how to code. I have a long way to go, but I thought I’d stop and share some lessons I’ve learned so far as a business guy venturing into web development.

Note: My friend Bevan is starting a Ruby on Rails Newbies Meetup in SF if you’re interesting in connecting in meatspace.

Learning to Code: Lessons From Building a Rails App with Treehouse

1) Have a learning plan

I signed up for Treehouse (referral link) in late December and have been going through their modules for the past 6 weeks . You can see my progress here. Treehouse was recommended to me by a non-technical friend (thanks Tony!) who found it very accessible and I completely agree.

Having a program or system, especially an interactive one that’s designed for newbies, is incredibly comforting. I know I can work my way through the modules and learn the basics without missing something important or getting too stuck. Obviously there are many options beyond Treehouse. CodeSchool and Lynda are paid subscription based models, and the Ruby on Rails Tutorial are other learning plans that would be worth checking out.

2) Setup is a big hurdle and something to be proud of

When I tried to learn Rails a few years ago, I struggled with correctly configuring Rails and Ruby. It was frustrating and embarrassing to be stymied by such a basic issue that I didn’t feel comfortable asking for help. That was a mistake. I am comforted by Michale Hartle (author of Ruby on Rails Tutorial) when he talks about getting up and running:

There is quite a bit of overhead here, especially if you don’t have extensive programming experience, so don’t get discouraged if it takes a while to get started. It’s not just you; every developer goes through it (often more than once), but rest assured that the effort will be richly rewarded.

So don’t be discouraged by the first hurdle of just getting setup. When you finally get it done, celebrate it – it’s a worthy accomplishment for a newbie. Continue reading…

When Software is Eating the World, You Better Start Making Dishes

Photo Credit: Kuba Bożanowski via Compfight cc

One of my goals for 2013 is to learn enough about programming to build and release publicly a simple web application that does something interesting.

I’ve been working toward this goal for about a month and wanted to share some thoughts on it so far. In this post, I’ll share my history with programming and why I’ve dedicated myself toward this goal. In a later post, I’ll talk more about how it’s progressing.

My history with programming

In high school and college, I took a few basic computer science courses. I learned Java and Python, played with if/then statements and while loops, and built little applications that did things like simulate games of Craps.

While it was interesting, I struggled with the assignments and learned more towards basic sciences, like biology, where simply mastering a lot of content was enough to get good grades. I didn’t pursue advanced studies in CS.

In September 2010, I made my first attempt at learning Ruby on Rails. Back then I was still working at isocket as a business guy and not a founder.  I made a number of mistakes, including not having a learning plan and trying to start on the newly updated versions of Ruby and Rails at the time (1.9.2 and 3.0.0, respectively). Continue reading…