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 then by all means read the V2 tutor, otherwise jump in to version 3.

Version 3

Version 2

Stop Press!

Last Update: 31st January 2018

The v3 tutorial has been completely revised to bring it in line with Python v3.6 and to restructure it in HTML5 with CSS3. All the external links have been fixed and should now open in a new tab/window. There is a new colour theme too which will help distinguish it from the old purple/pink tutorial theme. I've also finally added the last topics in the "Applications" section so you can now read about building Web apps and concurrency.

Future Plans

Having got the main tutorial updated I next plan on updating this front page to highlight some more of my interests and make it more of a launchpad. It will have links to the tutorials but also more on my writing projects and photography. I may start a blog feature too. Watch this space - literally!

In the meantime I 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.

Python Projects book!

Published by Press

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.

Learn To Program Using Python 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.

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 of the Tutorial

The original book is stagnant I'm afraid, but, as mentioned above I now have a new book, Python Projects that picks up where the old one left off by introducing and expanding on the material in the new web section discussed below. The new book uses Python v3.4, although everything should work fine with any version from 3.3 to 3.6

Looking even further ahead, the standard Python library now includes the Tix library which adds extra features to Tkinter, and the ttk module which enhances the look and feel to more closely resemble the native GUI toolkit. The Tix module has sadly been marked as deprecated in 3.6 but I might write something about the ttk module as an extension to the GUI topic.

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.

There is also a single page (Functional Programming) translated into Indonesian by the ChameleonJohn project, here

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'm afraid I've given up on downloadable archives, it was just too much work to generate after my favourite tool for the job (HP WEBsmart, ceased to work.

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