Last night I went to Python night at OpenDNS where Zed Shaw was speaking about learning Python. Here are some notes from the presentation:
If you're a complete beginner with programming start with Python 2 and go through Learn Python the Hard Way. After that get Learning Python by Mark Lutz. After those two books pick another book on a Python topic. Some examples mentioned were:
- Python for Data Analysis
- The Flask Book
- Programming the Raspberry Pi: Getting Started with Python
- Two Scoops of Django
- The Algorithm Design Manual by Steven Skiena ("The best algorithms book I've found.") Implement the algorithms in Python.
- Violent Python
- Then make a clone of something you like. Examples: Amazon, Twitter, Tinder, or whatever.
For people who already know another language, he recommended skipping Learn Python the Hard Way and going straight to Learning Python by Mark Lutz or the Python tutorial.
After that, get The Python Cookbook and build something. Examples given: log parser, web application, chat client, etc. And/or reimplement something that you're built before.
Other books mentioned were this one on programming challenges and something on building compilers, but I didn't catch the title.
Another good tip was to code every day even if it's just for an hour or two.