Why learning Ruby takes a lot longer than you think... and what you can do about it

It sounds like such a simple question, and depending on which bootcamp or code school you ask, it has a simple answer - somewhere between two and twelve weeks.

Why can’t you learn Ruby in a matter of weeks, then? Why do you struggle to create Ruby applications that you care about, after months of working through tutorials, watching screencasts, and attending meetups? Do you just need to shell out $15,000 to attend a bootcamp so you can get on the fast track to learning Ruby?

Here’s what the bootcamps don’t tell you: you can’t learn Ruby! To get more precise, “learning Ruby” as a goal just doesn’t make sense… and that’s why you struggle to create meaningful applications.

When you set out to learn Ruby, you set yourself up for failure - you have a nebulous goal that always gets further away. Consider these facts:

This leaves you playing a never-ending game of catch-up.

What can you do instead?

1. Understand the difference between objectives and outcomes.

You can’t “learn Ruby” because learning Ruby is not an objective. If you treat it as an objective, you’ll always get lost. You can’t measure how much Ruby you’ve learned. You can’t say for certain whether you’ve learned Ruby. There’s no moment where you go from not knowing Ruby, to knowing Ruby. It’s a gradual, on-going (life-long!) process.

You can measure objectives. You can strive to meet them, and succeed or fail. Failing to meet your objective doesn’t mean you’ve failed altogether… because you get value from outcomes, not objectives.

Learning Ruby is an outcome… you can only learn Ruby as an outcome of constantly working towards meaningful objectives.

2. Set meaningful objectives.

You got in to Ruby with a strong objective - to create applications that you care about. Along the way, you got lost. People told you that you needed to learn Ruby to create Ruby applications, and you believed them. It only makes sense… right?

Nope. As we’ve already discussed, you can’t learn Ruby! If you make learning Ruby an obstacle to creating Ruby applications, you’ll spin your wheels - forever!

Instead, you learn Ruby by creating Ruby applications. That means you sit down and create something, even when you have no idea what’s going on. Afterwards, you evaluate what you’ve done, and look for ways to improve.

You’ve probably heard of SMART goals before - Specific, Measurable, Attainable, Realistic, and Timely. It’s a cute acronym, but I have something way better for you: GAMES!

3. Play learning-directed games.

Yep, GAMES! It’s not a new acronym to remember… it’s just something to get excited about :)

Games produce learning as an outcome, because games have definite objectives. Game structure includes a few more pieces beyond objectives, and we’ll explore them in another lesson. For now, you just need to understand three simple rules:

  1. You can always find a game.
  2. Playing a game repeatedly will produce interesting outcomes over time.
  3. You can change the game to produce different outcomes.

Learn Ruby by creating Ruby applications you care about, with RubySteps

You’ll learn all about how to find games, tweak games, and even create your own learning-directed games, in RubySteps. For now, here’s a simple game you can play that’s guaranteed to help you learn Ruby - without making you feel like you’re behind the curve.

The RubySteps Do-Over Game:

  1. Set aside 1 hour to play this game
  2. Pick a single programming problem to work on for the hour - program a cash register, for example
  3. Set a timer for 10 minutes.
  4. Work through the problem, getting as far as you can in 10 minutes.
  5. Take a 5 minute break - take notes on what you did well, and where you stumbled.
  6. Open a new file, and repeat steps 3-5 three more times, until the hour is up.

At the end of the hour, you will have attacked the same problem four times, and done a little retrospective each time. You’ll have a list of things that you did well, and things that you struggled with… and more than likely, by the fourth round you’ll have gotten further than you did in the first three.

You can play that same game every day, and you’ll improve your ability to create Ruby applications a lot faster than you ever will working through tutorials.

Change the game

You don’t have to play that exact game, either. Here are just a few ideas for changing the game:

You can create infinite variations of this game… and even create your own brand-new games!

RubySteps principles at work

I’ve shared just one tiny example of what you’ll learn in RubySteps… let’s take a look at the RubySteps principles at work here:

All that’s left for you to do now is to Share Your Work. I’ve got a quick game for that, too :)

  1. Push your code to GitHub
  2. Send me the link!

I’d love to follow along as you play the game, and see what you learn :)

Are you stuck as a junior developer... forever?

You don't know what to study to level up your skills. Lose this job, and you're screwed.

How does an extra $80k per year sound? Choose the kind of job you want.

Enter your name and email below and I’ll show you how to level up to Senior Developer...