Ask HN: How can I become a machine learning engineer?

2 points by Invictus0 ↗ HN
I will be graduating with a bachelor's in mechanical engineering this spring. Throughout my college years, I was unsure whether to pursue ME or CS, but ultimately stuck with ME. It was impractical to do both. I applied to computer science internships throughout college and was accepted to a few programs, but ultimately turned them down to give mechanical engineering a shot. Now that my school years are coming to a close, I want to give software engineering another shot.

Along the way, I learned to write Python and C code, and I am very strong in Python today. I have taken college courses in statistics, differential equations, linear algebra, and optimization (constrained and unconstrained, gradient and discrete methods). I like optimization and am comfortable in Python and I think machine learning makes sense for me as a gateway into a software engineering career.

I am aware of tools such as [1] but I don't like that after investing 2000 hours in the curriculum, I still would not have learned any new technologies.

What essential technologies and computer science concepts do I need to learn to get hired as a machine learning engineer as soon as possible? What self-study courses and resources can you recommend?

[1] https://teachyourselfcs.com/

3 comments

[ 4.0 ms ] story [ 19.6 ms ] thread
Consider applying to something like the Google AI Residency if you're interested in research roles; Facebook, Uber and Microsoft have equivalents, though I don't know the names off the top of my head.

Also consider just applying to roles right now, you can always apply again later.

Also, ML is really hot right now, and while you are well positioned (given your math background that a lot of CS people lack), there are several orders of magnitude more software engineerings roles than ML roles, so if ML is only a path to work in software, consider just applying directly to general software engineering roles as well.

If you do plan to do additional learning, do a project of some kind, and don't just read a bunch.

The reason I want to start in ML is because (as I understand it) Python is the language of ML and I am already well-versed in Python, and I also already have some background in optimization methods, whereas software engineering in general requires knowledge of a lot more languages/technologies and general CS concepts which will take some time to gain proficiency in.

What technologies do I need to learn to perform well in a ML role? What are some examples of a tech stack that I might be expected to work with?

Also, I have attended a number of hackathons in the past but mostly used them as learning opportunities and rarely finished projects or wrote any good code. Should I leave those on my resume or take them off?

You would be surprised how little you actually need to know for most software engineering roles. All of the things on the website you linked are generally dealt with by specialists in industry, rather than being a shared responsibility of all software engineers.

The tech stack for ML usually involves some data processing framework, e.g. Apache Spark or Dask or something like that. Some actual ML training system, e.g. scikit-learn, Spark's mllib, TensorFlow/PyTorch for the deep learning stuff that is hot right now, particularly for computer vision/NLP work. And then whatever general programming language the company uses for deploying code into production.

I'd keep your hackathon stuff on your resume.