2013 Rubylutions

Glenn Goodrich
Ruby Editor

Here at Rubysource we like to have somewhat timely articles, so there is no way we’re going to let the New Year come and go without an article on Ruby Resolutions (or, if you will (I won’t) Rubylutions) I realize it’s a couple of weeks late, so resolution #1 might be “Make your timely articles more timely.”

I did a similar article last year, but this year is going to be different. I decided to poll our corral of writers here at Rubysource. I asked them all for their Ruby Resolutions and, as you might imagine, the response was myriad.

As there were quite a few responses, I’ve taken a shot at categorizing the resoltions in the following categories:

  • Contibutions: This category is all about doing something within the Ruby community. Examples are writing, teaching, or attending a conference/meetup.
  • Learning: The greatest thing about our craft is that the opportunities to learn and endless.
  • Rebuild/Improve: This category deals with the things we want to improve in our Ruby lives.
  • The Rest of It: Your life outside Nerdom is important. Nurture it.

Right, off we go.

Contributions

It’s quite easy to contribute back to the Ruby community. If you have resolved to do so, here are some suggestions.

Write a Gem

Thiago Jackiw encourages you to write a new gem this year:

According to RubyGems, there are more than 49,000 gems available, and a total of more than one billion gems have been downloaded so far. That is quite impressive!
As a resolution for the new year, or better, Rubylution to the new year, why not give back to the community by writing a gem? Many times–at least for me–a gem is born out of frustration with existing solutions, or as new ideas when no solutions are available. Whichever your motivation is, let’s get a new gem rolling!

Gems are the spine of our community, and writing a gem will get you involved and force you to learn. If you are not familiar with creating and publishing a gem, Thiago will be posting an article in the coming weeks that explains the entire process.

Who knows, you might have the next acts_as_state_machine floating around in your head.

Publish a Blog

Dave Kennedy resolves to write more, and so can you. Whether you choose to start your own blog or jump in with a group of writers (coughs we’re ALWAYS looking for new writers at Rubysource), writing a blog makes you really learn a subject. It also enhances your communication ability and starts a conversation. Do it.

Speak at a Local Ruby Meetup

There are local Ruby groups almost everywhere. Both Dave Kennedy and Darren Jones encourage you to find one and present a topic. Are you terrfied of standing in front of a crowd? Even more of a reason to do it. If you don’t have a local group, then record a talk about put in on Vimeo. Which leads me to…

Make a Screencast

Do you watch screencasts? I do. They rock, and I think the people that take the time to make them rock. Darren Jones resolves to make a few this year. I’ve made one or two myself, and I can tell you that they are MUCH more difficult than you think. However, the effort is worth it and it’s a great skill to have.

Teach

One of my resolutions is to try and teach some of my nerdy knowledge to my kids and their friends. As such, I am taking an Arduino into my daughter’s class and we are going to build stuff. I hope to impart something about electicity, knowledge, and light a spark. Darren Jones also wants to teach kids Sinatra, which I think is a great idea. Let’s start the next generation of nerds early!

Write a Book

Andy Hawthorne wants to write a book on Rails this year:

A high aim I know. But I would like to write a book aimed at non-programmers like me, who have some experience with web development and would like to get into Rails.

Writing a book is a mammoth undertaking, but it makes you a recognized expert on the subject. It also gives the community learning resource, and we can’t have too many of those.

Pair Program

Jonathan Jackson and Dave Kennedy both think we should pair program more. If you have never paired, you absolutely need this skill. You will see another’s workflow, you will learn a different way to approach Ruby, and you will have fun. Pairing is probably the single biggest thing you can do to level up. Jonathan says:

Pairing with someone who I’ve never worked with before got me thinking about some of the workflow things that have solidified for me over the years. I’ve been working on a few side projects and I’m going to start looking around for more opportunities.

Here, here!

Fix One Issue on an Open Source Project

I think one of my resolutions every year has been to get more into open source. This year, Rashmi Yadav, resolves to fix just one issue on an open source project. I like they way she phrases that:

When you fix any issue or bug. it makes you feel happy and you will get confidence that you are part of this community. I will contribute to open source community more.

Ahmd Refat is going to dig deeper into the Rails code base to “learn more about how it works under the hood, and to contribute at least if possible in documentation.” Both of these suggestions have simple actions that make contributing sound easy (which it is!) Start small, and all of the sudden you are a core contributor.

Learning

Then there are those times when you need to learn something for yourself.
Thiago Jackiw encourages you to learn something new this year:

Knowledge is power, and the things we learn stays with us until the end. Let’s learn something new in 2013, be it a new programming language, a new spoken language, a new hobby, or whatever catches your interest. The important thing is to “stay hungry” – never be satisfied and always push yourself.
What are you going to focus on learning this year? Here’s what our writers are tackling:

Learn a New Language

This is almost always a good idea. Dave Kennedy is going to focus on learning Go, while Darren Jones and myself have started looking at Rust. My motivation is, honestly, that I just stumbled across Steve Klabnik’s great site and was sucked in. I also want to focus on functional programming this year, and I’ve started by following Uncle Bob’s FP Basics series on the 8th Light blog.

If you have interest in learning a new programming language, Thiago will be posting a couple of articles that explores two different languages from a Rubyist perspective: Go and Rust.

Watch Screencasts

Darren Jones (he has a LOT of resolutions) is going to watch RubyTapas by the incomparable Avid Grimm. There is also Destroy All Software, which I hope to watch. One of the new screencasts on the block is MetaCasts.tv and it’s getting great reviews.

The above are all paid series, but there are plenty of free screencasts out there. Go to Confreaks or, of course, RailsCasts. Trust me, there is more recorded stuff about Ruby than you could watch in a year.

Read a Book. Or 4.

Rashmi Yadav is going to read four Ruby books this year:

  1. Practical Object-Oriented Design
  2. MetaProgramming
  3. Ruby Science by thoughtbot
  4. Ruby Under a Microscope by Pat Shaughnessy

Of course, we’d encourage you to look at our Jump Start Series, including the impending release of Jump Start Sinatra by our own Darren Jones.

Go Outside Ruby

Sure, Ruby is great and there’s ton to learn, but there are things beyond the borders of this merry land. Here’s where some of our travellers will wonder this year.

Darren Jones is going to improve his “front-end” skills:

Learn Responsive design and build some sort of bootstrap/framework using Sass, learn how to use JQuery mobile and get up to speed using Backbone

While this could have been under the “Learn a New Language” heading, javascript is probably not a new language for most of us. The idea here is to dive deep and become an expert in a language you already know.

Stay Inside Ruby

Andy Hawthorne brought a very interesting perspective to the question, I thought: Learn Ruby.

This one sounds a bit mad because if we write for Ruby Source you’d imagine that we already know Ruby! The truth is, I (like a lot of people I suspect) came to Ruby via Rails and Sinatra. I would like to be more confident with Ruby itself.

Rebuild/Improve

We all have code out there that is embarrassing. It was written far back in the history of our programming evolution and it’s brittle and coupled and stiff and blech. The improvement between that code and the code you write now is visible from across the street. However, even as you are better now, you must keep improving. Here’s some ideas how:

Rebuild Your Site

For years, I had a website that I did for our family in ASP.NET. It was custom, had an admin area, and was terrible. It died, and I moved to a Rails site that was also custom and terrible. This year, I am moving to Jekyll and (hopefully) not terrible. Darren Jones also plans to rebuild his Cards in the Cloud endeavor.

The point is, rebuilding something is an easy way to get better and scratch an itch. Oh, and it will never be good enough…. :)

Test More

Dhaviat Pandya resolves to “functional test more.” Dhaviat was recently working on a complicated app with no functional tests. This proved to be frustrating, to say the least.

So, to fix a bug, I just went ahead and changed around some of the controller render code, and BOOM! Everything just started falling apart, and, since I had missed out on writing functional tests for the flow through the application it took me a ton of time to figure out exactly where I was going wrong.

Testing is such an easy way to save your future self, resolve to do it.

Keep a Learning Checklist

Pat Shaughnessy wants to improve the way he improves. He resolves to:

to be organized about keeping track of what I learn, and about actually putting it to use. I come across interesting, great, clever, innovative ideas everyday while reading one thing or another. But usually what happens is that I don’t write them down anywhere, and they end up going in one ear and out the other… or they just fall off my Twitter/RSS timeline I should say. In 2013 I’m hoping to keep a real list of ideas or technologies that I come across every week, and then every month or so take a day or at least a few hours, and try one of them out. Sort of a “learning checklist.”

I like that one.

The Rest of It

Your year will not be a success unless you get out of that programming chair and go outside.

Break a Bad Habit

Dave Kennedy is going to quit smoking.

Start a Good Habit

Dave is also going to read more and focus on learning more about business and honing his “soft skills.”

Good Luck and Get Uncomfortable

Jonathan Jackson suggest that you “become uncomfortable” by learning and trying new things. Whether it’s a new Ruby gem or a new programming technique or not salting your french fries, do something to test your own boundaries.

2013 is going to be a big year for Ruby. I resolve to enjoy it.

Win an Annual Membership to Learnable,

SitePoint's Learning Platform

  • http://learntribe.com Kevin Elliott

    A nice way to keep learning checklists and gather all the tutorials, books, articles, courses and screencasts organized is to use LearnTribe. It also imports your achievements from Code School and Treehouse to proudly display them on your profile.

    It’s still a new site and a work-in-progress, but you should give it a try for the purposes described above.

    • eve

      Thank you for all the interesting ideas! I appreciate the input, and am currently in the process of developing my own “code” which I am confident will minimize future programming errors and enable me to “contribute” better data in a more consistent and organized manner. Tcheuss!