Self-learning is difficult and frankly, quite lonely. Here's how you can make it easier.
3 systems to make self-learning easier, Mentors to follow on Twitter and Cool Project Ideas for learning <X>
MOOCs (Massively Open Online Courses) are a boon to us, self-learners. Lectures from the world's best professors brought straight to your hands, no matter what corner of the earth you live in - Isn't that the recipe for disrupting world-class education and democratizing it to the entire world?
A 2019 study using data on MOOCs provided by edX (a popular MOOC platform by MIT and Harvard) suggests - No, it might not be:
- the learners have been concentrated almost entirely in the world's most affluent countries and neighborhoods,
- on an average only 6 out of every 100 people who enroll in a course actually complete it and
- these numbers aren't improving.
The study can be summarised to say that MOOCs aren't as disruptive as the world expected when it first got introduced to the idea in 2012.
So, how can we include more students in our goal of democratizing education?
MOOCs help the self-learners who need help with finding the resources to learn some subject. Maybe we can democratize education even further, if we take a broader look and address the needs of those self-learners who need help with finding the motivation to learn those subjects.
Motivating students is unstructured.
I believe that along with teaching themselves the concepts of the subject, self-learners also struggle with things that we take for granted in traditional means of education - A sense of direction (guided by competition), a learning environment and a peer group.
Since, these are the very things that drive people to be self-motivated, a lack of them is a very real problem for the self-learners. This problem is especially acute for the ones who come from non-traditional backgrounds and the ones in unfavourable surroundings (like developing countries). They are fighting an uphill battle.
I aim to bring some structure to it with this article. What follows is my advice on how you can hack your self-learning if online courses don't seem helpful enough for your situation.
3 Systems to help teach yourself (some X)
After 2 years of being a self-learner who taught himself everything he wanted and another year of being lost, unmotivated and kind of depressed, I have come to realize that -
- Teaching yourself anything can be difficult, draining and quite a lonely process
- But when you care about what you are learning, you change it from something that drains you out of energy into something that lifts your spirits and makes you more confident
- And having a few peers can make it a whole lot easier
With all of this in mind, I have been able to come up with 3 systems that will help you learn X when your physical environment won't -
- Make serious efforts to fall in love with <X> before you try to learn it
- Create and be in an environment that motivates you
- Incentivize yourself to push through the nitty-gritties of learning X
Remember they are long-term systems and not one-off tips and tricks. They are regular practices to increase your odds of learning X in the long run.
Below I describe each of these systems in details, tell you why I think each of them is important and give you some personal suggestions/tips for getting started with each.
1. Make serious efforts to fall in love with X before you try to learn it
If you love something, you will care about it. And when that happens, learning no longer remains a "task"; it becomes an adventure. You will be hungry for knowing more about it and you will have the energy to hunt for answers to your doubts.
But there's a catch: When you first want to know How to learn X, it isn't because you love X or even find it exciting. You are probably more excited about the idea of loving X.. maybe, because you have seen a peer go completely nuts talking about X or because you've heard/read it enough times that X is a "hot" skill to put in your resume.
Although, these reasons are a good starting point they aren't enough. If you dive into doing X for these reasons, you'll just be following the herd. If someone were to ask you "Why do you care so much about X?", you will probably not have an answer that can make you proud.
So, before you go looking for the best courses that teach X, make serious, conscious efforts to find reasons to become obsessed with X.
"What if I try to skip this and just go through with the learning?"
Whenever you force yourself into learning something just for the sake of it, you create a very unsatisfying learning experience.
Working hard for something you are really excited about is passion but working hard for something that you don't really care about is stress.
Doing so is likely to drive you into one of the following 3 situations -
- Finding yourself unable to care about the subject and discontinuing midway
- Completing a course, earning the certificate and that's it
- Getting stuck in the "tutorial purgatory": doing an endless series of courses, watching lectures and tutorials without actually putting them to any use
None of these are desirable.
Personal suggestions and tips for getting started:
- Consciously find reasons that will get you convinced that learning X is the absolute best possible use of your time right now.
- Before you ask someone "How to Learn X", ask "What makes you excited about X".
- Go to Twitter or Reddit, hang around the community of people who love X and go deep into the stuff that resonates the most with the people there - the most liked/upvoted posts. Go down the rabbit hole.
This brings us to the next system.
2. Create and be in an environment that motivates you
We all admire self-motivated people. It's like a superpower that makes them unstoppable.
But nobody is born with a self-motivating ability, right? So what gives them that "drive"? And more importantly, how can we cultivate that in ourselves?
I believe that what you need to self-motivate yourself is an environment that is filled with people and ideas that inspire you to do more. When you're around people who value a thing, you're more likely to value it yourself.
And you can have a motivating environment too, regardless of your physical whereabouts - if you leverage the power of the Internet.
Creating a motivating environment online
You know how your newsfeed is so great at helping you discover all those pleasing and mouth-watering and unimaginable and insane food videos because it knows that you are a foodie.
Now imagine, what it would recommend if it knew that you are interested in Machine Learning or blockchain technology or open-source software.
You can turn, what is perhaps the most negative aspect of social media - an addictive and infinitely scrollable feed - and use it to your advantage!
"What if I skip this?"
Remember the saying - "You are the average of 5 people you spend the most time with"?
So, you could skip this step if you are surrounded by a group of people who talk about and regularly share cool things about X with you. But even then, you'll feel better if you have access to your own sources of new, cool stuff that you can share with them.
But most of us, self-learners, aren't surrounded by such people. We are the people who come from non-traditional backgrounds or a not-so-great college or from a developing country where we don't have access to peers with similar aspirations. This might be the easiest way for us to solve our 'personal environment problem'.
Personal suggestions and tips for getting started:
I heavily use Twitter. I would suggest that you join it too. To persuade you further, I would recommend reading this article by Alexey Guzey - Why (and How) You Should Join Twitter Right Now.
It's simple to let its recommender system know that you are into X:
- Follow the people interested in X - people who could be your role-models and learners who are passionate about X
- Stalk the hell out of their profiles
- And spend (a limited) time going through your awesome awesome newsfeed!
Do this and see how Twitter's newsfeed lets you discover all those unimaginable things and helps you with self-motivation.
"But if I'm just getting started with Twitter, how will I know whom to follow and whom not to?"
Yes, that's a real problem for newcomers to the platform. Therefore, I have created several lists of Twitter accounts if you need help getting into the programming ecosystem. Here are lists of people who love
You can check out more such lists here.
3. Incentivize yourself to push through the nitty-gritties of learning X
A lot of the time self-learning can be really draining despite having all the right reasons for learning. That's when you might get stuck on some of smaller X's that comprise our bigger X.
You need to incentivize yourself so that you can constantly push through this slump.
A simple way to incentivize yourself is to work on a project on the side while you are going through the tutorials/courses. Building something that seems cool and interesting is a great way to trick yourself into learning X with dedication.
Personal suggestions and tips for getting started:
I know that this is scary. I know there are a few serious insecurities that you might have, especially if you are doing this for the first time:
Insecurity #1: "I would love to build something by myself but I don't have ideas for any new interesting projects."
Yes, this is perhaps the narrowest bottleneck that prevents most people from doing a project. Even more than the actual difficulty of building the thing.
I think that browsing through other people's hackathon projects on devpost.com is a great way to come across such ideas because -
- They are just small, cozy, warm pet projects: being personal projects built by young programmers in just some 12 or 24 or 48 hours, they are very doable
- You can know that you are building something worthwhile: most of them are hackathon winning projects
How cool would it be if you created: -
A simple notifications app that lets you select messaging apps that you want to block notifications from when the frequency of notifications exceeds 1 every 3 seconds. And tricked yourself to learn - Android development
A web application that lets you search inside a YouTube video and get you to the point where that word is uttered - a Ctrl-F capability for videos. And tricked yourself to learn - Python, Basic web development (HTML/CSS, Javascript)
A messaging app that automatically sends a text to your loved ones letting them know that you've reached a particular destination because you often forget to do so. And tricked yourself to learn - Android app development
A tool to analyze your Whatsapp chat and reveal things like - #messages sent, #words sent, average no. of words per message, most common words, longest double texting streak, chat hour pattern, most shared website links and more. And tricked yourself to learn - Python and even web development if you decide to build a website for it
A browser extension that referred you to a story with an opposite political view as the one that you are reading. (This will combat the effects of newsfeeds that allow people to only see posts on social media and news sites that agree with their point of view) And tricked yourself to learn - Basic web development (HTML/CSS, Javascript, jQuery), maybe some Machine Learning
A script to analyze the sentiment of tweets of various Game of Thrones seasons to learn how bad the last season was (😜) And tricked yourself to learn - Python, Machine Learning, NLP
Kaggle has some really cool resources that you can use to learn Machine Learning and Data Science
How cool would it be if you could get into ML/Data Science by analysing these datasets!? (1, 2, 3, 4, 5)
Remember your goal is self-improvement. That's why, I believe, you can simply imitate and reimplement other people's ideas with a clear conscience. (Although it would be awesome if you could find a way to give the reimplementation your personal touch!)
Insecurity #2: "But I don't have any experience. How will I ever know what to learn, how to build and just, how to go through it all?"
I believe that you don't need any of that mysterious "real-world experience" to build something useful. The Internet is quite filled with stories of people who just built what they wanted, picked up the skills that they needed along the way and in the process taught themselves programming.
I have written more about it here: How (and why) to start building useful, real-world software with no experience.
"Every great developer you know got there by solving problems they were unqualified to solve until they actually did it."
- Patrick McKenzie
But even then, I realize that this is easier said than done.
And that is why I want to help you.
Introducing, Build To Learn
I have started this initiative called Build To Learn to help you with your self-learning needs. Here, I am going to create a series of tutorials centered around doing projects and teaching you the necessary programming skills along the way. Of course, it's all going to be free to all!
This will be like a story - You be the hero, the project our adventure and me, Gandalf, your guide.
I will pay attention to the need (and the lack) of motivation in learning and keep the above 3 systems in mind and try to help you with them -
- A "Reasons To Love X" series which will serve as a starting point for various fields
- "List of People who Love X on Twitter" series that I introduced above
- The projects themselves which will incentivize you to do more
You can sign up for this newsletter so I can send you a more extensive list of project ideas and let you know about the updates with Build To Learn.
I have also started a Slack group to build a community of people who want to Build To Learn. Our community is becoming larger every day (350 members already). You can join it using the link here!
Thanks for reading!
If you like what I have written, you can reach out to me via Twitter or LinkedIn or the plain old email - nityeshagarwal[at]gmail[dot]com
PS: If you have found my advice useful, I would love to to know your story, your learning struggles and give you more personalized advice. Contact me using any of the above services to chat or jump on a 10-minute call with me :)