By: James Wu, CEO & co-founder at AdaptiLab
A couple weeks ago, Allen Lu posted a blog describing his experience working on machine learning at Google and Microsoft. We received a lot of great feedback and requests to talk more about what it took to get those positions, so this post will discuss the current state of machine learning education specifically in the context of helping people succeed in industry engineering jobs.
There are currently two main avenues for structured learning: university classes and MOOCs. There also exists a third option to simply learn from open source documentation and online code tutorials. This is often better suited for people who already have a background in machine learning and are more interested in learning a particular application, such as image recognition, or a specific deep learning package, such as TensorFlow, CNTK, or PyTorch.
The value of theory versus practice in university computer science classes has been hotly debated for a while. Many schools now offer "Software Engineering: Design & Implementation" classes that focus specifically on helping students build software engineering projects in a team environment. The classes teach industry standard engineering practices during lecture and the majority of the grade is determined by the quality of the projects completed. Tests on theory are trivial or non-existent. These types of classes are well received by students, and many signup to get experience for industry jobs or build projects to include on their resumes when recruiting. The trend is abundantly clear: a majority of computer science students want to become engineers and work in industry, not pursue research or theoretical work in graduate school or beyond.
However, despite schools offering many practical software engineering, UI/UX design, and even data analytics courses, most university machine learning courses remain theoretical, especially courses concerning deep learning topics. Students are expected to have strong math foundations and are often tested on proofs or concepts rather than their ability to code models and apply them to real world datasets. Even coding assignments tend to reduce practical coding value by providing curated datasets, narrowing the scope of the problem to implementing certain functions, or failing to consider model tuning and performance. Considering data preprocessing, feature engineering, and efficient model deployment make up a majority of a machine learning engineer's time, this is a painful oversight when it comes to preparing students for industry machine learning.
Finally, the most obvious flaw to using university courses to prepare for industry machine learning is inaccessibility. University is expensive and classes take several months to complete. It is unrealistic for anyone other than an already-enrolled student to rely on university courses to arm them with the practical skills they need to land and thrive in a machine learning job.
Massive Online Open Courses (MOOCs)
MOOCs solve the university courses' accessibility problem by offering full classes to anyone with access to internet. They are reasonably priced or sometimes even free. Classes consist of videos of professors giving lectures online, and downloadable assignments that can be completed locally and submitted for grading. Some even have forums and teaching assistants for real-person help. However, at the end of the day, most deep learning MOOCs are still just university classes converted to an online delivery medium. The content remains mostly theoretical and it becomes even harder to effectively administer coding assignments that test the skills needed for industry.
It is undeniable that university courses and MOOCs teach significant machine learning content. The best courses provide a strong theoretical foundation for learners to conduct research and pursue graduate school. At the same time the disconnect between teaching style and content and the skills needed to become an industry engineer, is what inspired us to create AdaptiLab.
At the heart of the problem is traditional courses give delivery through lectures (whether in person or on video). Lecture-based classes teach theory and then assign code to supplement the lecture, so the assignments are unstructured and often unrelated to each other, which is the exact opposite of an industry engineering project. They also lack the tools to provide immediate feedback on the code learners write.
AdaptiLab's interactive classes teach code and then provide instructions and explanations to supplement that code, so the instruction style is more oriented towards building end-to-end solutions for industry applications and problems. With this thesis, we've built our Labs to bridge the gap between theory and the industry standard for machine learning engineering, and we're offering this solution at a fraction of the invested time and cost.
By: James Wu, CEO & co-founder at AdaptiLab