Railsmagazine60x60 On Your Rails (and Ruby) Education

by Bob Martens

Issue: Winter Jam

published in December 2009


Bob Martens is a “noobie” Ruby and Rails developer. He is currently finishing up his education degree at Martin Luther College in New Ulm, MN, where he lives with his wife and soon-to-be-born son, Jamis.

You can read more about him at his personal blog, professional site (a work in progress), or on Twitter (@boblmartens).

Bob is a Rails enthusiast and Rails Magazine editor.

"Uh, I'm in the channel to help out noobs, folks. I didn't forget. But seriously, people who don't know how to use google fail." - @qrush via Twitter [1]

Noobs of the Ruby and Rails community unite! Our bastion of ignorance and laziness is being sieged by those who have already taken the time to educate themselves! We must not stand for this.

Well, now that I've offended two different groups of people within the Ruby and Rails community, I guess it must be time to get into the meat of this article. Finishing up my education degree, I've been bombarded by the latest in educational trends and techniques. Learning how to program, and specifically how to program using Ruby and Rails, has brought me to the forefront of how education works within a greater community outside of the rigors of academia.

What does this have to do with either the beginner or Nick Quaranto [2] (our non-noob for this exercise)? Everything.

What Nick said is indicative of the whole "give a man a fish... teach a man how to fish" quandary any person trying to teach will come in contact with. The options are to answer the immediate question and send the person away or to send the person away with the instructions to search out an answer alone. The first usually breeds thankfulness and relief and the other resentment and shouts of "I just want an answer!"

The same might be true of the poor man as well. A guy comes up to you on a street and asks you for a fish and what do you do? Well, I guess most of it would depend on the smell of the man, and the surroundings. However, just stick with me on this one, you would probably want to look at the man and then determine what to do. If the man is in relatively good health, then you will probably want to try and teach him how to fish. However, if the man looks to be near his death and the only thing to cure him (besides more cowbell) is that lovely, shimmering small-mouth bass you just pulled out of the lake... then maybe you'll hand it over.

That's the approach needed to when educating us noobs. If we're learning and not against a deadline or haven't been bashing our heads against walls for days on end, then send them out on their own and let them use Google. You've taught us how to fish, you just need to let us have practice. When the opposite is true, then maybe it is time to start thinking about giving us the answer and then encouraging us to learn more by, once again, "practicing fishing."

The non-noobs know this. They were there at one point, learning everything they could as fast and as well as they could. Us noobs, we forget this and then that's when we tend to cause problems by driving away good, helpful community members with our unabashed "noobiness." We have to keep in mind that when someone says "Google it," they're really trying to help two people out: us and them. We are able to "practice fishing" and they are freed up to go and help those poor people who might actually need their help.

After our "trial by fire" of being new to either Ruby on Rails, it is then our turn to come back into the community, with new knowledge and endless patience, and help out the newest generation of noobs. However, we have to both be patient and firm, just like our mentors have been. The way we learn is by learning to stand on our own two feet. Being given crutches the entire time benefits no one.

Learning anything is a struggle, no matter if it might be cooking or programming, husbandry or gardening, car washing or parenting, you are always going to be learning something new, coming up against issues you couldn't even imagine and wanting to just have things spelled out for you. This is where education today really fails. Learning is tough and to think that it is going to be easy is setting yourself up for failure. Take the time to really give things a chance, do as much of the work as possible yourself, and enjoy it.

There is nothing quite like finding an answer to a nagging problem yourself, so get out there and try to do it yourself!

Definitions and Disclaimer
For the purpose of this article, two definitions are needed:

  1. A "noob" or "noobie" is someone who has little experience with something. Traditionally it was used as a badge of shame for someone stepping into a new multi-player game, but it more generally used for someone who is new to anything.

  2. A "non-noob" is used only in this article to represent someone who has gained enough experience with either Ruby or Rails to be considered competent with both the language and/or the framework.