Rubylutions for 2012

Glenn Goodrich
Glenn Goodrich

Sometimes the idea for an article strikes me out-of-the-blue, like a lightning bolt or an airborne toxin. The quality of these sudden onset ideas varies greatly, and it usually directly proportional with the number of beers I’ve had pre-idea strike. My most recent attack hit me in bed as I was drifting off. It said:

“Write a post about Ruby resolutions for the new year. Call it ‘Rubylutions’!”

I actually sat up in bed, much like I imagine Newton did with his revelation, and thought that was brilliant. No one will think to write a post of what to do in Ruby in 2012! Brilliant! Then, I jumped out of bed and dusted off that area of the shelf I have been saving for my eventual Pulitzer.

The next day, during my regular morning Twitter around the interweb, I saw:

Wait, what? Someone else has stolen my brilliant idea? How did they know? Is the specter that grants me these ideas out of the blue also a two-timer?? Or, maybe the idea wasn’t all that revolutionary, after all. Curse you, Nettuts, and your awesome content. I’d love to punish you by not reading your site, but that that actually punishes me more.

Regardless, I feel an article focused on things you, the Ruby dev, can do in the new year is still a good one. Bear in mind, these “rubylutions” are not just how can you make YOU better, but how you can make others or Ruby better too.

Give Back

This is an obvious one. The Ruby community is, in this writer’s humble opinion, the most awesomely, super-fantastic community of nerds currently in existence. I’ve been a part of many nerdly communities (and, no, I don’t keep getting kicked out…) in my career, and I truly believe that the people in Rubyland are the “best.” In this case, “best” means the highest combination of smart, approachable, innovative, and generous qualities that you can find among programmers.

The number one reason the Ruby community rocks is because the people in it do stuff for the community. Writing open source gems or blog posts, going to meetups, giving talks at conferences, and releasing cheap or free programming books. All of these things are ways to give back to Ruby and make it better. Do that, this year, even if you have done that before.

Specifically, you could do any of the following:

  • Write a blog post on something you know or want to learn. It’s not important if there are other articles on the subject. Do it. Oh, and if you want to write it for us, just drop me a line…
  • Contribute to a great ruby open source project. I’ll even give you a couple: RefineryCMS is a great Rails-based CMS that always needs help and I am pretty sure the Bundler folks are looking for people to help fix up their documentation for some of the new stuff coming in Bundler. There are a million more where those came from.

Learn Rails Differently

Whether we like it or not (I do), Rails is a big part of Ruby. It is the gateway into this language for many, and it is the foundation of much of the work that keeps us eating. Many Rubyists (new and old) knock Rails or ActiveRecord for various reasons. Some are valid, some maybe not so much. I think it benefits Ruby to improve Rails, and Rails will improve the most if we look at it from different angles. One such angle, that I’ve mentioned before, is Avdi Grimm’s Objects on Rails where Mr. Grimm gives us a different way to do Rails. The book has a lot of buzz, and my guess is it will end up improving Rails in some way.

Rails 4 is on its way, and I’ve heard rumblings of a totally modularized ActiveRecord::Base, amoung other things. Maybe if you learn how to do something in Rails differently, you can add to the list of what’s coming in Rails 4u

Look Outside Ruby

While Rubysource is, obviously, dominated by the Ruby language, we know the value of looking outside our own world. There are certainly some hot technologies out there, and you should know about them. The easiest example is Node.js. Node is certainly the new “It Girl” for 2011 and, likely, well into 2012. You should learn enough about Node to know when to use it to fill a gap in your Ruby application. How about Hadoop/Big Data? How well do you know HTML5? The greatest thing about being a nerd is you are always learning. Look outside Ruby and your classroom becomes infinite.

The Ruby Rogues are about to do a show on the Land of Lisp book, so there is an easy and engaging way to fulfill this Rubylution.

Study Your Craft

In the last few months, I’ve met and programmed with quite a few coders. In many cases, I was the “junior,” which is almost how I prefer a new pairing. The junior in the pair gets to learn the most. All the pressure is on the senior programmer and, hopefully, that senior is a “craftsman.” A software craftsman knows how to structure code. While working software is important, it’s not the only important aspect to the job. Maintainable, well-designed and structured code is arguably as important as any part of our job.

We should all become software craftsmen. Books like (Uncle) Bob Martin’s Clean Code and the old standby The Pragmatic Programmer teach the right way to create. There is even a manifesto for software craftsmenship now, showing you how serious a discipline programming is becoming. The list of books on that site could easily fill your 2012 reading list.

Happy Ruby Year

I hope something in our final article of 2011 inspires you to greatness in 2012. The Ruby community is ever-changing and growing, making it super-sweet to be a Rubyist. If you have any suggestions for Ruby Resolutions, put them in the comments below. It can be your first “give back” of the year.

Happy New Year!