on
2 tips to take your self-learning to the next level
There is a lot of information online, which is both a pro and con at the same time: We can self-learn almost anything, and even enter new industries or pick up niche hobbies with self-direction. The con is that I might spend more time reading 50 variants of “top 10 programming languages to learn in 2020” instead of actually learning any of them.
In this article, I share how I learned to get out of draining information rabbit holes, and my own take on how to control information consumption so that it helps, not hinders, self-learning. What is a good balance of “best of” lists, online courses and videos, and learning enough to be “ready”?
- Self learning - too much information causes inaction
- [Tip 1] Save 20+ hours of research: Pick one source of truth, and stick to it
- Don’t forget the real reason for self-learning
- [Tip 2] Use Parkinson’s Law to make the step from self-learning to being “ready”
Self learning - too much information causes inaction
In recent years, it’s become easier to learn skills without meeting with a teacher in person, with the broad availability of online courses and learning materials. Coursera, EdX, Udemy, and many other platforms come to mind, which enable people to learn out of curiosity, or even to make career pivots. “Completed Deep Learning Specialization on Coursera - see credential”, I often see on LinkedIn profiles.
I wrote about how I entered the data science field through self-learning, and I was just like anybody when I started out - scrolling through endless Google search results on what courses to learn, “Python vs. R”, “top 5 machine learning algorithms to learn right now” lists, and bookmarking countless Medium posts…
Oftentimes, during those days, I would have set aside a time to self-study, but then look at the overwhelming pile of to-read articles, and get a churning feeling in my stomach. More often than not, this overwhelmingness would cause me to procrastinate or avoid the tasks required of self-learning. I would best describe it as a sibling of writer’s block: “reader’s block”.
The way I got over this mental block was actually comparing the self-learning process to formal education. It hadn’t occurred to me that structured education hides a substantial portion of the effort - a professor or TA had spent 100s of hours making the syllabus and curriculum, so that I didn’t have to.
In addition, as self-learners, we don’t have the experience that helps to filter through content, like the instructors at a school. For a professor or TA to spend 100s of hours making a curriculum, they first needed to have spent years studying the topic. Hence, they would simply be more efficient than a new learner at identifying important and useful content.
This was the reason why I got stuck in rabbit holes of “top machine learning algorithms” lists - I was trying to create a personal syllabus, but was unable to filter through the multitudes of similar lists on the internet. Which one of these articles should I listen to? These cycles are mentally draining, since it feels like more time is spent “preparing to prepare to get started”, instead of making real progress.
[Tip 1] Save 20+ hours of research: Pick one source of truth, and stick to it
As time went on, I got better at identifying when I was in one of those rabbit holes, and reframing the syllabus creation analogy to break free of the paralysis caused by an overwhelming amount of information.
Here’s an example from when I tried to figure out what algorithms to prepare for an interview. On Medium alone, there are 100s of articles that are variations of “Top 5 algorithms asked in interview questions”. It’s tempting to read and compare them all, before deciding which guide to follow. Or, perhaps, to even pick and mix from the articles to create a super special tailored guide for me!
Using the syllabus example: in formal education, professors that have spent years in the field still need many hours to select course content. They are much more efficient than the new learner at doing so. In this self-learning case, it’s too much to ask of myself to be as good as them at filtering important content. Therefore, I should “trust an expert” who has put in the time to vet and compare the self-learning materials, and get on with my day.
With that logic, here’s how I cut what used to be 20+ hours of research time to under one hour.
- Pick a source that is credible
- Pick a source that has reasoning you can agree with, or has a similar learning background
- Especially if they mention their personal experience e.g. “This course was great for people that were better at programming than statistics, since I did a CS major”
- Pick a source that has walked the walk, not just summarizing what they heard from other sources. The more degrees of separation, the more information is lost.
After self-learning many things, I was able to fine tune this approach better and better. Instead of getting sucked into a time-consuming Google search session of “steps to learn Tensorflow”, I skim a few results, using the criteria in the list above. I aim to find a first-hand, detailed source as fast as possible, and then read it in detail.
If they say to do [course 1] and then [watch video x], and the reasoning makes sense, I simply follow it. It was hard for me to do this at first, because window shopping for courses and tutorials can be addictive in itself, much like how people spend a long time browsing Netflix before picking something new, or simply falling back on rewatching shows they know.
If it’s for entry level material or a topic introduction, it really doesn’t matter that much between course A and course B, as long as they are from credible sources, much like how Econ 101 doesn’t differ too much between universities.
If that’s still not convincing, think about it this way: Someone has spent 10+ hours writing that list or blog post of their learning experience, and possibly another 200+ hours if they’ve taken all the courses they actually recommended. Save yourself the time and pain from trying to make your own syllabus, and get started!
Don’t forget the real reason for self-learning
Now, hopefully my experience in researching “what to learn” and “what content to consume to learn [x]” will save you some time between preparing and getting started. But it wasn’t all smooth sailing for me after finding a syllabus to self-learn. There were things I did right, and things I did wrong, which I share here so that you can identify it if you happen to encounter these roadblocks.
When I first started self-learning programming online, there were countless Reddit threads I looked up, asking “what are the best resources for learning [programming language]”. The thing is, I actually had a reason for learning - I wanted to make video games. Hence, I didn’t even bother taking online courses, because I knew that a lot of the courses were more general and would distract me from making games.
I learned some basics from Automate the Boring Stuff in Python (free online version) (print version*), and didn’t even finish the book. Once I learned just “enough to be dangerous”, I started with trying to modify the source code of existing games. This was easier than starting from scratch, and served the purpose of creating a fast feedback loop.
Being able to understand what the code was doing, and iterating my learning from there, helped me immensely in gaining the skills I wanted. It’s like how with a few phrases, you can probably read directions and ask for directions in a foreign language and get around, despite not being fluent by any means. Then, any gaps in vocabulary in day to day conversation will help identify new areas to target.
I mention my very first foray into programming (I’ve since learned much, much more than just from that book), because that was something I did right. However, I forgot those lessons, when I turned to learning Python for data science.
Initially, I wanted to mimic my experience of learning Python for games - focusing on learning just enough to be dangerous, but partway through I forgot about the mission. I fell into the rabbit holes I mention so much in this article, and felt paralyzed by the abundance of online information.
I read a lot of tutorials, but didn’t make anything new with the knowledge. Have you ever felt like you’re taking a lot of courses but are going nowhere? I took some Coursera courses but didn’t recall their contents a few months later, which, to add insult to injury, renders the months I spent on those courses useless.
I forced myself to inspect what I was really getting out of these online courses, and that’s when I was able to improve my approach. Wasn’t the whole point of taking those courses so that I could do data science well, and independently, when I enter the industry? The point of taking online courses was not to simply take more courses afterwards, while forgetting the content in past courses.
So, once again returning to the way I learned programming for games, by focusing on execution, I adjusted my data science self-learning approach. This is why I always recommend learning enough to do a small side project as soon as possible, which I elaborate a lot on in this article. The courses are just a means to an end - doing something.
[Tip 2] Use Parkinson’s Law to make the step from self-learning to being “ready”
There can be many reasons to self-learn, from picking up a hobby as entertainment, to breaking into a whole new industry. Regardless, I consider my reason for learning to be using the knowledge to do something (I keep this general on purpose; the reason can be personal and differ from person to person).
Since I focus on my experience learning to break into gaming or data science, I will use this reason for learning: being able to create games of my own, and to create projects independently (as will be expected in a professional field). Hence, while self-learning, the faster the crutches are removed, the better, in my humble opinion. Courses hold our hand the entire way; the data is clean, the solutions even more so.
Of course, we need both theoretical and practical foundations before we can even become independent. I do not suggest skipping the foundations by any means. On the flip side, it’s possible to take online courses without end, which, past a certain point, starts to give diminishing returns. It is this point of diminishing returns that we need to beware of.
What is a good balance of taking online courses and wading into the unknown with a self-directed project? When can you say you are “ready” to enter a new field, or perform those self-learned dance moves in front of friends? Is there a cutoff of the amount of online courses to take, before saying one is “ready” to enter the field as a data scientist, software engineer, or any other role?
Here I propose keeping Parkinson’s Law in mind: “the task will blow up to fill the time that is allotted”. For example, think of a project that is due in a month - the first 3 weeks tend to go by peacefully with low productivity towards it. Then, in the last week (or let’s be honest, the last day), as the deadline looms, progress goes up exponentially.
If there are no self-imposed deadlines while self-learning, or the deadline is set too far out, it’s easy for filler or mundane content to creep into the first few weeks of progress. For example, we might take a new online course that overlaps 60% with a previous one, or another simple SQL course just to kill time. As self-learners, the longer the time we allow ourselves to endlessly and passively consume courses, before jumping into our own project, the longer that non-productive period is.
On the other hand, we can take control of this fact; we can set a timeline by which to make use of self-learned skills, such as being able to start a side project or perform in front of an audience after [3 more months] of passively learning. The closer the deadline (while still being realistic), the easier it is to escape information rabbit holes, and start applying and retaining the content we have been consuming. What I’m getting at is, if there is a deadline, and if it’s set close enough, it can speed up our learning.
To sum up, applying Parkinson’s Law to set timelines for self-learning has two major benefits. Firstly, we are less likely to waste time on filler material, and secondly, our motivation and productivity is highest when there is a reasonably close deadline.
And that’s it for the 2 tips for self-learning - defeating analysis paralysis from too much information, and setting a concrete timeline to avoid rabbit holes! This hard-won knowledge has made me much better at bridging the gap between self-learning to being “ready”, which is being able to independently apply the knowledge in new ways.
I drew from my experience self-learning game development and entering the data science field, but these 2 tips really can be applied to self-learn anything. Thank you for reading, and I hope this is helpful to your self-learning journey.