If you are interested in pursuing a career in machine learning and don't know where to start, here's your go-to guide for the best programming languages and skills to learn, interview questions, salaries, and more.
Machine learning engineers-i.e., advanced programmers who develop artificial intelligence (AI) machines and systems that can learn and apply knowledge-are in high demand, as more companies adopt these technologies. These professionals perform sophisticated programming, and work with complex data sets and algorithms to train intelligent systems.
While many fear that AI will soon replace jobs, at this phase in the technology's development, it is still creating positions like machine learning engineers, as companies need highly-skilled workers to develop and maintain a wide range of applications.
To help those interested in the field better understand how to break into a career in machine learning, we compiled the most important details and resources. This guide on how to become a machine learning engineer will be updated on a regular basis.
What is machine learning?
According to TechRepublic writers Hope Reese and Brandon Vigliarolo, machine learning is a branch of AI that gives computer systems the ability to automatically learn and improve from experience, rather than being explicitly programmed. In machine learning, computers use massive sets of data and apply algorithms to train on and make predictions.
Machine learning systems are able to rapidly apply knowledge and training from large data sets to perform facial recognition, speech recognition, object recognition, translation, and many other tasks.
Why is there increased demand for machine learning engineers?
Demand for AI talent, including machine learning engineers, is exploding: Between June 2015 and June 2018, the number of job postings with "AI" or "machine learning" increased by nearly 100%, according to a report from job search site Indeed. The percent of searches for these terms on Indeed also increased by 182% in that time frame, the report found.
"There is a growing need by employers for AI talent," Raj Mukherjee, senior vice president of product at Indeed, told TechRepublic. "As companies continue to adopt solutions or develop their own in-house it is likely that demand by employers for these skills will continue to rise."
In terms of specific positions, 94% of job postings that contained AI or machine learning terminology were for machine learning engineers, the report found. And 41% of machine learning engineer positions were still open after 60 days.
"Software is eating the world and machine learning is eating software," Vitaly Gordon, vice president of data science and software engineering for Salesforce Einstein, told TechRepublic. "Machine learning engineering is a discipline that requires production grade coding, PhD level machine learning, and the business acumen of a product manager. Finding such rare people can uplift a company from a follower into a leader in their space, and everyone is looking for them."
What are some machine learning engineer job roles?
Machine learning engineers can take a number of different career paths. Here are a few roles in the field, and the skills they require, according to Udacity.
Software engineer, machine learning: Computer science fundamentals and programming, and software engineering and system design
Applied machine learning engineer: Computer science fundamentals and programming, applying machine learning algorithms and libraries
Core machine learning engineer: Computer science fundamentals and programming, applying machine learning algorithms and libraries, data modeling, and evaluation
What programming languages are best to learn to become a machine learning engineer?
Python and R are the most popular programming languages for machine learning, data science, and analytics, according to a KDnuggets survey. Python had a 66% share of voters who used the tool in 2018-an increase of 11% from 2017. Meanwhile, R had a 49% share in 2018, down 14% from 2017.
When developing machine learning applications, the training and operational phases for algorithms are different, as reported by our sister site ZDNet. Therefore, some people use one language for the training phase and another one for the operational phase.
"For 'ordinary machine learning,' it does not matter what language you use," Luiz Eduardo Le Masson, data science leader at Stone Co., told ZDNet. "But when you need to have real online learning algorithms and inferences in realtime for millions of simultaneous clusters and respond in less than 500 ms, the topic does not only involve languages, but architecture, design, flow control, fault tolerance, resilience."
What other skills are required to become a machine learning engineer?
Generally, machine learning engineers must be skilled in computer science and programming, mathematics and statistics, data science, deep learning, and problem solving. Here is a breakdown of some of the skills needed, according to Udacity.
Computer science fundamentals and programming: Data structures (stacks, queues, multi-dimensional arrays, trees, graphs), algorithms (searching, sorting, optimization, dynamic programming), computability and complexity (P vs. NP, NP-complete problems, big-O notation, approximate algorithms), and computer architecture (memory, cache, bandwidth, deadlocks, distributed processing).
Probability and statistics: Formal characterization of probability (conditional probability, Bayes' rule, likelihood, independence) and techniques derived from it (Bayes Nets, Markov Decision Processes, Hidden Markov Models). Statistics measures (mean, median, variance), distributions (uniform, normal, binomial, Poisson), and analysis methods (ANOVA, hypothesis testing).
Data modeling and evaluation: Finding patterns (correlations, clusters, eigenvectors), predicting properties of previously unseen instances (classification, regression, anomaly detection), and determining the right accuracy/error measure (e.g., log-loss for classification, or sum-of-squared-errors for regression) and an evaluation strategy (training-testing split, sequential vs. randomized cross-validation).
Applying machine learning algorithms and libraries: Standard implementations of machine learning algorithms are available through libraries, packages, and APIs (such as scikit-learn, Theano, Spark MLlib, H2O, and TensorFlow). Applying them effectively means selecting the right model (decision tree, nearest neighbor, neural net, support vector machine, ensemble of multiple models) and a learning procedure to fit the data (linear regression, gradient descent, genetic algorithms, bagging, boosting, and other model-specific methods), as well as understanding how hyperparameters affect learning.
Software engineering and system design: Machine engineers are typically working on software that fits into a larger ecosystem of products and services. That means they need to understand how the different parts work together, communicate with the parts (using library calls, REST APIs, and database queries), and build interfaces for your piece that others can use. This involves knowing system design and software engineering best practices (including requirements analysis, system design, modularity, version control, testing, and documentation).
What is the average machine learning engineer salary?
Machine learning engineers in the US earn an average salary of $134,449, according to data from Indeed. In terms of AI-related jobs, it comes in third place for salary, after director of analytics ($140,837) and principal scientist ($138,271).
Where are the hottest markets for AI and machine learning engineer jobs?
New York City has the highest concentration of AI jobs, with nearly 12% of all AI job postings found there, according to Indeed. New York also has the highest concentrations of data engineer, data scientist, and director of analytics job postings of any US metro area, potentially supporting the media, fashion, and banking industry centers located there, Indeed found.
Following New York City in AI job concentration is San Francisco (10%), San Jose, CA (9%), Washington, DC (8%), Boston (6%), and Seattle (6%). San Jose has the most postings for machine learning engineers in particular, along with algorithm engineers, computer vision engineers, and research engineers.
What are some typical machine learning engineer interview questions?
Those applying for machine learning jobs can expect a number of different types of questions during an interview, testing their skills in mathematics and statistics, data science, deep learning, programming, and problem solving.
Some questions that a machine learning engineer can expect to be asked during an interview include:
What have you been working on for the past few years?
What AI and machine learning tools are you familiar with, and how proficient are you in them?
What do you do to stay on top of changing technologies?
How do you clean and prepare data to ensure quality and relevance?
How do you handle missing or corrupted data in a dataset?
What are the ethical implications of using machine learning?
It's also important for the job applicant to arrive at the interview with questions for the hiring manager, Dave Castillo, managing vice president of machine learning at Capital One told TechRepublic.
"An interview is a two-way conversation," Castillo said. "Just as important as the questions that we ask are the questions that candidates ask us. We want to ensure that not only is the candidate the right choice for the company, but the company is the right choice for the candidate."
Where can I find resources for a career in machine learning?
There are different paths into a career as a machine learning engineer. A good place to start is by learning a programming language like Python, R, or Java. For machine learning specifics, a number of Massive Open Online Courses (MOOCs), online programs, and certifications are available, including classes on Coursera and edX, and a nanodegree from Udacity.
You can also gain practical experience through doing real projects on real data, on sites like Kaggle. Joining local organizations such as meetups or hackathons to learn from others in the field can also help.