Further Reading: Intermediate Python Resources

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

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.

  • JavaScript: All dynamic behavior that happens in the browser is from JavaScript code. If you want to learn to create web apps, getting a basic understanding of HTML and CSS is recommended. The jQuery module is also standard for doing any web app development. My favorite JavaScript books are: Eloquent JavaScript (free), JavaScript and JQuery: Interactive Front-End Web Development, and (once you have some JS experience) Crockford's JavaScript: The Good Parts is the key book to read to understand the language.
  • Ruby: Ruby is a scripting language and similar to Python. It's noteworthy for the Ruby on Rails web app framework. You can try it out online at tryruby.org, and Codecademy has tracks for both Ruby and Ruby on Rails. But since you already know how to code, I'd suggest the Learn Ruby in 20 Minutes page on the official Ruby site.
  • Java or C#: These languages are fairly similar to each other. Java is the more popular one and a mainstay of software engineering jobs. C# is (essentially) Microsoft's version of Java, meant to create Windows applications. I don't have any recommendations as far as C# books, but Java: A Beginner's Guide is a decent intro. There have been plenty of slight changes to the Java language over the years, so you don't want to get a book that's more than a decade old or so.
  • 6 thoughts on “Further Reading: Intermediate Python Resources

    1. Al,

      I would like to remind you that you told that you would write a book on java soon. What about it? Please write one . I would like to point out that the following book on java by Yakov Fain is a great one. 'Java programming for kids'.

      I am giving you the link. Please tell me about your next book.

      Rian Rafsan

      http://yfain.github.io/Java4Kids/

      1. Sorry, it looks like that project is put off indefinitely. I had an idea for a Scratch book, and then possibly a screencast series where I solve programming problems. That definitely puts off a Java book for the rest of the year and then some, and alas I probably won't ever get to it.

        -Al

    2. I'm a Linux sysadmin and currently working my way through 'Automate The Boring Stuff'. Do you have any recommendation as to what to read after that? I don't want to become a software engineer just want to write awesome python scripts for system automation.

    3. I literally just started Effective Python: 59 Specific Ways to Write Better Python and it has been fantastic. Exactly what im looking for as I have no-one to mentor me!

    4. Hi Al,
      many thanks for writing "Automate the Boring Stuff", it's such a great book! I would like to ask what do you think about "Dive into Python 3" (it has many positive reviews on Stack Overflow)? Would it be a good idea to read it after your "Automate" or should I already know most of the stuff and can move to for example "Python Pocket Reference"? Thank you for your reply

    Leave a Reply

    Your email address will not be published. Required fields are marked *