How Rails Helped Me Level Up

Pat Eyler is running a Rails-related blogging challenge, in cahoots with Apress. The topic How has Ruby on Rails made you a better programmer? was proposed by Jarkko Laine.

How could I resist such a fertile topic? (Psst! The answer is: I can’t!)

Among other factoids, Pat and Jarkko are both Slash7 readers and sometimes commenters—hi, guys!

So Much Better, Baby

Really, Rails has made me better in too many ways to list. But if I had to pick a top 4, it’d have to be…

  1. Made me happier in my work
  2. Introduced me to many ridiculously smart, incredibly nice people
  3. Got me hooked on learning advanced programming concepts
  4. Made me rich * (not yet)

#1: Less Drudgery, More Interesting Work == More Joy

When I was doing PHP for a living (which I was, in the time Before Rails (B.R.)), I spent a colossal amount of time reinventing the wheel. The SQL, the form validation, the error handling, repopulating forms, blah blah blah… there were OSS libraries out there, certainly, but they were peddlers of a false economy. You could get to 80% of the use case quite quickly, but the last 20% specific to your project would be a murderous hackfest.

Rails lets you get to the 80% of the use case quite quickly… and the pain for the last 20% rarely comes up. For the most part, Rails makes your life easier most of the time and then doesn’t make the rest of the time harder.

This means that instead of spending hours working on that crap, I get to focus on the meat of what makes each application different, and design, usability, and the other things that are actually worth starting fresh each time. Instead of figuring out how to re-invent the wheel this time, I get to spend extra time on doing my job as well as possible. I’m also less tempted by the false god of reusability, and so each thing I get to build is more “itself” than it might be if I had less time and less flexibility.

#2: Let’s Play Spot the Smart, Passionate Person. There! There! No, There! There too! Oh gosh, they’re EVERYWHERE!

The Ruby and Rails communities are composed of an amazing mixture of academics and amateurs, hobbyists and scientists, lifers and daytrippers. We’ve also got a culture of sharing—with MIT licenses—and one of helping others find their joy (new-agey but true).

I can’t tell you how many programming concepts I’ve learned simply by watching conversations go by… and I’ve gotten a lot of help along the way, as well. And been chided from time to time for being lax. And been told of new things I should know, or places where I’m going wrong. All these conversations and experiences have, for me, resulted in better practices, better knowledge, and more reverence for truly good code.

I’ve also given more to others than I ever had before, through writing, cheat sheets, and volunteering my time. It’s really true what they say about teaching being the best way to learn—not to mention a really gnarly positive reinforcement cycle.

And, lastly but not leastly, I feel like I’m bettered by being able to watch what the true innovators are doing. Their “toys” and “intellectual exercises” are changing the Ruby and Rails landscape today, and will probably be changing the rest of the world in 3-5 years. I feel so current.

#3: MVC. Design patterns. DDD. ORM. TDD. REST. DSL. Extractions. Pure OOP.

The list above constitutes a partial list of “stuff I’ve learned because of Rails.” I may have heard of it before, I may have read into it a little bit, I may even have had a passing acquaintance with the concepts.

But I never got excited about it or really got into it until Ruby and Rails, or Ruby/Rails people, brought me to the base of the mountain and said “Climb that.”

Rails and Ruby revived my intellectual curiosity about code, and Ruby changed the way I think about programming in a profound way. It’s led me to be a smarter, more capable, more effective human being.

And for that, I’m truly thankful.

#4: Made me rich!

OK, not yet. But being more smarter, more capable, and more effective can’t hurt the pursuit of material independence… can it?

OK, Your Turn!

I’m not in it for the prize, I think this kind of discussion helps everyone. “They” say that talking and writing about what you are thankful for makes you a happier person, and putting it out there may help others find what they’re looking for as well. It’s a win/win proposition.

So, go write up how Rails has made you a better programmer, post it to your blog, and let Pat know where to find it.

No Comments

  1. Jarkko says:

    waves his hand

  2. Gary Bennion says:

    Hi Amy, Good article, I am a PHP programmer at the moment but I am considering learning Rails. From what you have said and what other programmers I know have said it sounds great. Where would you suggest that a PHP programmer (3 years experience) should start when migrating to Rails?

    G

  3. Mark says:

    I think the "made you a better programmer" part is key.

    I used to slug along all day with Enterprise Java Messes. I thought I was a "good coder," and consequently thought that making half a dozen classes, abstract classes and interfaces to find a User by their name was "good coding."

    Then, of course, you see: User.find_by_name(‘Mark’)

    Rails forces you to write beautiful code. Rails forces you to be a better programming. You want you code to look clean, you want to have your lines be sentences, and your methods be paragraphs.

    I find that even when I move back to less joyous languages and platforms, I’m making cleaner, better, smarter code.

    Ruby is a beautiful language where you can write some terrible code. Rails tries to reel you back in.

  4. Cliff Brake says:

    I agree with Mark’s comment. I recently created a web application on an embedded system (http://bec-systems.com/web/content/view/46/9/). Although I could not use Rails, I used a lot of the concepts I learned in Rails and it was a lot more fun!

    Cliff

  5. Peter says:

    "But being more smarter…"

    I think there is there something ironic about that statement :P

  6. Amy says:

    Oh, shush, Peter. :) I was tired!

  7. Ismael says:

    To realy leverage Rails in your day to day work, I would really recommend learning about Design Patterns and OOP before delving into the framework. If you already use PHP, you can implement your own patterns with it’s limited but good enough OOP capabilities. Or, you can take a look at Ruby, the language, without Rails.

  8. Carsten says:

    I feel very much the same way about RoR. I have worked with a few different development platforms over the years; ASP, ColdFusion (which I really never liked, the whole programming with meta-tags deal just never really flew with me.) For the last 3 years or so, up until about November, I was doing almost purely PHP but I always found the PHP community rather arrogant and the language itself is poorly implemented. Once you start to become aware of design patterns, better software architecture practaces and other, more powerful, and better designed languages like Ruby and Python, PHP is almost painful to go back to. I dabbled with Django for a while, but you just can’t beat the RoR community, so many great people with a common focus. When you work with this stuff on a day-in-day-out basis a good framework backed by a good community makes life infinitely more enjoyable. Keep up the good work Amy! I enjoy your down-to-earth style and quality articles.

Leave a Reply

Hey, why not get a shiny
Freckle Time Tracking
account?