Necessary Skills:
Software Engineering:
Machine learning engineers need to have coding skills and be excellent software engineers. Because they have to deal with a large amount of data, measure performance through business impact, deploy models, and integrate them into products, understanding the internal workings of computers and building tools can improve development speed.
Many people think that learning machine learning is faster than software, but in fact, excellent software engineers have great potential in the field of AI.
Data Science:
You need to be able to handle real-world data, including collection, understanding, feature construction, and interpreting model outputs. The most difficult problems are often not memory errors, but model outputs that seem correct but are actually wrong.
You also need research skills, to identify relevant publications and replicate methods to apply to your own field.
Mathematics and Statistics:
It is difficult to quantify the mathematical skills required, but they are essential for understanding the data and selecting algorithms when dealing with problems.
You need a foundation in calculus, linear algebra, and probability theory. When dealing with large models or data sets, you also need knowledge of numerical methods and optimization theory. Understanding specific problem data also requires knowledge of statistics.
Application Domain:
Specific domain knowledge is beneficial for machine learning engineers, including understanding use cases, users, and available data, as well as expertise in specific data types and models.
Path to Becoming a Machine Learning Engineer:
Data Science Route:
Master mathematics and data work first, start using machine learning, and then learn software engineering skills. Suitable for college students with quantitative degrees.
Software Engineering Route:
Become a software engineer first, and then learn mathematics, data, and machine learning skills. Better for self-learners, because even with basic data and machine learning skills, they are useful to organizations.
Practical Resources:
Learn Coding:
Start with Python, you can choose Harvard's CS50 course as an introduction to programming and software engineering, or you can choose the University of Helsinki's programming basics course for in-depth learning, or read "Dead Simple Python" to understand the internal workings of Python.
Learn Shallow Machine Learning:
Start with shallow learning algorithms, such as Andrew Ng's machine learning specialization course.
Learn Deep Learning:
Learn after mastering the basics of machine learning, you can choose Andrew Ng's deep learning specialization course, or Yann LeCun's deep learning lectures at NYU, or choose fast.ai and related books. If you lack mathematical knowledge, you can learn related courses from deeplearning.ai.
Build Domain Expertise:
Choose a field to study in depth, you can start with Huggingface's courses, and grow from novice to expert through project practice.
Learn Software Engineering:
You can choose the Fullstackopen course to learn web development and distributed system knowledge, although it does not involve machine learning, it is very valuable for deploying models and providing user interfaces.
Learn MLOps:
Learn the full life cycle of managing and developing machine learning products from fullstackdeeplearning, choose suitable practices to apply to projects.
Summary:
According to the above guide, you can become a strong candidate for entry-level machine learning engineer positions by acquiring theoretical knowledge through learning materials and becoming an expert in certain fields through projects. At the same time, you need to demonstrate and communicate skills, which can be done through internships, project portfolios, etc. Different starting points require different amounts of time, from scratch full-time learning requires about 18 months, developers changing careers need about 6 months to learn relevant knowledge, and data scientists need to invest additional time to learn software engineering related content to break through the career ceiling.