DEV Community

Cover image for How to learn ML as a Software Developer?
Roland "Akio" Salunga
Roland "Akio" Salunga

Posted on • Updated on

How to learn ML as a Software Developer?

Disclaimer: I am still in the process of learning and claim no expertise in the field of Machine Learning, this post is based on my current experiences while learning ML and the techniques that have worked for me.

-

"Machine learning is something every developer at every company needs to know about, right now." - Kevin Scott, Microsoft CTO

Machine Learning is undeniably todays buzzword. You can see or hear it almost everywhere and everyone is getting into ML, companies are implementing this technology to improve their products, and developers are also riding the trend.

However, there are still questions from developers that I see everywhere that even myself had asked once, questions like "I don't have a PhD, is there a way to learn ML?" or "I'm no good at math, can I still learn ML?". The answer is, there's always a way and of course you can!

But, before we go into the actual "how-to"s, we first need to understand what Machine Learning is, how it works, and examples of its implementations.

What is Machine Learning?

Image source: varonis.com

Machine Learning is a subfield of AI that enables a software perform a task without explicit programming or rules, it does this by learning patterns from data using algorithms (i.e Regression, SVM, etc...). Examples of ML implementations are recommendation systems from Amazon and Netflix, Paypal's fraud detection, and predicting stock prices.

Deep Learning is a subfield of Machine Learning that uses algorithms inspired by the structure and function of the human brain called Artificial Neural Networks or ANN. Examples of DL implementations are Tesla's autopilot and Google DeepMind's AlphaGo.

Okay I understand, now how do I learn?

The answer is simple, you learn by doing. Okay let me give you an example, when you want to learn a new language or maybe a framework, you install it on your machine then read the docs or watch a tutorial video and at the same time type on your IDE, right? This, I think is the "Software Developer way of learning".

Assuming you already know Python or R, you can do the same with Machine Learning even without mastering the math and theory behind it. Yes, you read that right! But don't get me wrong, knowing the math and theory behind the ML models are still important.

What we are doing here is called top-down learning which is an approach to quickly learn the high-level step-by-step process of a subject first before dedicating your time learning the theory. This approach is the opposite of traditional way of learning (learn theory; do things later) known as bottom-up learning.

Really? You serious? Does that work?

Yes really, yes I'm serious, and yes it does work, at least for me. I guess it's because the feeling is more familiar when learning new languages or frameworks where we first dip our toes and see how it works (and feel excited) before dedicating more of our time. In fact, this approach is also recommended by Adrian Rosebrock and Jason Brownlee who both have a PhD degree in Computer Science and AI, respectively.

Sounds convincing, now where to start?


Great question, I currently use 3 sources to learn ML:

For starters, I recommend to follow Machine Learning Mastery's getting started guide or Sentdex's Practical ML w/ Python video series. Both are very easy to follow and beginner friendly.

All three sources have Deep Learning series in them, but if you are like me and want to focus on Computer Vision and its DL implementations, then I recommend PyImageSearch.

These are only my personal recommendations, there are other blogs and platforms out there to learn ML (i.e Coursera, fast.ai) and I encourage you to check them and see what works for you, or you can follow Daniel's custom learning module:

With no prior knowledge of Machine Learning, I didn't know where to start from. After doing some researches online, I created my own learning module and I found it pretty effective. So I want to share how I learned about ML:

  1. Standford Machine Learning Course on Coursea

    • You will gain mathematical understanding/notions of ML algorithms
    • You will gain exposure to different types of ML learning
    • Hence the course uses Octave, I recommend understanding concepts only.
  2. Python Review

    • To understand its syntax and data structures
  3. Aurélien Géron - Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow_ Concepts, Tools, and Techniques to Build Intelligent Systems-O’Reilly Media (2019)

    • Hands-on code examples alongside ML algorithms + explanations
    • It covers various areas of ML - Deep Learning, NLP, Supervised Learning, Unsupervised Learning, Reinforcement Learning, etc.
  4. Kaggle Competitions

    • A collaborative website for data scientist and ML engineers where you can play with real datasets and compare your finding to other people's works!
  5. Interest in Data Science?

    • "Data Mining by Charu C.Aggarwal" is a great book to start with!

Next steps and other tips

When you're done or much better while you're still at it, start a couple of mini-projects implementing what you've learned so far then push it on your Github or write an article about it. This will not only be an addition on your portfolio but will also test your knowledge (sort of like a personal quiz).

If you love reading, I recommend to get yourself a book about ML (e-book is fine too) or read ML research papers and implement what's written via code, this is a tip that I frequently see on other blogs. Although I never done this I believe its also a great resource to learn, specially when it comes to theory and math behind the ML models.

Finally, join an online AI community or your local one, not only will they serve as your support group while learning where you can ask questions but also will be your personal network. After all, nothing is more better than an actual human-to-human interaction.

-


If you've come this far, I'd like to thank you for taking the time to read my article. I hope I managed to give you a tiny push to start learning ML, all the best and good luck!

Cover image credits: Geeks4Geeks

Oldest comments (9)

Collapse
 
youssef profile image
Youssef Ameachaq

This article is worth to be shared. Bravo.

Collapse
 
rsalunga29 profile image
Roland "Akio" Salunga

Thank you! I'm glad you liked it!

Collapse
 
lautarolobo profile image
Lautaro Lobo

Good article man. I always recommend Python Crash Course, that book is perfect for Python beginners willing to get into Data Science and/or Machine Learning. It has Python from top to bottom and some projects. Also for theory, MIT Deep Learning lectures are on YouTube (2019 and 2020 coming out now), that's an awesome resource too 😉

I actually do bottom-up-learning when getting into ML and Deep Learning. And I've just realized that I got into web dev on the other way instead, doing top-down-learning; building first and reading after. Interesting 🤔

Thanks for sharing!

Collapse
 
rsalunga29 profile image
Roland "Akio" Salunga

Thank you! I'm glad you liked it :). Would you mind to share the link for MIT DL lectures for everyone to see? Also that's a cool story haha, I'm interested to hear your experience learning web dev the traditional way vs bottom-up learning for ML.

Collapse
 
lautarolobo profile image
Lautaro Lobo

I may write something about it...

youtube.com/playlist?list=PLtBw6nj...

There it is, MIT's Deep Learning :)

Thread Thread
 
rsalunga29 profile image
Roland "Akio" Salunga

Bookmarked! Thank you!

Collapse
 
rsalunga29 profile image
Roland "Akio" Salunga

Thanks for sharing this Daniel! I'll include it in my article for everyone to see :)

Collapse
 
anahit33 profile image
Anahit Ghazaryan

Machine learning app development has been gaining traction among companies from all over the world. When dealing with this part of machine learning application development, you need to remember that machine learning can recognize only the patterns it has seen before. Therefore, the data is crucial for your objectives. If you’ve ever wondered How to build a machine learning app , this article will answer your question.