I came to know about Google’s Machine Learning Crash Course (MLCC) from Sundar Pichai’s tweet. I then enquired about it with some close acquaintances working in Google. I was soon pretty convinced of pursuing this course, after their good words about it and my own research on the course content. This post is going to be an account of my learnings from MLCC. I will structure the learnings in such a way that it will look more like a review. I will also include what I really liked about the course and things which I think they can possibly improve, if the creators are planning to update the course content. So, let’s get started!
Structuring and Categorization
This is one of the best part of the entire MLCC and I would like to give a big thumbs up to the course creators and designers. The way they have structured the course is really commendable. I didn’t realize this initially, but later on as the course progresses, you would notice the smooth flow of the course contents. Each section of the course is completely modular. The flow of the content makes it easier to understand the sections when completed in order. However, many concepts in the modules are linked to the advanced modules. So if someone is interested, he/she can choose to jump on that topic and come back again at a later stage.
As I mentioned earlier, that I really liked the way the course has been structured. Starting with loss and gradient descent, then building through classification models and subsequently deep neural nets. The smooth flow of the topics helped me visualize the necessity of using deep neural nets when the datasets are not linear. I felt agonized when I was prodded to come up with a linear model that could solve datasets such as these:
That’s when the course instructors explained the beauty of deep neural nets to solve such type of datasets. That’s why, I am not getting tired of appreciating the course creators who did a great job of making a student crave for the next part of the module.
Content
The course content is designed in such a way that each module has a combination of video lectures, playground exercises, text lessons and programming exercises. The video lectures are pretty short and, succinct. The text lessons mainly transcribe the video lessons. I personally felt, playground exercises to be one of the best part of the MLCC course content.
I have rarely seen such interactive learning tools. These are great plug and play exercises which help in visualizing the concepts in a profound manner. But here’s a part which I didn’t like much, that is, the programming exercises. Just a small disclaimer: I have been a pretty decent Software Development Engineer and have been coding in Python (and Django) since last 3 years. This disclaimer was not even necessary but I just gave it to prove that I am not a newbie to programming and am not scared of programming either. But the programming exercises in the course just didn’t appeal to me. I felt they were disconnected inspite of the fact that the creators tried to preserve the context of various pre-built functions in the programming exercises from different modules. That’s where I felt that the exercises were a little disconnected. I soon realized that I would be much better off learning the concepts through other exercises provided in the course and learn the practical implementation by my own, later on.
Learning Outcome
The program has collaborated with Kaggle for its DonorsChoose competition. The competition is not exclusive to the people who complete Google’s MLCC. It, however, could be a great way to start the Kaggle journey and also implement the learnings accrued in a real world project.
Final verdict
It’s undoubtedly a great online course. But what I seriously think is that each person who completes the course, might take-away different learning outcomes. For some, it could be a naive repetition of the same concepts and they might feel wastage of time. So if you are a kind of person who is already into the game and have even a decent amount of experience in data modeling (including neural nets), then this course is definitely not for you. However, if you are just starting and if you have or don’t have programming experience, then you will enjoy this course. It’s pretty short and you have the liberty to decide your own pace.
Best of luck!
I have written other posts related to software engineering as well. You might want to check them out here.