My reddit post on learning Python by implementing computer games has over 300 upvotes! I do agree that programming should be fun and that learning from games is way more fun that a dry textbook. Of course, later you would want to learn from these legendary text:
- Structure and Interpretation of Computer Programs – Python implementation of examples
the MIT book that replaced the legendary SICP (even though that has been re-implemented in Python). And the also Algorithms in Python will help you pass all those starchy, stiff job candidate tests.