There are so many free courses in Python and data science, it's almost impossible to choose the best.
The secret?
It doesn't matter. The most important decision is the decision to start as soon as possible. The second most important decision is to break through learning plateaus from there.
I started with these two and if I had to start over, I'd choose them again in a heartbeat.
#1: edX - Introduction to Computer Science and Programming Using Python
A gentle introduction that blends computer science fundamentals with Python-specific practice.
Computer science foundations
Simple algorithms
Testing and debugging
Algorithmic complexity
Data structures
#2: edX - Introduction to Computational Thinking and Data Science
Keep the momentum by diving right into the second course in the sequence.
Graphs and graph optimization
Dynamic programming
Plotting with the pylab package
Probability, Distributions
Monte Carlo simulations
Curve fitting