Yes, you heard me, Machine Learning (ML) is just another way to program. Most ML tutorials and sites try to differentiate what is called “Conventional” programming and ML algorithms, many times without even mentioning there is programming involved.
Stepping back for a moment, “machine learning” is the process of using historical data and predict future data. For example, assume we have 30 years of house pricing data with all the specs of the house (size, number of rooms, and other aspects). The elements of the historical data are called features, and the house price is a label. We can use Machine Learning algorithms to predict the current price for a house given its specs and historical data.
Back to our topic, if you look closely at the process there is conventional programming involved. The only difference is that the algorithm is doing the coding and producing a “Model” – a sort of profile/settings for the algorithm to run when performing a prediction. But wait, it does not end there. The algorithm is not like a person; it is single-minded in its task. Without feeding it with quality data and a suitable learning algorithm, it will just spit lousy predictions. So, you have to “program” the example/learning into it which is an art by itself.
Once I got that, I had to check it out. What? Me not knowing a programming language? Or at least knowing some of its qualities and pitfalls? So yeah, I researched the subject and arrived at the conclusion that anyone who does not pay attention to this stuff is going to be obsolete. I will explain why.
Some tasks are just too massive and too costly to program. For example, which movies for the millions of Netflix users to recommend each day. It is absurd to assume that a Netflix engineer is willing to program every film or series added to Netflix’s weekly library. Moreover, some tasks are notoriously hard to solve conventionally because of their natural complexity, such as Vision and Sound. For example, separating two sounds vocalized at the same time could take months to program and one line in a machine learning library. So basically, when a customer or employer asks you for these types of tasks, you are either:
(1) going to fail,
(2) take too much time to solve, and
(3) solve poorly with low quality.
Therefore, most developers I know are missing a massive chunk of our profession, only recently started to be widely taught in universities.
Now, I am not saying you have to be a data scientist or even an ML engineer. However, all engineers (backend, frontend, BI, hardware, doctors, the list is long) must be familiar with ML. When it is needed, you will be able to identify that ML is the way to go.