Machine Learning algorithms are mathematical in nature, hence you need to first understand that part(includes statistics, probability theory, Linear Algebra). Once you know this part, then in order to implement these algorithms on a real life data set, you need a language which contains modules which simplify ML development(like MATLAB, Python, R etc) So, to sum it up: -Maths -Programming -Data manipulation/preprocessing -Machine Learning Algos -Lots of scenarios -End to End projects -Deployment of Models on various cloud platforms.