This question was originally asked and answered on Quora, by Xavier Amatriain, VP of engineering at Quora, and a few other people also contributed. Here we provide Xavier’s answer.
There are several ways to start a career in ML since it all depends on where you are right now: Are you a CS undergrad student just about to graduate? Do you have a PhD in some science (e.g. Math, or Physics)? Have you been working as a software engineer or analyst for years? Where you are right now will determine what is your best path forward.
Let me address a couple of those possibilities:
.
(1) You are a Software Engineer with some years of experience
In this case, I would recommend you take the following steps:
- Learn some basics of ML (see My answer to Machine Learning: How do I learn machine learning? )
- Find a job or position in a team that does ML, but where your role is mostly to support software engineering (This should be relatively easy to do if you are a great software engineer and you show your interes in ML by having done (1)).
- Continue learning “on the job” and don’t miss any opportunity to get more and more involved in the details of the ML algorithms you/your team is working on
- Progressively move into doing more ML until it becomes your “full-time” job
(2) You are an CS undergrad about to graduate
- You could start a career as a software engineer and then go into (1) or…
- You could decide to do some graduate work (Master or PhD) in ML to get you jump started
(3) You are a “science” PhD or researcher
- I am assuming you have used ML and become somewhat profecient at applying it for studying data and phenomena. Otherwise, you should learn the basics of ML (see My answer to Machine Learning: How do I learn machine learning? )
- Improve your coding. You might have used some R (or worse, Matlab). I would recommend you do yourself a favor and learn Python.
- There are many places now that specialize on training people with this kind of background through Data Science boot camps and the like (see Zipfianacademy for example). I don’t know enough about these to recommend them, but it might be a good way to improve 1 and 2. There are even universities that have courses in teaching coding/software engineering to Data Scientists (see this course at UW, for example).
- Get a job as a Data Scientist and progressively move into doing more and more ML
Of course, there are infinite variations of the three situations above, and I don’t claim these simple pieces of advice are enough. But, I do hope they can help you out if you are in a roughly similar place.
.
About the Author
.
Xavier is leading the Engineering team at Quora. He enjoys working on the cross-roads of data mining, machine learning, software engineering, innovation, and agile methods. He has 10+ years of experience in research, research management & software engineering, and has authored more than 50 papers in books, journals and international conferences. Xavier is also a frequent speaker at public events. Latest talks include: KDD, Strata, ACM Bay Area Chapter, Machine Learning Summer School UCSC, ACM Recsys 2012 Conference, Google, LinkedIn, Twitter, IBM Research.