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.

Professional
One thing that immediately strikes you about RoRT is that Hartl has you using git, GitHub, Heroku, branching and testing right away. It feels very professional, like I was doing things the way a “real programmer” would. We used a fair number of gems, but it seemed like we used the most common/established ones. We also did a lot of things by hand, which was educational and felt very hands on.

Typos = Death
At least 50% of the total time I spent doing RoRT was dealing with errors, most of them in writing test code. I retyped all the code by hand and would misspell a function name or miss a period, comma, bracket or colon, and my test would fail. It usually wasn’t clear what went wrong, and so I’d consult Google and review the last few pieces of code I wrote, but at least I always knew it was me, and never RoRT. It was tough, but I slowly got better at checking my typing the first time around, because I knew it’d save me a lot of time in the long run.

Don’t interrupt me!
Unlike Treehouse, RoRT’s chapters got considerably long. Chapter 10 took me a few weeks to finish (though this was due in part because I got rather busy) and it required a huge amount of concentration to work through the exercises. I tend to leave Gmail open and getting my concentration broken by a gChat meant a huge loss in productivity. My best work was when I set 30 minute timers for myself to power through, then switching to social media. I bet crappy managers would probably interrupt programmers way less if they experienced this for themselves.

Reloading the context
Because RoRT’s chapters are so long, I would leave my browser tab, text editor and terminal window open between sessions (often a day or more apart). However, it often took up to 10 minutes just to figure out where I was in the chapter and what I was doing. Reloading all the context was tough. I really liked Treehouse’s module’s where they would remind me: “In our last section we did X, now we’re going to add Y.” [1]

Test-Driven Development is a bitch is tedious
When I was in middle school and high school, my biggest challenge was having the self-discipline to double check my homework answers, especially in math. It was so boring and annoying, even though I’d often find mistakes in my calculations. TDD is like creating a framework to make sure you get the right answer the first time, but it’s not as fun as just coding the functionality you want to build. And yet, like double checking your answers, TDD is necessary if you really care about getting things 100% right (or having a bug-free app).

Terminal is cool
One of the great things about RoRT is that it teaches you cool tricks in Terminal. I set up a sublime text shortcut, made “b” equal to “branch”, learned how to navigate file structures, create files and other neat shortcuts that made me feel like a real pro when it came using Terminal, a program I have come to associate with programming and technical expertise.

Final Thoughts
If programming is like driving a car, then Treehouse is your buddy spending a few hours with you in a parking lot while driving 2010 Honda Civic in automatic. And RoRT is like a 3 day intensive training course on driving a formula one race car taught by exacting German instructors.

RoRT is a lot of work but if you’re careful and patient, you’ll learn a lot. I may revisit it in the future but for now, I’m off to start working on my first app on my own.

What’s your experience with learning Rails? Do you have anything to add to my thoughts on RoRT? Would love to hear it in the comments.

FOOTNOTES

[1] This is possibly an unfair comparison because Treehouse is a paid product but RoRT is free. There is a screencast version you can pay $125 for which might provide more of that context, but I was just using the online version. On the other hand, most people who recommend RoRT are recommending the free online version, not the screencasts.

Please support this site by sharing:

Jason Shen

Jason is a tech entrepreneur and advocate for Asian American men. He's written extensively and spoken all over the world about how individuals and organizations develop their competitive advantage. Follow him at @jasonshen.

Latest posts by Jason Shen (see all)

Related Posts:

16 Comments

·

Leave a Reply

  1. I enjoyed reading your experience, Jason. I am a php dev from India, these have RoR on my to do list for summer vacation.

  2. Very good review. It´s cool that you are comparing the tutorial with Treehouse. As you, i´m a user o Lynda.com and was thinking about learning Rails at there. But now i think i´m going to start by the tutorial. Thanks a lot !

    • @MarcoFloriano I would still watch the Lynda tutorial if I were you. It does a much better job of explaining the “why” and I found it helped me with Michael’s tutorial. Another one to look at is the Codeschool(.com) one. The more the better – RoR is extremely difficult to learn – I found it much, much more difficult than C++.

  3. Automateandvalidate a leading provider of microcontroller, mixed-signal, analog and Flash-IP solutions, today announced the expansion of its Embedded Code Source application store and embedded user community for PIC® MCU software/firmware code examples, tools and utilities, which often include the source code.

  4. Hey Jason, thanks for writing this – I’ve been taking baby steps with Treehouse at first (forgetting most of it after a 4 month break), picking it up again with Daniel Kehoe’s “Learn Rails” ebook, finishing One Month Rails and now back to Treehouse for their Rails 4 Todo List app.  Will head over to Hartl’s Rails tutorial after this.

    One thing I’ve been doing is using Anki cards just to keep my brain and memory primed and keep all that knowledge from lapsing.  It’s the ONE thing that I MUST do every day to maintain my progress/momentum.

  5. Should Mr. Hartl’s work be treated as a capstone then?  I use Treehouse and Lynda now.

  6. Was glad to see that you said it takes a long time to complete these chapters. Some of them are really long and I’m having trouble getting through them quickly. Looks like it will take minimum a month to complete the tutorial even sinking a few hours in a day.

  7. Thanks for review. It was just like my own thoughts after finishing RoRT. )
    But for now I have one question (need?) – what to do next? What to do after all this teehouses, tutorials, guides, etc.?
    I’ve done three apps by myself (one full-stack, deployed and working) and now I’m understanding that I more than Junior but less than a RoR-developer. What is your experience?
    Thank you.

  8. Thanks for the review! I’m powering through the tutorial at the moment and although it seems tough at moments it is so well organized and referenced that you easily go back and find the answers right there. I’ve been combining it with this one I found on reddit http://ureddit.com/class/40250/web-programming-with-ruby-on-rails and with codecademy. Kinda like the combination of book, interactive and video as it suits the different moods you might be on at some point of the day. And also they explain stuff in different order so you reinforce with one what you already learned with the other. Hopefully will conquer all three!

  9. I’m working through RoRT right now and it is so refreshing after struggling through the ActiveRecord tutorials on Treehouse. I love that everything works perfectly, just as it should. I’m finally starting to understand how everything works thanks to all the repetition in the tutorial. Good review, thanks.

  10. I have been learning my development skills, for the most-part, through CodeSchool – and overall it’s been great. I am now trying Hartl’s tutorial because I like to approach things from different angles – creates more “hooks” to really own the material. But I’m having an issue, after I run “rails _4.2.2_ new hello_app” like Hartl tells us to do, everything looks right… BUT… in the listings on folders on the left, I only see one main folder, with a readme file in it. All the other folders that should be there are not. Not sure what’s going on – I am using the Cloud version Hartl suggested. Any idea why I’m not seeing those folders?

  11. This review is along the lines of my own experience. I especially resonate with the ‘Don’t Interrupt me!’ section, this was the most important aspect of my work through of the online-book. It was almost a precise correlation between the days that I had more distractions with the number of failed test, errors, etc. The longer more dense chapters at the end require good concentration and I benefited by blocking everything out, including my partner (although she’s usually helpful, but not in this case), and just systematically going word for word.

  12. Hi Jason,
    Great article with insight to ROR.  I am learning ruby programming language and later on learn rails, and front end.  How is the demand for ruby/ROR web developers in 2016 and beyond.  Any feedback would be appreciated.  Cheers!!

    Regards,
    Khalid Naseem

  13. Thanks for the information, I just purchased the screencast version and i’m pretty excited about starting. Your article has enhanced my excitement.

Comments are closed.