The MOOC way to learn Python and Data Science:

Learn Python

Learn Probability

Learn Linear Algebra

Learn Algorithms and Data structures

MIT OCW

Robert Sedgewick, Princeton

Tim Roughgarden, Stanford


Machine Learning
Note:

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.

I just sampled courses that i think are good starting point to learn Data science. Also, the recommended way is to go topdown 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

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

The Math part consists of Probability, Statistics, Linear Algebra and Machine Learning. The Computer science part consists of Python and Algorithms.

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