Best Path for Developers to Get into Machine Learning (ML4Devs Newsletter, Issue 4)

#4・
1.39K

subscribers

11

issues

Subscribe to our newsletter

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy and understand that Machine Learning for Developers will receive your email address.

Machine Learning for Developers
The most frequent question I get from developers is: what is the best way to get into Machine Learning?
A few years back, my response was:
  • Google for best resources and learn
  • Find problems at work and apply what you learn
  • Repeat
Though that response was honest and sincere, I realized soon that it was taken as a motherhood statement. So as a more concrete reply, I narrated my path in an article: An Engineer’s Trek into Machine Learning, and I shared the link whenever someone asked.
I genuinely thought I have simplified it with that article but it was still not simple enough. The reason is fearful analysis paralysis:
  • Material available on the internet for learning ML is overwhelming.
  • Somehow it gives an impression that you must first master hard math, and that scares away people.
So, let me first say that I do NOT know what is the BEST way. but I know a reasonably good way. And starting on a reasonable good path is much better than looking for the best path.
If you are a developer, and you prefer learning by doing, here is a path that optimizes for speed in acquiring functioning knowledge. It first does a breadth-first scan of ML techniques and applies those to problems, and then explore deeper based on the problem at hand.
Step 1: Start with Kaggle micro-courses
Each of the Kaggle micro-course takes 3-5 hours. Start with these 5:
Move to Step 2, but return and do these 3 as you gain more experience:
Return to these when you feel the need to learn neural networks:
Step 2: Participate in Kaggle Competitions
Nope, I am not talking about those $$$ competitions. Checkout:
If you prefer a more structured approach, you can try:
By now you will have a good overview of techniques and some taste of applying them.
Step 3: Do an ML Crash Course or Bootcamp
The last two steps were designed to quickly get you up and running. Now is the time to scratch a bit more. Try Google’s ML crash course, or any other course for practitioners (e.g. Udemy DS/ML Bootcamp).
My advice: don’t do it passively. Apply it to a problem that you have at work or play. Maybe even try out $$$ Kaggle competitions.
Step 4: Andrew Ng's ML Course
Many people use Andrew Ng’s ML course as the starting point. It has math but not too much. I highly recommend it. It will give you a peek into what is happening behind the Scikit Learn APIs that you have been using so often. The course uses Matlab, but some people have implemented the ML course assignments in Python too.
Step 5: Neural Networks
Neural Networks are used for processing images, natural languages, and speech audios. After Kaggle DL and Vision micro-courses mentioned in Step1, you can try TensorFlow or PyTorch tutorials.
Then What?
These 5 steps will give you a pretty good practitioner’s know-how to work on various ML problems. And that is what I recommend: now apply what you have learned.
There might come a time when you will feel that you don’t know enough. But by then you would know the field and yourself well enough to figure out your next step. Maybe dive into math with An Introduction to Statistical Learning, or advance courses at DeepLearning.ai, or NLP course from HuggingFace.
Finally, on Jupyter Notebooks
While you do these courses and practice, you will be using Notebooks. But as software developers, you will also see the challenges in productionizing the notebooks. This is a continuing debate:
My opinion: tools are designed for a purpose, and we should develop judgement for picking the best tool for the task at hand. I neither love nor hate notebooks, I just use them when convenient.
Image Source: https://unsplash.com/photos/FwF_fKj5tBo
Image Source: https://unsplash.com/photos/FwF_fKj5tBo
I hope you enjoyed this issue. Do let me know what path you took from developers to data science.
Did you enjoy this issue? Yes No
Satish Chandra Gupta
Satish Chandra Gupta @scgupta

ML4Devs is a biweekly newsletter for software developers.

The aim is to curate resources for practitioners to design, develop, deploy, and maintain ML applications at scale to drive measurable positive business impact.

Each issue discusses a topic from a developer’s viewpoint.

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.