When I started studying data science, I spent a lot of time to find resources that best fit my background and my needs. The ones listed below have helped me tremendously in my study. I hope you will find some of them helpful in your learning as well.
A fundamental skill that any data scientist must have is programming. The most popular programming languages are without a doubt Python and R. You should learn both but if you have to pick one, choose Python. It has been the fastest-growing major language, and also the most wanted language, for the several years in a row.
I strongly recommend MIT 6.0001 Introduction to Computer Science and Programming in Python, which is the most visited course of MIT OpenCourseWare.
2. Probability and Statistics
The lecture notes of MIT 18.05 Introduction to Probability and Statistics is an excellent study resource for a quick review of probability and statistics with clear and intuitive explanations. This is perhaps the best introduction to Probability and Statistics that I have ever seen.
After finishing the above lecture notes, for a better coverage, I recommend you to continue with the book All of Statistics: A Concise Course in Statistical Inference by Larry A. Wasserman. The book provides a broad and as the name of the book indicated, concise coverage of probability and statistics, including basic and modern concepts that are closely related to machine learning.
3. Linear Algebra
After struggling with two books borrowed from my school’s library, and also with the Linear Algebra series from Khan Academy, I could only appreciate the beauty of matrices thanks to the MIT 18.06 Linear Algebra course of Prof. Gilbert Strang. This is for many people, myself included, the best introduction to Linear Algebra. In parallel with watching the lectures, I would recommend you to do exercises in his book Introduction to Linear Algebra, 5th edition.
Optimization is of central importance in Data Science. I have learned many things from the Stanford EE364 Convex Optimization course (lecture videos are available on YouTube) and its accompanying textbook Convex Optimization by Stephen Boyd and Lieven Vandenberghe. However, I have to admit that I have finished only a small part of these resources as they were not so easy to digest. One of my main objectives for the next few months is to finish them, because I feel that what I have learned from my graduate program is really not enough.
5. Machine Learning
Besides, following the Professor Andrew Ng’s Machine Learning course has proved to be highly profitable to my learning. I love Prof. Andrew Ng’s teaching style where complicated concepts become crystal clear through his explanations. I found the practical assignments building algorithms from scratch in the course extremely useful to grasp the associated algorithms.
For an upper level, I would suggest two books, Pattern Recognition and Machine Learning by Christopher M. Bishop and The Elements of Statistical Learning by Jerome H. Friedman, Robert Tibshirani, and Trevor Hastie. These two books are considered to be the best textbooks of Machine Learning by many people.
There is a large number of online resources and what works for some may not be found as useful by others. This is only recommendations based on my personal experience. I hope that you will find the ones that are best suited to you.