This appendix lists some useful resources for the intermediate-level Python programmer. The list does include a few tutorials, but these are either more in-depth than most beginner’s tutorials or they cover specific topic areas. Many of the links point to user support forums and mailing lists. Several of the resources were recommended by the Python “Tutor” mailing list community following a request for suggestions.
Many Python mailing lists are available, covering a wide variety of topics and interest areas. The Python “Tutor” mailing list is specifically targeted at those learning Python and its standard library along with the fundamentals of programming. The main Python mailing list is a source of information about all aspects of Python, but is populated by a particularly Python-savvy team who may be less tolerant of poorly researched questions. You can find the official Python mailing lists at https://mail.python.org/mailman/listinfo
.
At the time of writing, almost 200 lists are available; however, many relate to special events such as conferences or local user groups. Nonetheless, many technical lists are available on the official site.
Many third-party packages also have their own mailing lists or web forums for support and maintenance. Examples include the wxPython GUI library and the Django web framework.
The gmane.org
website and news server offers access to all the official mailing lists as well as many other lists. At the time of writing it hosts more than 230 top-level Python mailing lists, and many of these have several sublists. All of these are available in web, usenet, and e-mail formats. Other related technologies such as SQLite, Tcl/Tk, and the various OSes all have extensive lists available, too.
Newsgroups are a legacy from the early pre-web days of the Internet, but are still heavily used by professional programmers. They often provide more direct access to a true expert than some of the more casual web forums. The general Python mailing list is also available on usenet as news://comp.lang.python
.
Some people prefer IRC channels because of the immediate response. The problem with that is that you are limited to whoever is logged on at the same time you are. Using a mailing list, web forum, or newsgroup, although slightly slower, is more likely to get you a definitive solution or answer to your question.
Stackoverflow (www.stackoverflow.com
) is a popular site for asking questions and getting answers. It contains an archive of previous questions and their answers. Some people complain that the answers are not always optimal, but that is the nature of the Internet; if you get an answer that works, it’s better than no answer at all. As always with archives, it’s best to search the archive before posting a new, duplicate question.
If you don’t have specific questions and just want to find out what other Python programmers are doing or thinking, a blog may be your best bet. Here are a few blog sites with useful material:
http://pymotw.com/2/contents.html
that features different Python modules on a weekly basis. In addition, he maintains a more informal but useful blog at http://doughellmann.com/
.http://effbot.org/
.http://www.joelonsoftware.com/index.html
.Many universities now use Python in their programming courses. This has led to a number of online courses and tutorials being produced by the universities or their students. Some are basic and aimed at beginners, but others feature specific packages or libraries or teach more advanced techniques.
The University of Cambridge has several short courses available as PDF files. You can find them linked from this site: http://www.ucs.cam.ac.uk/docs/course-notes/unix-courses/PythonProgIntro
.
You can find other similar courses with the aid of your favorite search engine.
In addition, several computer companies use Python or encourage programmers to learn about it. Two well-known examples are Apple and Google, both of which provide Python courses featuring multimedia instruction. You can find their courses at the following URLs.
This one is for iTunes users: https://itunes.apple.com/gb/itunes-u/hands-on-python-tutorial-chapter/id448754574?mt=10
. This is for the Google fans: https://developers
.google.com/edu/python/
.
Wikipedia (http://en.wikipedia.org/wiki/Main_Page
) is a fantastic resource for technical information. If you come across computer science terms that you want to understand, Wikipedia is a great place to try first. It can sometimes be a tad overly technical for beginners, but it usually has links to gentler tutorials at the bottom of the page.
Several online books about Python are available, including the following two titles, each of which focuses on a specific area of interest:
http://www.diveintopython3.net/
. It is also included in the ActiveState Windows distribution of Python.http://gnosis.cx/TPiP/
.YouTube has several videos on Python. The quality ranges from excellent to poor, as is usually the case on community-based sites like YouTube. However, if you learn well from video it’s worth a browse; you can always hit the stop button if you don’t like what you find. YouTube is, of course, located at https://www.youtube.com/
.
ShowMeDo is a web-based video training site. It offers a mix of free and paid-for training materials. The quality is more consistent than YouTube and well worth a browse. Check it out at http://showmedo.com/
.
As a final treat, you can try the Python Challenge. This is a bit like an adventure game for Python programmers. You start with easy examples, which then become more progressively difficult. The location of the next challenge is revealed by solving the current one. If you find that you are writing a lot of code for any individual challenge, you are probably going the wrong way about solving it. The fun starts here: http://www.pythonchallenge.com/
.