The MOOC way to learn Python and Data Science: 1. **Learn Python** * [Introduction to Computer Science and Programming Using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-8) * [Introduction to Computational Thinking and Data Science](https://www.edx.org/course/introduction-computational-thinking-data-mitx-6-00-2x-4) * [Using Python for Research](https://www.edx.org/course/using-python-research-harvardx-ph526x) 2. **Learn Probability** * [Introduction to Probability - The Science of Uncertainty](https://www.edx.org/course/introduction-probability-science-mitx-6-041x-1) 3. **Learn Linear Algebra** * [Linear Algebra - Foundations to Frontiers](https://www.edx.org/course/linear-algebra-foundations-frontiers-utaustinx-ut-5-04x) * [Applications of Linear Algebra Part 1](https://www.edx.org/course/applications-linear-algebra-part-1-davidsonx-d003x-1) * [Applications of Linear Algebra Part 2](https://www.edx.org/course/applications-linear-algebra-part-2-davidsonx-d003x-2) 4. **Learn Algorithms and Data structures** 1. **MIT OCW** * [Introduction to Algorithms](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/) * [Design and Analysis of Algorithms](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2015/) 2. **Robert Sedgewick, Princeton** * [Algorithms, Part I](https://www.coursera.org/learn/introduction-to-algorithms) * [Algorithms, Part II](https://www.coursera.org/learn/java-data-structures-algorithms-2) 3. **Tim Roughgarden, Stanford** * [Algorithms: Design and Analysis, Part 1](https://www.coursera.org/learn/algorithm-design-analysis) * [Algorithms: Design and Analysis, Part 2](https://www.coursera.org/learn/algorithm-design-analysis-2) 5. **Machine Learning** * [Computational Probability and Inference](https://www.edx.org/course/computational-probability-inference-mitx-6-008-1x#!) *Note:* 1. All the courses using Python as medium of Instruction, there are other courses (not mentioned here) that use **R** language, which is certainly useful for Data analysis provided by edx, Coursera and Udacity.~~- 2. I just sampled courses that i think are good starting point to learn Data science. Also, the recommended way is to go top-down in the orde specified.~~+ 2. I just sampled courses that i think are good starting point to learn Data science. Also, the recommended way is to go top-down in the orde specified. You can explore yourself for more courses online at Udacity, Stanford Lagunita etc. for more. If you feel motivated and gasping for more Python and Programming, you can checkout [Design of Computer Programs](https://www.udacity.com/course/design-of-computer-programs--cs212) 3. There are still so many things to learn to become a data scientist such as machine learning, data visualization etc. (which i would fill out later). 4. The Math part consists of Probability, Statistics, Linear Algebra and Machine Learning. The Computer science part consists of Python and Algorithms. 5. There are few exceptions here. The courses on Linear Algebra use MATLAB (proprietary). But still we can use Octave, an open source alternative to MATLAB for learning the content in course. The Algorithms course by Robert Sedgewick uses Java. This is a well organized course for some one who wants to get started with Algorithms