Let’s say you want to learn Rails, and you follow the standard advice of working through tutorials. You check out some of your options, and decide the Rails tutorial on Treehouse looks like a good choice. You set aside some time in your calendar, and get down to work. You install Rails like it suggests, run the commands… and get an error. You post a message to Stack Overflow, where people tell you that you’re using a newer version of Rails than the tutorial. The tutorial is out of date! What do you do? Give up on this tutorial, and find another one?

All tutorials have the same problem

Changes to Rails can make tutorials out of date the very day they’re published! But you don’t have to ditch the tutorial. Think about this little scenario…

It’s your first day of work at a new Rails job. You clone the project repository to your machine so you can get started on the project. There’s just one problem – the versions it uses are old! In fact, this is a Rails 3 project! What would you do?

Would you tell the lead developer, “I can’t work on this, it uses an old version of Rails”? Of course not! You would install the versions that the project uses, and you would get to work. Treat tutorials the same way.

Sure, they may not be using the latest and greatest features, but you don’t need those anyway. You just need to learn how to get productive using the information the tutorials teach you. The versions they use were good enough at the time – and for plenty of developers working on real-world projects, too. In fact, there’s a good chance the tutorials are using more recent versions than a lot of projects in the wild!

Treat tutorials like any other project

Use the versions they use, and get to work. You can always upgrade to newer versions later (in fact, that will be a good learning experience for you).

There is one caveat, and that’s that sometimes old versions are really old, and use completely different APIs and syntax. RSpec is a great example. Anything pre-3.x will be out of date enough that you don’t want to use it. Still, the underlying concepts matter most. You can either translate the syntax on the fly – if you’re able to – or just roll with the old syntax. Then you can upgrade to a newer version later, and update the syntax.

Don’t worry that using old versions means you’ll have to “re-learn” stuff. You’re not. The core concepts are the same, even if some of the specific details change. And approaching it like that will prepare you well for when you start working on your own projects, or at a job. Versions will change, details will change, and you’ll need to deal with them.

Turn a perceived weakness into a strength

Take a perceived weakness – tutorials being slightly out of date – and turn it into a strength. Use it as an opportunity to practice an important programming skill. And most of all, use it as an opportunity to increase your own abilities.