Learning is my biggest hobby, and I am always looking at ways to improve both my skillset and learning methods. As my main professional interest is using NLP to build recommenders, I have been using the kinesthetic learning approach in the past few years, to learn while actually coding personal projects using NLTK, SpaCy and various Japanese language modelling libraries. This approach, while fun and provides instant feedback, lacks a foundational structure. So in the past few months, I ventured into the subscription models of both Coursera and Edx, as well as supplementing with several knowledge platforms to pick up foundational theories in math and NLP. This post is a short recap of what I learnt in these learning platforms. It is intended as a piece of a bigger series on knowledge management.
platforms I explored
What they offer | My Recommended Courses | ||
---|---|---|---|
Coursera | paid subscriptions offer autograders (for both programming and written assignments), hands-on-lab and quiz. Dashboard makes it easy to track your progress in a specialization (a series of courses) or individual course. | recommended courses | |
edx | paid subscriptions offer hands-on-lab and assignments. I do not notice autograding as programming outputs are used in quizzes instead. Dashboard makes it easy to track your progress in a specialization (a series of courses) or individual course. | ||
deeplearning.ai | various short courses taught by industrial professionals with hands-on-lab on a dual pane setup, so that you can try what is being explained simultaneously. They also host a very responsive forum on all their courses on Coursera. | Your Guide to Generative AI Courses - DeepLearning.AI | |
Linkedin Learning | many libraries provide free subscription access. Quality varies. | ||
Harvard | Courses | Harvard University | CS50's Introduction to Artificial Intelligence with Python | |
Stanford | depends on the professor, some courses provide link to free courseware (book, weekly slides, videos, assignments). Breaking down everything into a module basis makes it easy to follow along | •
CS 276: Information Retrieval and Web Search (stanford.edu)<br> •
CS246<br> •
Speech and Language Processing | |
MIT OpenCourseWare | -
MIT OpenCourseWare <br> -
MIT Open Learning Library<br> | -
MIT Deep Learning 6.S191 <br> -
Matrix Methods in Data Analysis, Signal Processing, and Machine Learning | |
Youtube | Lots of animations, good for visualizing math concepts. Good channels include 3B1B, Serrano Academy. | -
Generative Machine Learning<br> -
Natural Language Processing and Large Language Models<br> -
Essence of calculus - YouTube<br> -
Essentials of Linear Algebra<br> -
Neural networks - YouTube<br> | |
Blogs | written by practitioners on a single topic. Can delve deep but sometimes lacks context | towardsdatascience, company engineering blogs | |
Since I spent most of my time on Coursera, the next section will illustrate their approach in learning and my tactics to improve memory retention and practical usage.
Coursera structure
short videos
Unlike Edx which tends to have very long videos, Coursera chops videos into small chunks, usually under 6 minutes (that seems to fit the modern brain’s attention span). The video content varies per provider, with some university offerings being very static (professor just talks in front of the camera), to some lecturers using visually engaging animations and decks (e.g., IBM). Content depth also varies, with some topics just scratching the surface (e.g, some of the IBM AI ones), while others being similar to an undergraduate course.
quick quiz in a video
Sometimes in the middle of the video, a short quiz will pop up. At first I found these very distracting, but after knowing some learning theory, I kinda got their purpose to do a quick recallmto reinforce retention, or to clear up some confusion immediately. These both assist in long term memory.
hands on lab
Hnads-on-labs are usually placed in the middle of a weekly module, right after a new concept is introduced. These are good resources as they provide a timed sandbox in a vendor environments (GCP, AWS, IBM Watson) for you to practice what you just learnt, and try out different things. These are valuable not just for getting your hands dirty, but also for evaluating these cloud environments for your real tasks without upfront payment.
In general, IBM labs are very good. For example, their Tensorflow labs break down each concepts into very small manageable labs, and the markdown explanations are easy to understand. Their Generative AI labs are also very generous with a customized Watson.ai playground for you to test many different models, along with prompt engineering or programming coaching on a side-by-side explanation pane. I think their labs make up for the content depth deficiency in their videos.
module quiz
This serves as a quick recap of what you learnt in this week. Good to check proficiency before jumping into programming assignment (if any), and helpful for retrieval practice too.
programming assignments
Most technical courses will have programming assignments. Not all of them have autograders (i.e., you submit your code and the machine will check for accuracy and grade you).
The deeplearning.ai assignments usually have very thorough unit tests that can catch most logical bugs you have. Since all of their assignments are in a step by step format (i.e., you implement a function X, which is then used by a later function Y, then by func Z…..), with usually 10+ steps, unit tests along each step is a good guardrail to ensure you’re heading to the right direction and can save a lot of debugging time in later steps.
However, sometimes putting up too many guardrails dampens enthusiasm and transfer motivation to external (to complete the assignment only), which means you are learning not for yourself. And since the programming assignments are very long with rigid structure (fill in some lines of implementation, while calling pre-configured utility procs), it is very much unlike what you would implement yourself. Sometimes in the middle of the assignment, you might already forget all the functions you implemented before (if you do not use VS Intellisense outside of the assignment platform). Towards the end, it just feels like a chore to complete. Unlike building your own app, where you can implement classes to encapsulate common functions, and can freely open multiple code panes to view code definition and verify, Jupyter notebook in a classroom setting has its pros (easy to follow the teaching path with a combo of both markdown text and code) and cons (no Intellisense, cannot open the same file in multiple panes to refer to other sections)
writeups
In most of the business and marketing courses I took, you are expected to come up with real world examples that align with the concepts introduced in the coursework, and articulate the pros/cons of the example cases, or propose alternative actions. In product management courses, you are expected to follow the exact industrial practices on product development from ideation to design to experimenting to preparing a launch. All the deliverables are submitted in the form of reports, charts, drawings or video presentations. Some are peer reviewed, while some textual content are rated by AI, called Coach in Coursera. I tend to find the AI grader more consistent than peers, as it closely follows the published rubics in grading, and can often offer useful feedback for your work. You can switch to human grading if you are not pleased with its results.
capstone projects
A lot of the courses contain capstone projects to wrap up everything you learn. These are often mixed-modal, with programming, writeup, presentations to build an end-to-end solution. Sometimes a case study is provided, and sometimes you are asked to provide an industrial problem you face at work. Even if the course content might not be optimal, doing the capstones is extremely helpful as they often forcetical industrial scenarios.
forums
One thing that seems to be lacking in MOOC platforms is the real interaction among students and lecturers. Coursera’s own forums usually have active student participants, but the lecturers might not be active at all. For some courses that have confusing instructions or faulty autograder, it is hard to raise your hand and ask. deeplearning.ai, which hosts its own forums for all its Coursera courses, usually fare better in terms of responsiveness. Still, you might not expect the same level of interaction from an in-person setting, or stackoverflow.
what courses are good
Coursera has more choices than edx. If you’re aiming for the latest AI development such as LLM or Generative AI (whether from an application development or theoretical angle), Coursera has more to offer due to its association with deeplearning.ai. OTOH, edx has strong offerings on math and engineering courses too. Some institutions put identical offerings on both platforms.
Here are the Coursera courses I recommend in AI, PM, Business and Marketing. These courses really give you a good grasp of the foundations, supplement by assignments that align closely with what you learnt.
AI/CS | Deep Learning |
---|---|
PM | -
AI Product Management <br> -
Digital Product Management <br> -
Software Product Management |
Math | -
Mathematics for Machine Learning and Data Science <br> -
Analytics for Decision Making <br> -
Solving Complex Problems <br> -
Model Thinking |
Business | -
Business Strategy <br> -
Strategising: Management for Global Competitive Advantage <br> -
Strategic Leadership: Impact, Change, and Decision-Making <br> -
Foundations of Management |
Marketing | -
Data Science for Marketing <br> -
Marketing Strategy <br> -
Market Research |
how I adapt my learning style to improve effectiveness
The most effective way to improve learning is to be aware of how you learn. This is metacognition, which is a kind of self-awareness of how you do things, so you can adjust your strategy/approach as needed. It is like having an alter-ego that zooms above you, instrumenting each process and guide your next step with rational data.
use course as curation/pointers
The more courses I take, the more I see that MOOC platforms are best viewed as a curator or a tour guide. It’s just like a first time visitor to Japan who joins a guided tour so that he doesn’t need to flip through Lonely Planet or numerous travel websites/blogs to piece together an itinerary. In Coursera’s case, for example, if I have absolutely no idea about corporate finance, enrolling in this specialization will give me a bird’s eye view on what are the building blocks in this area, what should I learn to have a basic grasp in this field so that I can read corporate finance reports or listen to earning calls with my own judgment. It’s similar to the quick reading method, in which you get a skeleton of what the author covers by first scanning the TOC. In this scenario, it is reading the course outlines and objectives to understand what you are expected to learn and achieve, then use the quick quiz method to orient.
Most of the courses are solid but some really leave more to be desired. Using them as a guidance (e.g., in a particular domain, here are the most important algorithms to consider, and here are governing rules) as well as a sandbox (their practice labs are quite good to get your hands wet immediately after learning something new), they are worthwhile. However, don’t stop there but look beyond. Use the course structure as various pointers to explore outside resources. Or better yet, do a small project on your own using your newly gained skills. You will often find that you overestimate what you know. It’s often through doing that you have a real assessment of your skill level.
be mindful of your own learning style
If you don’t understand what the lecturer says, keep looking for other offerings. It might have nothing to do with your natural disposition or learning ability, but just a mismatch of your learning style with the teacher. For example, I am BOTH a visual and hands-on learner. I cannot listen to hours of proving a formula. I have to first see how it is applied to daily operations, then examine it through visual aids such as animations or charts. The latter is greatly elevated in this era with more visual media available. For example, when I learnt the transformer architecture, Andrew Ng in Transformer Network intuition explained the q, k, v matrics and multihead attention in the encoder in the best manner (for me to understand), because he lays out flatly not the what, but why we even need them in calculation. The 3D Bert poster below takes care of my visual need in understand the how in each time step.
Learning by video is often challenging for me as I prefer to iterate between reading and doing. Viewing something in a big chunk and practicing in a long assignment isn’t what is most efficient for me. But modern media all focus on video and I have to admit that animation helps tremendously in understanding multi-dimension concepts such as linear algebra and deep learning.
adopt retrieval practices
Pulling in the latest research in learning also helps to solidify your newly minted knowledge. Here we’re attempting to overcome the forgetting curve, which illustrates how memory retention declines over time. It was first introduced by German psychologist Hermann Ebbinghaus in the late 19th century. He explained that
- Rapid Decline: Memory retention drops significantly shortly after learning. Ebbinghaus found that most forgetting happens within the first hour.
- Exponential Decay: The rate of forgetting slows down over time. After a few days, the decline in memory retention becomes less steep.
- Impact of Review: Regular review and practice can help counteract the forgetting curve. Techniques like spaced repetition are effective in retaining information longer.
Spaced repetition
Spaced repetition is a learning technique that involves increasing intervals of time between subsequent review of previously learned material to exploit the psychological spacing effect. This method is particularly effective for improving long-term retention of information. Here’s how it works:
- Initial Learning: You start by learning the material thoroughly.
- First Review: Review the material after a short period, such as a day.
- Subsequent Reviews: Gradually increase the intervals between reviews (e.g., after a week, then two weeks, then a month).
- Enhanced Retention: By spacing out reviews, you reinforce the memory just as it starts to fade, which strengthens the neural connections.
For my study, when I start a daily session, I’ll try to write down one thing I remember from the same course yesterday, last week, and last month. The key is to try recalling across different lessons. Per Carpenter and Agarwal’s 2020 research, cramming (intense brain dump the night before exam) only helps short-term memory, but no effect in long-term retention. Spaced practice helps recall significantly as shown in the following image.
Repeated spaced practice improves recall. Data from from Karpicke & Bauernschmidt (2011). Image Credit: Maverick Learning and Educational Applied Research Nexus
Interleaved practice
Another strategy, interleaved practice which mix different subjects in a session also increase retrieval by 30%, per a study by Rohrer, Dedrick, & Agarwal, 2017
Blocking vs. interleaving strategy from Weinstein, Madan & Sumeracki (2018). Image Credit: Maverick Learning and Educational Applied Research Nexus
In my experience, just following the quiz and assignment does not mean that the knowledge has sunk in. To do so, I have to combine the newly gained knowledge with my existing knowledge system, to index, process, mesh, link (just like in Obsidian where you can backlink and create a graph diagram of your information). Doing the assignment just means “doing and completing”. At the end of the day, it is just 1 task completed.
I also combine PM and AI courses in the same learning session, alternating between different courses to improve connection between concepts, and reduce burnout.
use quiz as orientation
Before I start a module, I like to use quiz to quickly check if I’m familiar with the subject. Luis Serrano from Mathematics for Machine Learning and Data Science and Professor Konstan from Recommender Systems Specialization both recommend this approach. Even if you can’t make out the quiz at first try, you can use them to orient yourself. This is because usually the most important concepts will be tested. So by preemptively doing a quiz, you know the important things to look for, and in the coursework you can be more focused, like a hawk knowing both the landscape and what to hunt!
use output to consolidate learning
In terms of input/output, courses actually force you to output by having scheduled formative assessments such as in-video quiz (quickly checking if you really understand what is actively being discussed), weekly quiz (to recap the whole module and checking more in-depth reasoning) as well as programming assignment (hands on practice of what you learnt).
We can enhance our retention by mixing different output channels, such as blogging, collaboration with other learners on an opensourced project, or teaching the same material to another learner (the Feynman method).
From my own programing experience, I learn by trying to solve an existing problem that is beyond my knowledge, I google, read blogs, find some pointers, read official doc to understand how to use some library modules, implement small POC to test on toy data, then gradually read more blogs to understand how to integrate different features. I seldom program the whole algorithm in one shot (like in deeplearning.ai programming assignments). Rather, it is more like piece by piece learning. I also notice that my memory recall for some NLP concepts (e.g., n-gram, perplexity, predicting next word probability, etc.) is way stronger from this class. It is because I implemented the code all by myself without following any prompt, guardrail or lengthy description. This shows that to really sink in knowledge, you have to venture outside the classroom and freely build something on your own.
what’s next in my learning journey
Overall I am pretty happy with what I got from the Coursera subscription. The classes tend to be a sound navigator for my professional journey. In the next few months, I plan to take more courses in edx to compare, and will definitely supplement with the excellent Youtube channels I listed above. Most importantly, I will implement all the theories I learnt in my own hotel recommender project and report any interesting findings in my next blog posts!