10 Amazing Python Programming Resources

By John Paul Mueller

You probably have a great start to your Python programming experience, but you’ll want additional resources at some point. Here are ten amazing programming resources that you can use to make your development experience better.

Work with the Python documentation online

An essential part of working with Python is knowing what is available in the base language and how to extend it to perform other tasks. The Python documentation discusses these topics as part of the documentation:

  • New features in the current version of the language

  • Access to a full-fledged tutorial

  • Complete library reference

  • Complete language reference

  • How to install and configure Python

  • How to perform specific tasks in Python

  • Help with installing Python modules from other sources (as a means of extending Python)

  • Help with distributing Python modules you create so that others can use them

  • How to extend Python using C/C++ and then embed the new features you create

  • Complete reference for C/C++ developers who want to extend their applications using Python

  • Frequently Asked Questions (FAQ) pages

This Python documentation web page is also the place where you report problems with Python.

Use the LearnPython.org tutorial

Many tutorials are available for Python and many of them do a great job, but they’re all lacking a special feature that you find when using the LearnPython.org tutorial — interactivity. These tutorials present the following topics:

  • Generators

  • List comprehensions

  • Multiple function arguments

  • Regular expressions

  • Exception handling

  • Sets

  • Serialization

  • Partial functions

  • Code introspection

  • Decorator

Perform web programming using Python

The Web Programming in Python site helps you make the move from the desktop to online application development. The tutorials are divided into these three major areas:

  • Server

    • Developing server-side frameworks for applications

    • Creating a Common Gateway Interface (CGI) script

    • Providing server applications

    • Developing Content Management Systems (CMS)

    • Designing data access methods through web services solutions

  • Client

    • Interacting with browsers and browser-based technologies

    • Creating browser-based clients

    • Accessing data through various methodologies, including web services

  • Related

    • Creating common solutions for Python-based online computing

    • Interacting with DataBase Management Systems (DBMSs)

    • Designing application templates

    • Building Intranet solutions

Get additional libraries

The Pythonware site provides you with access to a number of third-party libraries that help you perform additional tasks using Python. The “Downloads (downloads.effbot.org)” link is the one you should look at first. This download site provides you with access to

  • aggdraw

  • celementtree

  • console

  • effbot

  • elementsoap

  • elementtidy

  • elementtree

  • exemaker

  • ftpparse

  • grabscreen

  • imaging

  • pil

  • pythondoc

  • squeeze

  • tkinter3000

Create applications faster using an IDE

The Integrated DeveLopment Environment (IDLE) editor that comes with Python works well for many projects, but you may find it limited after a while.

An inability to change IDEs later is why it’s important to try a number of different IDEs before you settle on one. The PythonEditors wiki provides an extensive list of IDEs that you can try.

Check your syntax with greater ease

The python.vim utility provides enhanced syntax highlighting that makes finding errors in your Python script even easier. This utility runs as a script, which makes it fast and efficient to use on any platform. In addition, you can tweak the source code as needed to meet particular needs.

Use XML to your advantage

The eXtensible Markup Language (XML) is used for data storage of all types in most applications. The platform independence of XML is why it appears with so many other technologies.

In addition, XML is relatively easy to learn and because it’s text, you can usually fix problems with it without too many problems.

It’s important to learn about XML itself, and you can do so using an easy tutorial such as the one found on the W3Schools site. The W3Schools site breaks up the learning process into the following chapters:

  • Taking a basic XML tutorial

  • Validating your XML files

  • Using XML with JavaScript

  • Gaining an overview of XML-related technologies

  • Using advanced XML techniques

  • Working with XML examples that make seeing XML in action easier

After you get the fundamentals down, check out the Python and XML Processing site to see how to use XML with Python.

Get past the common Python newbie errors

Absolutely everyone makes coding mistakes. You can gain an advantage over your competition by avoiding the newbie mistakes that everyone has to learn about sometime. To avoid these mistakes, check out this two-part series:

Understand unicode

You’ll eventually encounter unicode when you start writing serious applications. Unfortunately, Unicode is one of those topics that had a committee deciding what Unicode would look like, so there is more than one poorly explained definition of Unicode and a multitude of standards to define it.

Here are some resources you should check out:

Make your Python application fast

Nothing turns off a user faster than an application that performs poorly. Performance is a mix of reliability, security, and speed. You can read about the performance triangle on this blog. Many developers focus on just the speed part of performance but end up not achieving their goal. It’s important to look at every aspect of your use of resources and to ensure that you use the best coding techniques.

One of the best resources out there is “A guide to analyzing Python performance.” After you read this article, make sure to check out the PythonSpeed Performance Tips as well.