DEV Community

Cover image for A Maintainable Way to Learn New Skills
Josh Hadik
Josh Hadik

Posted on • Updated on

A Maintainable Way to Learn New Skills

A little over three months ago, I decided to add a new habit into my every day routine, something I’ve come to call “Rapid Reps,” and, let me tell you, it was one of the best decisions I’ve ever made!

At the time, it was just a theory. An idea I had for how to quickly learn new skills based loosely on the idea of spaced repetition. I’m now on my twelfth week of Rapid Reps, and I can say, without a shadow of a doubt, that it works. I honestly think I’ve learned more in the last three months than I did in three years before I started doing this.

What are Rapid Reps?

The idea is pretty straight forward:

Pick one task and repeat it every day for a week.

This task should be small enough that you can complete it in a reasonable amount of time. (I like to timebox my rapid reps to 45 minutes, but you can choose whatever amount of time works best for you.)

At the end of the week, pick a new task and start over!

Some examples of tasks you might complete:

  1. Build a single resource CRUD application in whatever new framework you want to learn
  2. Practice setting up OAuth with Facebook, Twitter, Google, etc.
  3. Build a skeleton app and deploy it to whatever cloud service provider you want to learn how to use.
  4. Setup an automated CI/CD flow for a simple app with whichever CI tool you’re most interested in learning.

Why are Rapid Reps effective?

To keep things simple, I’ve come up with a list of three primary reasons why I think this habit is so beneficial, but I know I could come up with a whole lot more if I wanted to.

You memorize the workflow.

You might not remember the exact syntax of each and every line of code you wrote by the end of the week, but I guarantee the next time you have to implement something similar, whether its days later or months, you’ll have a much better sense of the general workflow and series of steps required to do so, which will save you a lot of time and a lot of errors (and a lot of time fixing those errors.)

You learn the errors.

At some point during the week, you're guaranteed to come across an error or two (or fifty,) which is actually a really good thing because it gives you a no pressure environment to learn what those errors mean and how to fix them. And guess what? When you get those same errors in a real world scenario, with all of the pressures of deadlines and shareholders and the overwhelming fear of breaking everything, you’ll know exactly how to fix them!

You build an archive of example code.

Seriously. Every day when I start coding the first thing I do is open up my Rapid Reps folder and throw it on an external monitor. It gives me a nice consolidated library with tons of examples of how to implement a constantly growing list of tools and technologies. And the best part is, should you choose to do the same, it’ll all be code you wrote which means (hopefully) it's code you’ll be able to understand a lot more easily than some random answer on Stack.

A Challenge

I challenge you to complete one week of Rapid Reps!

Take the rest of this week to choose a task. Think about something you've always wanted to learn, but never felt you had the time... maybe it's Docker, maybe CI, maybe Vue, maybe anything! Once you have a topic in mind, pick one small task you could do as Rapid Reps next week, try to keep it as simple as possible!

That way next Monday, you'll be ready to start your first week of Rapid Reps!

If you decide to take the challenge, here's ten tips you can use to get the most out of your first week!

Thanks for reading!

I hope you enjoyed this article! Feel free to ask any questions or leave your feedback in the comments below!

And for any of you who decide take the challenge, I’d love to hear about your experience! What task did you perform? Did you think it was a useful way to learn?

Top comments (1)

amatosg profile image

I really like your idea. It gave me a few ideas I (c|sh)ould work on. Do you have more tasks to share? It would be interesting to have a list of tasks to pick from.