My personal story behind the creation of mlcourse.ai

In this post, I’d like to share my personal story behind the creation of a large-scale, open and free Machine Learning course mlcourse.ai.

During my Master’s studies I was already working full-time as a Business Intelligence architect, then started learning Java. Had a couple of crazy business trips to Perm (a remark for non-Russians: it’s almost Siberia) and realized that I don’t want to follow this path otherwise, my future is too predictable, even a far-fetched future. Switched to Ph.D. studies and actually never regretted it. Even though only ~0.1% of Ph.Ds actually make a difference, and my work is definitely among those 99.9% rest. As a full-time Ph.D. student you have to make your living somehow, and the fact that my father died just when I entered the program also never helped. So I thought of some part-time options.

At the same time I started both giving lectures (everyone in academia is deeply involved in teaching) and learning a lot myself (I would pick up 3-4 Coursera courses at the same time). For me, that was the way to quickly gain knowledge and fill many gaps. Moreover, I was merely seduced by the beauty of Machine Learning (yes, via Andrew Ng’s course) and wanted to understand the foundations.

Teaching while not being an expert

Yes, it’s a bit embarrassing to say, but you learn a lot while teaching. Embarrassing because you are supposed to be an expert sharing your wisdom and experience with students but you’re definitely not at all an expert. But if you don’t start teaching for this reason, you’ll never start teaching. So I thought that to cope with my imposter syndrome and to earn for a living I need more challenge. That’s how I started teaching in corporations. It was a completely different story as compared to academia, in terms of motivation (higher among CS students), material (more theoretical vs. business-related stuff), wages (10-20x higher in corporate teaching of course), etc. At that time, 2014-2015, such corporate training only started to appear in Russia, and again, the first versions of my course lacked a crucial part – practical experience. I was doing my Ph.D. research and had a couple of small projects but it was only in 2017 that I actually stepped into DS and “adult” ML, with Mail.Ru Group, a Russian IT giant. So you see, it’s easy to troll me here – I gave a lot of lectures not being an expert but gaining experience in parallel with my students.

Launching an open ML course

What I didn’t like about corporate training is motivation. I enjoyed the fired eyes of my CS students much more (btw, it’s Higher School of Economics, Moscow). And once I got rid of imposter syndrome, I noticed another problem - I didn’t feel comfortable anymore explaining basic stuff (Pandas or decision trees) in corporate courses. A turning point was a seminar on Python basics that I gave to two middle-aged women (no sexism) who were not even very comfortable with laptops let alone coding. Around the same time, I joined OpenDataScience and pretty soon wrote to Alex Natekin with an idea to organize an open ML course. The initial idea was just to write a bunch of articles on Habr.com, from Pandas to gradient boosting, then add some assignments, and eventually came up with the idea of launching a full course with a motivating rating.

That’s where mlcourse.ai gained nice momentum, I found a lot of help in ODS – we added Kaggle competitions, individual projects, tutorials, etc. at the same time working on the PR part so that one day even Anthony Goldbloom retweeted (hah, I know it’s still kindergarten PR as compared to the full commercial PR). Until I realized that 3 years is a pretty big time investment and I need to go further. It’s very boring to discuss such things but what you see at mlcourse.ai is only a tip of the iceberg, 95% of the whole work is done in the background (just think about translating everything from Russian into English, maintaining the quality). I estimate that I invested around $50k equivalent of my time into mlcourse.ai but again, just like with Ph.D. studies, I never regretted it (and of course it’s weird to express the time that you enjoyably spend on some activity in bucks).

The reasons for me to start the whole thing

Why did I even start the whole thing? Did I run it completely for free? I used to respond to these FAQs with what I call “presumption of motivation”: if a person A is putting a lot of effort into activity B then person A has some motivation to do so and has some benefits from activity B. It’s not about money. Yes, we have Patreon, and after each mlcourse.ai session participants donated about $2k in total but you know it’s not at all a commercial story, barely sufficient to cover the costs (website hosting, some assistants, translation proofreading, etc.). But I kept going with corporate training alongside mlcourse.ai and actually working with ML in the industry (oh yeah, that was tough, especially with my Ph.D. defense looming over), and that was beneficial both for mlcourse.ai and for corporate training (but rather harmful to the main job and Ph.D. thesis of course). So in the end, all of that was monetized but indirectly.

Time to move on

Now’s the time to move on. I’m joining another company in the Netherlands as a Senior ML Scientist and will be doing a lot of NLP, back to research again but in a corporation. It’s very easy to get distracted here and tell you how helpful Kaggle was at some point when I only entered a new domain, NLP. But stay tuned, I plan to share more on Twitter in a fortnight.

In my adolescence, I imagined that at the age of 30 I’ll be happy with my main job working in an amazing team on cutting-edge things. I still have 8 months :) Well, I have an amazing team at KPN (Dutch telecom operator) but I’m not working there on cutting-edge stuff and therefore not fully satisfied. Hope the next position will be closer to my ideal, so far I was distracting a lot from the main job on all these side projects and organizational activities (and to be honest I’m not typically fascinated with merging ids, writing SQL queries and you know, the rest of actual DS job). High time to invest more into a personal career, not only for money (well, of course, money is also a valid factor, I’m not hypocritical) but to achieve a position where you are willing to invest all time into the main job.

Self-paced mlcourse.ai

That all shed some light on the reasons for turning mlcourse.ai into a self-paced mode. The previous night I was in a rush with announcing a roadmap for that. I said I’m going to describe how we help organize other courses – realized it’s a bit of an exaggeration. I really don’t plan any more courses ormlcourse.ai live sessions. And I’m staying away from tutoring for a long period. However, currently, I’m helping a couple of other courses, organizationally. This is likely to go on, the spirit of mlcourse.ai living in the background, embodied at least partially in other courses. Ah, that sounds a bit pathetic again, sorry. Oh yes, one more reason for sure is that I’ve got a newborn, and it’s no longer possible to live the crazy life that I lived recently in Moscow. That’s also the reason for me to stop my narration here (those with kids will understand). Here I am on Twitter, I will likely share more here. Cheers!