# Beginners Learning Path for Machine Learning

So, you are interested in machine learning? Here is your complete learning path to start your career in the field.

*Photo by Franck V. on Unsplash.*

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 about how I should get a strong basis for Machine Learning. Anyway, 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.

### 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, then I will recommend you is CS50 by Harvard University, the best course for beginners in programming, it will teach you from scratch 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 start directly from Python, then I’ll recommend you 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 real-world mathematical problems.

If you feel that your computational logic is not good and you are not a good problem solver in programming, I’ll recommend 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 the basics of programming but have no knowledge of object-oriented programming, then I recommend you to learn Object-Oriented Programming. Though it is not used a lot in machine learning (basic level) but certainly it helps a lot. I will suggest this course, which teaches you the basics of OOP and algorithms in python. You can find this course for free at edx.org.

The 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 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, depending on 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.

*Photo by Antoine Dautry on Unsplash.*

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 that 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)

It is available for free 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 that teaches math graphically using Python’s famous libraries Numpy, pandas, and matplotlib, which are prereq of this course. Find this course at edx.org for free.

Udacity has 3 great free courses in Statistics.

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

Now that 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, and Scipy that help 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 ones. Implement your concepts of Linear Algebra and Calculus graphically and visualize them.

One of the masterpieces in this regard is Statistics with Python specialization by the University of Michigan, which teaches data visualization and operations on it in detail. Of course, available for free (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 through pandas in a very good way. Available for free on coursera.org. The next part of this course is a game-changer. Named as Applied Plotting, Charting, and Data Representation in Python, and it teaches all the graphical visualization and its tips and techniques.

Another good course is “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 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 kit-learn
- NLTK

While 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 (don’t forget to read its prerequisites).

### Step 4 Practical Machine Learning

*Photo by Franck V. on Unsplash.*

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. The first course can mean a lot. If it is not good, you might just change the field because you simply did not like the course. So all the courses here are going to be highly qualified and before you start your first 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, and 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 a very well known famous Machine Learning instructor Andrew Ng available for free 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 what a beautiful course it is. More than 2.5M students have been enrolled in this course, and 200000+ students have rated it(4.9*). It teaches from the 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 you go. Another review here. Here is another review of this course on Quora. Here is the list of contents in it.

- Linear Regression
- Polynomial Regression
- Logistic Regression
- Multi-class Classification
- Neural Network
- Support Vector Machine (SVM)
- K-means Clustering
- Primary Component Analysis (PCA)
- Anomaly Detection
- Recommender System

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 (here) and coursera.org (here).

This course is a must-go for everyone like it is so 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 Andrew Ng, Kian Katanfrosh, and Younes Bensouda is also a must take. This specialization has 5 courses which are

- Neural Networks and Deep Learning
- Improving Deep Neural Networks: Hyper-parameter tuning, Regularization, and Optimization
- Structuring Machine Learning Projects
- Convolutional Neural Networks
- Sequence Models

The main skills you are going to gain are

- TensorFlow
- Convolutional Neural Network
- Artificial Neural Network
- Deep Learning

So now you have a good grip on TensorFlow and machine learning. 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 Advice and Recommendations

Here are some recommendations.

- Start listening to the “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 “Hands-on Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems” or its new version released in October 2019. named as “Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems.” The 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. This book is very extensive and recommended.
- Don’t forget to read this. 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.

Good Luck and have a good time learning how to make *machines smart*er.

Original. Reposted with permission.

**Related:**