2 min read
At my company we use a programming language called “R” for nearly all of our data analysis. It’s a useful language but it has a steep learning curve. Recently my team hired two new interns and they both asked me if I had any tips for learning R quickly.
I told them that I would send them a 3-page report with graphs and tables that I created using R and that they should try to reproduce it from scratch.
One of the interns thought this was an odd suggestion.
“But do you know of any online courses or books we could read?”
“Yeah, I know of a few,” I said. “But I don’t think that’s the fastest way to learn.”
I explained to them that, based on my own work experience, I have found that the fastest way to pick up new skills is to try and build something with those skills.
Yes, you read that correctly. I suggest building something using skills that you don’t already possess.
It sounds odd, but it works and here’s why:
When you have to build something, your learning is both (1) need-based and (2) outcome-oriented.
(1) need-based: you only learn skills that you will need to build that thing you’re working on.
(2) outcome-oriented: that thing you’re building is tangible. It will be seen by you and possibly others.
This guarantees that you only learn the most relevant and necessary skills because you literally need to know them to build that thing. And because that thing you’re building is tangible, you’re more likely to remember how you built it and the struggles you faced when building it. This makes the skills you learned more likely to stick in your brain.
By contrast, when you just take a course or read a book, you have no clue which pieces of knowledge you’ll ever actually use in the real-world and you probably never have to experience the pain and growth of building something.
When I first started my job at my current company, I didn’t know much about R outside of the basics. That changed when I had to create a report from scratch in less than three days, using a whole slew of knowledge and skills that I didn’t possess. I learned fast, though. It looked something like:
Shit. How do I pull data from SQL using R? Is that even possible?
So I googled it, which lead me to some link on Stack Exchange with a code snippet. When that code snippet didn’t work, I typed out another google search. Then tried a different chunk of code. Then another one.
I finally got the data I needed. Then I had to clean it and format it.
Oh god. How do I do X, Y, and Z?
More google. More Stack Exchange. More rubbing my face. More frustration. Eventually I figured it out. Then I had to export the report to a PDF and format it.
Is this even possible with R?
More google. More trial and error. More mistakes.
Eventually, by the end of the three days, I had finished the report and I had learned an insane amount. It was uncomfortable, stressful, and painful, but I picked up skills I needed to know and produced a tangible thing that other people would see.
I believe this type of fast skill-acquisition can be applied to any field.
Don’t just take a course on HTML. Try to build a website using HTML.
Don’t just read a book on R. Try to create a report using R.
Don’t just watch a video on how to develop writing skills. Purchase a domain, get a hosting plan, and start writing.
The fastest way to acquire new skills is through actively building something. You’ll pick up skills as a byproduct of the building.
Full Disclosure: Nothing on this site should ever be considered to be advice, research or an invitation to buy or sell any securities, please see my Terms & Conditions page for a full disclaimer.