Source: Deep Learning on Medium
In the past five years, I went from zero in data analysis (Excel, SQL), coding (Python, HTML), statistics and maths, machine learning (scikit-learn) and deep learning (PyTorch) to “something” (experts see me as intermediate while laymen an expert). During that time, I have completed around 50 online courses and abandoned even more due to frustration or merely feeling too dumb to see them through. Through introspection over the past couple of years, I have come to realisations, had epiphanies, and learned the hard way what doesn’t work and, equally important, what does work. Although this is written based on my experience, and my continuous path to machine learning mastery as both an AI practitioner and an AI product manager, I believe that the takeaways can easily extend to other subjects.
Start with Why
In my experience mentoring people in data science, and machine learning, in particular, there are clear indications for who will persist with their ongoing learning journey and those that give up. The commonalities between those that continue their journey all boil down to mindset. Their motivations are due to one or more of the following:
- Solve a meaningful problem
They may have dreamt about launching an Android app and a prerequisite to making the value proposition truly unique they would need to use machine learning to power a feature, a set of features, or perhaps the entire product. Sometimes they are already working as developers while others are entrepreneurs. The denominator for both of them is that they are scrappy and accustomed to getting things done that are required.
- Social impact
They are usually people that want to put a dent in the universe. Perhaps they want to participate in Google’s data science competition to help make their computer vision models better at classifying black women. Alternatively, maybe they want to help governments predict the spread of Dengue fever using state-of-the-art techniques. The options for applying machine learning for social good are endless, and their hearts race at the thought of spending countless nights hacking away at projects for social good.
They are usually motivated by their fear of becoming displaced by machines soon. Perhaps they have been reading that their industry is ripe for automation and AI and therefore they have decided not to be made redundant in the future. Fear is an incredibly powerful motivator, but only when balanced with hope — otherwise, they risk a depression. Being hopeful
- Career progression/transition
As for those that want to progress through their careers, they are either intellectually curious developers, or business people interested in upskilling. Among the developers that succeed are those that have an apparent reason behind studying AI, e.g. build new software solutions leveraging AI. The reality is that most people from a business background give up, but the handful that does persist decides to do so because of their desire to become thought leaders and impact the industry.
The key is to figure out why you want to master machine learning. Why should you go through the pain of learning such a complex subject that spans calculus, linear algebra, statistics, and programming? It’s not great if you can’t answer this simple question. Try to think about where you would be in five years if you had the discipline and rigour to stick with studying and attain mastery. Compare that to where you would have been during the same period if you didn’t master the subject and instead just continued down your current trajectory? In the event where your current path is not that exciting in five years, you will know what the benefit is of going through those years of learning, and you will be even more motivated to persist through the hardship which you are guaranteed to encounter during your journey to learn.
Do not expect to call yourself an expert in the subject matter even if the courses claim you will be one. Unfortunately, there is a significant discrepancy between what the material promoting a course claims and reality. The truth is you will not attain anything close to mastery by doing an online course, or a series of classes so you should avoid claiming to be one as you will be called out during interviews. Moreover, more importantly, it is detrimental to mastering the subject if you already perceive yourself to be an expert: that attitude will prevent you from ever attaining mastery. Showing humility and being humble around your learning journey goes such a long way, even more so when you meet and engage with experts in the field — avoid the temptation to interject a conversation to display your knowledge since it will prevent them from speaking, and you from listening and learning.
Online courses do not make you job ready
Sets of courses like Coursera’s Specializations, Udacity’s Nanodegrees or edX’s Series do not make you job ready. However, that’s not to say they aren’t worth their price tag. They reduce the amount of time it will take you to successfully transition into a new career while also serving as a proof of your intellectual curiosity, discipline and passion which themselves are essential (and good proxies for an employee’s future performance).
Sleeping and power naps
Barbara Oakley in her book “A mind for Numbers” argues that sleep is probably the most crucial factor in tackling a difficult problem as long as you have been focusing on solving it before you fall asleep. It turns out our brain rehearses “some of the tougher parts” of whatever it is that we are trying to learn “going over and over neural patterns to deepen and strengthen them.” The same benefit applies to power naps — a technique used by artists and scientists in the past to solidify their learning, such as Thomas Edison. In summary, pay attention to your body’s signals on the quality of sleep you get and experiment with power naps during the day following a session of focused studies to cement your learning. However, how do you know if you lack sleep?
In “Why We Sleep” author Matthew Walker talks about the signs for someone’s lack of sleep:
- Do you sleep past the time you need to get up if you didn’t set an alarm clock?
- Do you read and re-read the same sentence without comprehension?
- Do you forget what colour the last few traffic lights were while driving?
If any of the above is true, they are possible signs that your brain is fatigued and under-slept, and you should invest in improving the quantity and quality of your sleep. Besides inhibiting you from maximising your learning, a lack of sleep also have profound consequences on your physical health, including a high risk of obesity, heart disease and diabetes according to the NHS.
Anticipate the desert of despair
Many people who have attempted to learn to code may have tried an online course and then given up because the pace of the instructor began slow and manageable and later quickly became overwhelming. It’s a very frustrating experience which ended up causing me to abandon more courses than I have completed. My main advice is to expect getting overwhelmed because every course instructor will ramp up the difficulty once you are past the introductory lessons. These realities are the most significant weaknesses for students taking online courses because when you get stuck in trying to solve a problem in a physical classroom, you can raise your hand and ask the instructor for an alternative explanation. You can also discuss with your classmates during breaks about how they approached a particular problem. Whereas in an online classroom, the lectures are prerecorded so you can’t ask live questions, and it feels more like you are merely following a template made for the average student. Also, to make things worse, you have no relationship with your classmates, and you don’t know who’s currently online studying the same problem, so there’s no easy way to team up.
In the above diagram, it’s the hand-holding honeymoon stage where you feel confident and motivated that you can learn this subject because you are acing all of the mini-quizzes and exercises. However, once you are out of the initial stage and the instructor lets go of your hands, you start to panic and because you are unable to figure out how to solve the problem on your own despite the instructor claiming you should be able to do so now. In my experience, this is where most people give up and blame it on a poorly structured course or poor instructors. I also believe this is what separates those who would like to be proficient in the subject they are attempting to learn vs those that are determined to master it.
The key to surviving the “desert of despair” is how good you are at googling help when you get stuck, asking peers, reading articles and tutorials on the topic from other sources, and more prominent your ability to feel comfortable looking stupid in front of others. I cannot overemphasise the last point — many people who have attempted to learn how to code already are subject matter experts in another area such as business, management, strategy, etc. Once they hit a barrier in their efforts to learn a new technical skill, they feel stupid once the honeymoon period ends, and their egos shield them from experiencing the same feeling again by giving up and returning to subjects they know. One thing I’ve learned is once hard stuck in solving a complex problem; it is easy to feel lost and hopeless by thinking that you are not progressing. However, I have found taking a birds-eye perspective by appreciating the sum of micro-progression made through googling help, reading articles, discussing with others will get you unblocked eventually. I like to think of the metaphor of a sculptor: he makes tremendous progress in the beginning by breaking off a piece of a mountain, but soon enough his pace slows down because he now has to work on the details of the sculpture he is making. Similarly, we feel that we are making tremendous progress in our first encounter with learning a difficult subject yet we think that slowing down is due to the lack of our intellectual capabilities whereas, in reality, it is a natural part of the refinement process. I would estimate that I’ve spent two years in the desert of despair for machine learning.
Once a sufficient amount of micro-progression has happened, we start asking for help less frequently. We also notice with ourselves that we are getting stuck less than before, or at least we have a better idea of how to unblock ourselves. Before we know it, we are past the “upswing of awesome”, and we start to make progress towards becoming “job ready”!
Get organised with your notes as early as possible
Realise that our memories fade and we forget what we have learned over time. It is worth pointing out that if we stagnate in learning our access to knowledge we have acquired will diminish over time, whereas maintaining that knowledge requires continual revision. It underlines the importance of actively being able to revisit what you have learned — in other words, the importance of taking and revisiting notes. Whether you take notes by hand, or digitally they each have their pros and cons, and there are many articles and YouTube videos helping you make that decision. If you do decide to take digital notes, I suggest using a program that supports:
- Downloading notes for offline viewing
- Code formatting
- Maths and statistics notation
- Export to PDF
Copying notes verbatim from the mouth of the instructor is counterproductive, and you likely won’t be able to recall what they meant when you revisit them. The same applies to copy verbatim notes from other students. However, it is perfectly fine to copy images, charts and other visual tools as long as you explain, in your own words, how to interpret them.
Many will experience a positive feedback loop when they take their first online course, complete it and share their certificate on LinkedIn, where they get social recognition from their peers. If we are not careful, social recognition can motivate us to enrol in the next class and share updates about it. Through introspection, we will know about ourselves that we haven’t learned a lot, or we may not have applied our learning to anything novel at work or projects outside of work, but it feels excellent receiving recognition from our peers. As you can imagine, this loop can become detrimental to education because we have equated the stacking of certificates with our mastery of the subject, which are not equal.
However, there is merit to stacking certificates on LinkedIn beyond social recognition. Those certificates and courses once added to LinkedIn play a crucial part in surfacing you higher in the sort order when recruiters search for candidates with those particular skill sets. Therefore, I suggest the following:
- Hunt for certificates for the first ten courses and add them to your LinkedIn to help recruiters find you.
- Stop hunting for certificates as you are now getting found and people expect you to understand the subject matter.
- Aim for subject mastery:
- Use online courses to build foundations. Deepen your knowledge by complementing with books. Put your skills to use through projects, and finally teach others to solidify your understanding.
- Explore multi-sensory learning:
- Interactive (online courses, YouTube, guided tutorials)
- Reading (books, tutorials, guides, articles and blogs)
- Listening (audiobooks, podcasts)
Often the best long-term strategy is a combination of the above: interactive learning when you have at least 30 minutes of uninterrupted study, reading while commuting, during toilet visits, breaks, and more. So listen when you are unable to do the above, e.g. when driving, walking, exercising, and so on.
Experimenting in styles of learning
I learned a lot about myself when I started experimenting with the different types of how to study and learn:
- Time of day
- Binge/mini sessions
- Time management techniques (Pomodoro, diffuse thinking)
I learned that I study and learn best when I binge longer sessions from night to sunrise. There’s something about the tranquillity of night: no distracting notifications, zero noise-levels as the household is asleep. When I was living in Denmark, I had a monthly train pass and used to take an hour train ride into Copenhagen, and an hour back because of how relaxing it was to drive through beautiful green scenery while studying. I have also experimented with the Pomodoro technique where you study uninterrupted for 20–25 mins and take a 5 mins break and continue doing that for as long as you can. In all honesty, I didn’t find it helpful. The point is that you should experiment with different styles of studying to find what works best for you.
Celebrate milestones and accomplishments
Sometimes it can be easy to forget how far we have come since last year, or maybe even just a month ago. That’s why it’s crucial to take a step back and appreciate our progress towards subject mastery; otherwise, it can seem like much work without noticing all of the fruit that has come about as a result of our dedication. Pay attention to:
- Minor progress: celebrate when you are hard stuck, and someone unblocks you. Perhaps you want to buy them a small gift as a token of appreciation.
- Significant milestones: celebrate once you have written your first function, or program, or done your first competition, or in any way applied your learning to an interesting problem.
Finally, it is essential to celebrate with those that have helped you and not just by yourself. So, if you have a mentor, that you reach out to for help and support, or just someone who has unblocked you a few times then gifting is a great way to make them feel valued. I have personally gifted numerous Amazon gift cards to those that have helped me in my journey and seen how happy they get. Give back in any way you can so it isn’t just a one-way relationship!
Before you know, learning will have gone from a past-time activity to a hobby, and if you persist with it, it will become a lifestyle that is inseparable from your persona, and you will no longer need to motivate yourself to study as it is now intrinsically motivated.