Make the most out of Your MOOC

Have you ever been disappointed with a MOOC?

I have been, more than once, even with very high-quality courses.

But… why? As someone who has completed more than 50 MOOCs, I learnt that to ask questions is the best way to learn. Then again, why the disappointment?

I think the key part is “high-quality” MOOC. My disappointment wasn’t with the quality of the lectures (outstanding), nor with the quality with the courses’ platform (excellent).

It wasn’t with the assignments, nor with the final grades.

My disappointment was with myself and my approach to learning.

Ask Questions

Do you still remember when you were a college student?

I do, and I especially remember that sort of rush I felt with every class. As a young student (graduated with honors!), I really wanted to learn everything I could but without spending too much time, so I could get out of school and start working.

That still makes sense to me, and I do believe I left school with a nice load of useful knowledge. I got my first positions as engineer thanks to that, indeed.

I argue, though, that such an approach doesn’t make sense for lifelong learning. We aren’t in college, not anymore. I don’t really see why professionals, who are in love with continuous learning, should run their way through a class, instead of taking their time and make the most out of it.

I know not only from first-hand experience, but also from interviewing other, excellent MOOC students, that such sense of rush is real.

Why is that, anyway? Why would you feel rushed to complete something that’s said to be “self-paced”? Is it because of the completion certificate? Or because we feel the class is just something in the way, respect to our real life?

I am not sure what the reason, but I knew this was something that I had to change. Simply because every additional day that is spent meaningfully working on the class, it’s a day where the knowledge grows. Even if this delays completing the class, is it something I should care about?

Experiment

Lifelong learning is much closer to human science than to engineering or mathematics. There’s no universal formula and to truly understand something there’s no better way than to experiment with it.

Once I realized the key elements of my disappointment with my MOOCs, I decided to experiment with a new, challenging class.

Despite a B.Sc. in Software Engineering, I always felt one element was missing from my knowledge. How to build a new programming language?

I knew it had to do with Compilers and Formal Grammars, but I never really studied those. I think that’s quite understandable as my master studies were on a different subjects – yet I wanted to fill this hole in my knowledge.

Finally, I had the perfect excuse to work towards both goals at once: to learn about a subject I find truly fascinating while improving my self-learning skills.

Here’s the key points I decided on, as part of this experiment:

  1. Select top-notch class, as well as top-notch, well-known books.
  2. Assign to myself a very challenging project, to complement the studies.
  3. Write down just everything. I’ll say it again: Everything. Write down the notes while taking the class, write down thoughts, ideas etc. Even more important: write them down as if I was explaining the subject to someone else. As they say – If you can’t explain it, you don’t really understand it.

The class

My opinion is quite firm here: great professors (and great educators) teach even the simplest class.

I was once contacted by a very well known video-courses platform, and they asked me if I was interested in creating a course on Deep Learning. I am fairly fluent on that, but not as much as a teacher, so I answered – you should find someone more experienced than me on this subject, to create a class.

They replied –_ we have classes of all levels, hence you can create a basic one_. I don’t like this answer. In my university, top-professors teach even “Basic of Programming”. Anyway, guess what, I didn’t create the course with them.

For my experiment I selected the Stanford class Compilers, given by Alex Aiken and available for free on Stanford’s platform Lagunita. Feels pretty top-notch to me!

The project

My project-idea is similar to projects assigned to college students as part of the final grade, but a bit tougher.

After all, I am not in college anymore, and challenges make us tougher.

Thus, for this class I decided to think big. I decided to build a new programming language, from the ground up.

Later, as I studied the course I discovered that many steps could be automated. I decided not to do it. I wrote every single line of code myself, for the sake of learning.

You may ask: is that worth?

In other words, such a challenging project is very likely to go nowhere except my GitHub profile. I have always been aware of the complexity of the task, and that I will need to make some compromises here and there (for example, eventually I didn’t support OOP).

Here we go back to the point I was making before. Of course it’s worth. Why should I be in a rush? Nobody was chasing me, I decided spontaneously to study Compilers because I wanted to.

If a very complex project makes me a better learner, then I’ll take it.

Write It Down

To write down everything is the most important part of my concept. Here’s how I implemented it.

Keep in mind that lectures are organized in subsets (by topics) as in every class. For example, there would be 4 video-lectures on Tokenization, before moving on to the next subset (e.g., Parsing) for 3 more video-lectures, and so on.

  1. While watching a class’ video, I took notes exactly as I would do if I was physically in the class. I used docs.google, mainly.
  2. Before moving on to the next set of lectures, I re-wrote everything. More precisely, I prepared a few articles on that sub-topic, as if I had to explain it to another student.
  3. Yet, before moving on to the next sub-topic, I implemented (in C) the algorithms that I had studied so far.

The second point is really the key, in my opinion. The objective of each article is to answer specific questions (here we go again!) as if they were asked by someone who didn’t watch the lectures. The answers start easy, as direct replies to the questions, but then go really, really deep in the subject.

Results

Quite frankly, the whole experience has been fantastic!

I feel like I’ve learnt so much more than in any other MOOC. That isn’t to say I consider myself an expert on Compilers, or that I am ready to join a team that is building the next Python.

This is NOT one of those articles “How I became a XYZ expert in 1 year”. That is ridiculous. Just go to some lawyers or doctors after a couple of online classes and tell them “yeah– I am an expert lawyer/doctor now!”. One year is enough just to grasp the basics.

But I can definitely tell you that my self-learning experience has improved immensely. And after that class on Compilers I kept following the same approach on all my other MOOCs.

Each class takes much longer, sure. But what results! Furthermore, as a way to self-accounting, I publish every article I write as part of this learning strategy. For example, you can find the articles I wrote for the Compiler class here.

Conclusion (and References)

One recent publication that is interesting to me is this article. I don’t want to comment on the claims that they became an “AI engineer” in 2 years without previous coding skills. I’ve already spoken about this in the previous section. I want to focus instead on their section about the “MOOC Hype Train”. The author says they were stuck in a “MOOC self perpetuating cycle”, and that the biggest downside for them was “the brevity of the content covered”.

I think that, if anything, my approach avoids problems with the brevity. The platform’s offer is important of course, but not too much. I took on myself a complex challenge exactly because this allowed me to go far beyond what’s said in the lectures and explore further.

There’s a lot of talking online on why “MOOCs failed”. I don’t believe they failed, but I do think they are on the wrong path. Nonetheless, these many articles are hugely misleading, in my opinion. For starters, they focus on a very small minority of MOOC platforms, that, as correctly pointed out in this answer, are quite difficult. Therefore, the statistics on course completion is to be taken with a grain of salt, and as I have pointed out endless times in my article, motivation is the key. Lifelong learners should be naturally self-motivated.

The one failure I agree on is about localization of the students. MOOCs were originally presented as a way to provide high-quality education to everyone, no matter the geographical location. But as it turns out, the majority of MOOCs students are from developed countries. I guess I am part of this “problem”. This is a very important problem, and not one I have a recommendation on.

Another criticism often moved to MOOC is about their business model. In fact, I have the same impression of the authors of this article: MOOC platforms have become just a way for top-university to outsource their courses and make even more money. I think this is the reality for EdX, Coursera, Udacity. And it’s very unfortunate. On the other hand, motivated learners have no reason to complain. The knowledge is out there. If one is really interested in learning about a subject, and motivations are stronger than “just having one more certification”, in other words if passion for knowledge is the real motivation, then I have no doubt that lifelong learning is a reality.