Made your mind towards machine learning but are confused so much that where to get started. I faced the same confusion that what should be a good start? Should I learn Python, or go for R? Mathematics was always a scary part for me and I was always worried that from where should I learn math? I was also worried that how should I get a strong basis for Machine Learning. Anyways you should be congratulated that at least you have made your mind.
In this article, I will tell you some basic steps and courses you should take before starting practical machine learning.
Is Mathematics 1st step for Machine Learning?
1st Step for Machine Learning ( Basic Programming)
The very 1st step is that you should learn programming and most probably Python. If you have never written a single line of code I will recommend you is CS50 by Harvard University, the best course for beginners in programming, it will teach you from scratch till all the C Language and a lot of Python and JavaScript with basics of SQL and JSON. This very exciting course is free at edx.org and you can find it here. Read an article about cs50 here
If you want to take start directly from Python then I’ll recommend you to take MIT’s Introduction to Computer Science with Python available on edx for free. Notice that high school algebra is a prereq for this course because they will make you solve a lot of mathematical realworld problems.
If you feel that you computational logic is not good and you are not a good problem solver in programming, I’ll recommend you this course by Microsoft which is all related to Computational Thinking available on edx all for free. This course is really cool and teaches a lot of computational logic and critical thinking.
If you are good enough with basics of programming but have no knowledge of objectoriented programming, then I recommend you to learn ObjectOriented Programming. Though it is not used a lot in machine learning(basic level) but certainly it helps a lot. I will suggest you this course which teaches you the basics of oop and algorithms in python. You can find this course for free at edx.org.
Next step is familiarity with data structures and algorithms. A good programmer must know some basic algorithms like a linked list, binary trees, etc. This course Microsoft will teach you
 Algorithmic Analysis
 Sorting and Searching of Algorithms
 Data Structures: Linked lists, Stacks, Queues
This course is available for free at edx.org.
If you want to go deep in Data Structures and Algorithms, UC San Diego’s specialization in is a masterpiece. It has 6 courses and will take you from 0 to hero level in data structures and algorithms. You can click on each course and audit its material for free but if you want the certificate, its price is 50$/month, depends on you that how early you can complete it. Find this specialization in Coursera.org or click here.
2nd Step For Machine Learning
Yes, you guessed it right, the most dangerous part for most of the beginners, MATHEMATICS.
But don’t worry , it isn’t that difficult as we think of it and if you think you have good basics of high school math(vectors, matrices, calculus, probability, and stats) you can simply just take a refresher course but if you think you are not good enough then the best place for anyone to learn math is KHAN ACADEMY. The amount of content is so rich and helpful at khan academy and everything is available for free. You can find all linear algebra, probability and stats, and multivariable calculus courses there.
Another good course is Math for machine learning specialization from coursera by Imperial College London. It is a great course which teaches basics and revises concepts but does not dive too deep. Exercises and quizzes are quite challenging. It has 3 courses on it.
Mathematics for Machine Learning: Linear Algebra
Mathematics for Machine Learning: Multivariate Calculus
Mathematics for Machine Learning: PCA
MIT has a great course on Statistics which teaches
 Construct estimators using the method of moments and maximum likelihood, and decide how to choose between them
 Quantify uncertainty using confidence intervals and hypothesis testing
 Choose between different models using the goodness of fit test
 Make prediction using linear, nonlinear and generalized linear models
 Perform dimension reduction using principal component analysis (PCA)
 Linear Regression
 Polynomial Regression
 Logistic Regression
 Multiclass Classification
 Neural Network
 Support Vector Machine (SVM)
 Kmeans Clustering
 Primary Component Analysis (PCA)
 Anomaly Detection
 Recommender System
 Neural Networks and Deep Learning
 Improving Deep Neural Networks: Hyperparameter tuning, Regularization, and Optimization
 Structuring Machine Learning Projects
 Convolutional Neural Networks
 Sequence Models
 TensorFlow
 Convolutional Neural Network
 Artificial Neural Network
 Deep Learning
 Start listening to “Machine Learning Guide” Podcast by OC Devel right now. This is going to give you a complete overview of machine learning, what is in it and the journey of an android and web applications developer shifting towards the path of machine learning. Available on Apple Podcasts/iTunes, Google Podcasts and his website.
 Get “Handson Machine Learning with ScikitLearn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems” or its new version releasing on October 2019 named as “HandsOn Machine Learning with ScikitLearn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems”. Author of this book is Aurélien Géron. 1st version of this book is #1 in Artificial Intelligence (Books), #1 in Natural Language Processing (Books) & #1 in Computer Neural Networks. 2nd version is not released yet but available for preorder. This book is very extensive and recommended. Order it now from Amazon.
 Don’t forget to read this article. It has a lot of useful information.
 Practice a lot on Kaggle(You will know about it once you start ML).
 Be dedicated and believe that you can do it. All you need is consistency.

It is available for [free](https://www.edx.org/course/fundamentalsofstatistics2) on edx.org.
If you want to learn math while coding, Microsoft has a really good course “Essential Math for Machine Learning: Python Edition”. This is an interactive course which teaches math graphically using python’s famous libraries Numpy, pandas, matplotlib which are prereq of this course. Find this course at edx.org for [free](https://www.edx.org/course/essentialmathformachinelearningpythonedition3).
You can also learn math alongside learning practical machine learning, encountered with a thing you don’t know, just search on khan academy or YouTube has 100s of good video on that topic.
3rd Step for Machine Learning
So now you are comfortable with linear algebra, multivariable calculus and statistics so now you need to learn Python’s famous data visualization libraries which are Numpy, Pandas, Matplotlib, Scipy which helps you analyze any kind of data and manipulate it and see it graphically. Of course, there are a lot more data visualization libraries but these are the most important one. Implement your concepts of Linear Algebra and Calculus graphically and visualize them.
One of the masterpieces in this regards is Statistics with Python specialization by the University of Michigan which teaches data visualization and operations on it in details. Of course available for [free](https://www.coursera.org/specializations/statisticswithpython) (click on each course to audit for free) on coursera.org.
Another course by the University of Michigan for beginners in data analysis is Introduction to Data Science in Python which teaches from the basics of numpy till pandas in a very good way. Available for [free](https://www.coursera.org/learn/pythondataanalysis?specialization=datasciencepython) on coursera.org. Next part of this course is a gamechanger. Named as Applied Plotting, Charting and Data Representation in Python and it teaches all the graphical visualization and its tips and techniques.
If you feel like you have some knowledge of numpy, pandas and matplotlib take “Python for Research” by Harvard which teaches these libraries along with some famous case studies and its final project is really exciting and teaches a lot of new things. Available for [free](https://www.edx.org/course/usingpythonforresearch2) on edx.org.
Another very comprehensive course is Python for Data Science by UC San Diego which teaches
Python
Jupyter notebooks
pandas
NumPy
Matplotlib
git
sci kitlearn
NLTK
Means this course will also teach you the basics of machine learning but more importantly, the data science libraries taught in this course. Available for free on [edx.org](https://www.edx.org/course/pythonfordatascience3) (Don’t forget to read its prerequisites).
Step 4 Practical Machine Learning
So far you have learned linear algebra, multivariable calculus, probability and stats, and python alongside its data visualization libraries so now you are ready to jump on the most exciting part which is machine learning. 1st course can mean a lot. If it is not good he might just change the field because he simply did not like the course. So all the courses here are going to be highly qualified and before you start your 1st course in ML do some research on it.
This introductory course is not going to teach you machine learning but instead, it is going to give you an idea of what machine learning is, what is meant by machine learning terminology, what is AI strategy, its ethics. This course is going to give you an overview of what machine learning is and how it works and what is its workflow and how to build AI in your company. It gives you a good introduction and overview of AI. The course is taught by very well known famous Machine Learning instructor Andrew Ng available for [free](https://www.coursera.org/learn/aiforeveryone) on coursera.org.
Either you google it or see in any blog the first course everyone recommends is Machine Learning by Stanford University taught by Andrew NG and damn what a beautiful course it is. More then 2.5M students have been enrolled in this course and 200000+ students have rated it(4.9*). It teaches from very basic concepts to advanced concepts and it is a very comprehensive course for beginners. The total length of this course is 56+hours. Want to read a review of this course? [Here](https://medium.com/@irshaduetian/reviewofmachinelearningcoursebyandrewngandwhattodonext1184d45ad16a) you go. Another Review [here](https://medium.com/@ionejunhong/reviewofandrewngsmachinelearninganddeeplearningspecializationcoursesoncoursera4f9dc92437e4). [Here](https://www.quora.com/WhatisyourreviewofCourseraMachineLearning] is another review of this course on Quora. Here is the list of contents in it.
The only problem (according to some people) is that it is taught in octave/Matlab but for me its no big deal, because it will clear all the basics and deep concepts of machine learning that implementing them in any other language, is not going to be any sort of problem plus Matlab is an additional skill. This course is available for free on Stanford’s official website and at coursera.
This course is a mustgo for everyone like it is soo good that it can’t be explained.
After this course now you need to implement all the things you learned in python and go advanced beyond what you learned so specialization by deeplearning.ai on coursera by our own Andrew Ng, Kian Katanfrosh, and Younes Bensouda is also a must take. This specialization has 5 courses which are
Main skills you are going to gain are
Okay so now you have good grip on TensorFlow and machine learning and you might not like TensorFlow or you just want to test the famous contestant of TensorFlow which is PyTorch(by Facebook) so why not start this free deep learning course by Udacity offered by Facebook in collaboration with Amazon Web Services and part of Udacity’s famous deep learning Nano Degree worth 1400$.
Of course, this is just a start and there is a lot more to learn and discover but if you do these things hopefully you will get an idea of where you stand and what to do next.
Some Advises and Recommendations:
Here are some recommendations.
Good Luck and have a good time learning making machines smart.
Discussion (0)