Machine learning and artificial intelligence is riding the hype train, big time. There is no shortage of hyperbole about what AI can do for businesses, and how easy some companies are making it to integrate with every application you have.
It is true that artificial intelligence (AI) and machine learning (ML) are upending a number of industries and, as technological advancements tend to do, automating some people out of a job. That trend will continue.
Are the machines going to replacing vast numbers of we lowly humans anytime soon? I think not. We have some time before that happens. Are terminators going to come into existence and begin killing us off? Not so much.
I'm not here to predict the future though, I'm here to talk about getting one of these awesome machine learning jobs.
After my talk at Machinery.ai yesterday I received questions about finding jobs in the machine learning field. The most often question I heard by far was this:
Do You Need a PhD?
Wait for it…!
It depends on the type of job you're looking for.
In my experience I have seen people fall into one of three categories in the machine learning space:
- People who write machine learning algorithms either as part of their research or to apply to their work.
- People who implement the algorithms written by Type I's and have a deep understanding of them.
- People who implement the algorithms written by Type I's and are learning on the job.
Type 1: The PhD
If you're interested in being Type 1 you need a PhD. in Computer Science or a related technical/quantitative field, or a lot of experience. Employers will probably ask that you have a number of years of experience working with natural language processing (NLP), computer vision, machine learning, algorithms, data mining and/or machine intelligence (artificial intelligence). Additionally you'll need experience with C/C++, Java or Python.
These are the folks getting hired at companies like Google, Facebook and Airbnb with job titles including Research Scientist Machine Learning and Software Engineer Machine Learning.
Type 2: The Data Scientist
Generally speaking, data scientists are those who understand well the algorithms used in machine learning and how to apply them to data to help solve business problems. Many times these are folks who have a Bachelors or Masters degree in computer science, statistics or mathematics, and experience with natural language processing, predictive modeling, recommendations/personalization, and exploratory analysis. Additionally, they've used tools like Python and/or Java, Spark, Hadoop and other data processing technologies.
I'd be lying if I didn't tell you the job descriptions with “data scientist” in the title are all over the map and depend greatly on the employer. Generally though what I see requested are the credentials above.
One other note here is that I've found data scientists have varying degrees of engineering experience. I've seen some who can only work with CSV files whereas others can both apply algorithms and create an application in production so others can utilize them.
Type 3: The Software Engineer
Type 3's are software engineers getting into the world of machine learning and data science. Typically they have a degree in computer science or another technical field. They have a solid grasp of programming languages including Java, Python or Scala, and have experience writing, deploying, maintaining, monitoring and scaling applications. Many times Type 3's will work side-by-side with data scientists to productionize their algorithms and models.
Now they Type 3 is expanding his or her skills to include machine learning, having worked with or around data scientists and wanting to expand into other areas.
Type 3's are the people I created Introduction to Data Science for Software Engineers for.
Recommendations for Those Looking For a Job In Machine Learning
The most important questions you can ask when looking for a machine learning job are:
- What are you good at?
- What are you interested in doing?
- What are you not interested in doing?
As an example, you may say:
- I'm good at doing analysis. I'm an analytical person!
- I'm interested in performing different types of analyses on large amounts of data
- I'm not interested in developing large applications
Based on that I would recommend going the data science route. You'll need to learn Python and perhaps a few other languages along the way to perform your analyses, however depending on the employer you may not have to worry about things like infrastructure or some of the other things necessary to productize your work.
Having said that, the more skills you have and the further you can take your work the more in-demand you will be.