Welcome to the Learning to Program Web Site

This web site is designed to help total beginners learn to program. There are two tutorials to choose from. "Version 2" uses Python Version 2 as the programming language, along with VBScript and Javascript, while "Version 3" uses Python Version 3 oddly enough! I now recommend that total beginners use Version 3 since that is the future, although many organisations and web sites still use version 2. So if you have a need to use V2 read the V2 tutor, otherwise jump in to version 3. The style is distinctly Web 1.0 for which I apologize but hopefully the content will compensate!

Version 2

Version 3

Stop Press!

Last Update: 16th June 2015

Announcement of new Python Projects book!

The NEW Book!

The reason the site has been frozen in aspic for the last year or so is that I've been working on a new dead-tree book which is available now! It's entitled Python Projects and published by Wrox Press. It is a collaboration with Laura Cassells, who was a Python tutor from the Big Nerd Ranch training school (although she has since moved on to new challenges).

The focus of the book is to answer the question many beginners face - "OK, I know the language but what can I do with it?" And How? It looks at

It can be seen as a sequel to this tutorial site, or as an expanded version of Section 4, Applications. It's all based on Python 3. It is not just a set of projects for you to try but a guide to how to use the Python tools to build your own. There are some significant sized example projects in the book, but they are there to demonstrate the points being made.

You can order it on Amazon:

Or search your favourite online store.

The Original Book

The original version of this tutorial, based on Python v1.5, is available as a dead tree book from Amazon or your favourite bookstore. Latest news on the book is that it has moved to print-on-demand. Basically this means that copies are only printed when firm orders are received from retailers. Logically this means you are less likely to see it in the shops but you can still place an order and it will be delivered, it just takes a little longer is all.

The book is now significantly different to the new web site although the basic ideas remain the same. It is stuck at Python version 1.5 and doesn't have the new material, although it has extra examples of its own plus several extra chapters compared to the web site. These include an additional case study for an OO games framework. (A fully commented version of the framework is available on the old Useless Python web site as hmgui.zip)

You can still order the book on Amazon:

Most of the other online book shops have it available to order too.

There is also a Japanese version available from the Japanese branch of my publishers. According to one of my royalty statements there is also a Chinese version but I don't have a link to that one, and the latest statements don;t list it so I'm not sure of the current status.

I have a web site set up listing errata and providing opportunities to send feedback and questions.
Please pay a visit if you've bought the book!

The Future

The original book is stagnant I'm afraid, but once I get the new tutorial written I might sound the publishers out about a second edition updating it to the latest version of Python, whatever that will be by then, and adding the new material. But don't hold your breath waiting on that one...

I am still aiming to add new topics as part of a new section looking at practical applications of programming. However the primary focus for now is to translate the v2 tutor into v3.1 as fast as possible. Any new topics after that will only be done for Python v3.

These topics are in response to many requests from readers who say - "OK, Now I know how to program, but what exactly can I do with my new found skills?" They do not feature much, if any, VBScript or JavaScript.

Looking even further ahead, I'm also playing with the new version of wxPython and may include more GUI stuff based on that at some stage. Also the standard Python library now includes the Tix library which adds extra features of Tkinter, so I might write something about that too. And finally the latest versions of Python include a new set of "themed" Tkinter widgets which provide a native look n feel across different OS. So lots of activity on the GUI front!

Non English Editions available!

The following versions of the old V2 tutorial are available:

Czech version Petr Přikryl
German Bruno Schaefer
Korean johnsonj
Italian Luca Fini
Portuguese Wilson Edgar
Spanish Martin Pozzi

The tutorials above are all usable but at different stages of completeness compared to the web site. That's because they reflect the state of the web site at the time of translation. The Czech one in particular is very professionally presented including a very attractive appearance. I was so impressed with the style that I have used Petr's style sheets (with a couple of colour tweaks) as the basis for the English version.

I think all of the translators deserve a vote of thanks for their efforts in putting this together. It's always better to read a translation of an old tutorial than to struggle reading a new one in a foreign language! If anyone else wishes to do a translation, or update any of the existing ones, just send me an email.

Download Archive Format

I'll eventually be posting both zip and tgz versions of the site as well as a PDF file. These will not always be up to date because my primary focus is on getting the updates done, only after it's all complete will I move the site to maintenance basis and do regular updates.

Look at the bottom of the contents frame for a link.

If you have any questions or feedback on this page send me mail at: alan.gauld@yahoo.co.uk

PS. I also have a personal web page hosted here with some information on my other great hobby: hill-walking in my home country of Scotland. You might find that interesting or enjoy the pictures! :-)
Finally, I have a Flickr page with a running "photo blog" showing my latest adventures with a camera.