Further Reading: Intermediate Python Resources
Tue 01 September 2015 Al Sweigart
So after reading one of my Python books (available free online here and here), you're no longer a complete beginner and would like to know where to go next. It can be hard to find intermediate-level material: stuff that isn't for total beginners or advanced computer scientists. The topics that you should google for are Python standard library, Python object oriented programming, Python idioms, and popular Python modules.
For a more concrete list of resources, here's my list of recommendations.
Continuing with Python
- The Python Module of the Week Blog covers many of the modules in Python's standard library with practical examples. The Python standard library has a wide range of handy functions ("Guido's Time Machine" refers to how requests for features in Python would often be met by Guido van Rosum mentioning he had added it the night before.)
- Python Pocket Reference is a short book intended for programmers who want to learn Python quickly. Now that you know basic programming concepts, this short book is a great way to fill out your Python knowledge and explore some more modules without spending a lot of time.
- Python 3 Object-oriented Programming is a great resource to learn specifically about classes, objects, and other OOP concepts. My books skip OOP since it isn't necessary to get started coding, but once you've been programming for a while it's a must to become familiar with these topics.
- Data science and machine learning are hot topics in the job market. Data Science from Scratch and Programming Collective Intelligence are both great introductions to these topics.
- If you'd like to learn Python well enough to become a software engineer, Effective Python: 59 Specific Ways to Write Better Python provides a nice list of advanced (but effective) topics to read up on.
- The Python Cookbook has several recipes for getting stuff done in Python. Reformatting text to fixed columns, determining last Friday's date, or using callback functions are all things that are possible with Python, but you don't want to waste time figuring out how to do them on your own.
- The Hitchhiker's Guide to Python is a brilliant summary of many Python gotchas and idioms specific to the Python language.
- Problem Solving with Algorithms and Data Structures Using Python is a good computer science textbook to exploring algorithms in a direct, readable text. It's free to read online.
Practicing Your Code-Fu
- Project Euler is a classic practice programming site, with mostly math-related problems that can be solved with code.
- The dailyprogrammer subreddit has beginner, intermediate, and advanced programming problems post every day. (Reddit also has an FAQ with links to other resources.
- A list of 49 games to clone is a great source of ideas. The games were selected based on their simple mechanics and not requiring a lot of artwork or level designing. (You can read a free book on Pygame here.)
Moving On to Other Languages
Python is versatile and you can keep going down that path if you choose, but don't feel that you're somehow "not ready" to tackle a new language. If you do want to move on, here's some resources for the next step.