References


Books   Web Sites   Project Ideas   Study Topics  

Books to read

Python

Learning Python
Mark Lutz - O'Reilly press. Probably the best book on programming Python if you already know another language. Typical O'Reilly syle, so if you don't like that you may prefer:

Internet Programming with Python
Guido Van Rossum et al - ??? Written by the language's creator with a strong bias to internet programming including HTML, CGI and general sockets. It does have a general language tutorial at the beginning though.

Programming Python
Mark Lutz - O'Reilly press. The classic text. It describes the why's and wherefores of the language better than the others, strong on modules and OOP. Also gives an intro to GUI programming.

There is also an excellent online book for more advanced Python programmers called Dive into Python

Tcl

Tcl and the Tk toolkit
John Ousterhout - Addison wesley. The classic on Tcl by the language's creator. Very much a reference book and rather out of date now. It needs a 2nd edition. The Tk section is of interest to any Tk user regardless of language (Tk is a GUI library and is implemented on Tcl, Perl and Python).

There are several other Tcl/Tk books but I have no personal experience with any but Ousterhout.

BASIC

There are many many books on BASIC covering each of its many dialects. If you are serious in pursuing programming in BASIC, especially on the PC then I strongly recommend using Visual Basic and studying any of the many many books on that version.

General Programming

There are some classic programming texts that any serious programmer should own and read regularly. Here are my personal favourites:

Code Complete
Steve McConnell - Microsoft Press. This is the most complete reference on all things to do with writing code that I know. I read it after several years of experience and it all rang true and I even learnt some new tricks. It literally changed the way I wrote programs. Buy it. Now!

Programming Pearls
Jon Bentley - Addison Wesley. There are two volumes, both invaluable. Bentley shows how to improve the efficiency of your programs in every conceivable way, from concept through design to implementation.

These are part of a programming library that came out of Bell Labs in the 1980's in the wake of Unix. There are so many classics in this series that I will simply say that anything from the pens of Ken Thompson, Jon Bentley, Dennis Ritchie, Andrew Koenig and the rest at Bell Labs is worth reading. The styles may vary but the content is pure gold.

Algorithms by Donald Knuth
This is a set of books describing fundamental algorithms that are used by programmers over and over again. Heavy going, and a bit mathematical but, if you are concerned about the efficiency and absolute correctness of your programs, they are worth searching out. The whole set has recently been reissued with some updates.

Object Oriented Programming

I've already mentioned these, but here they are again anyway:

Object Oriented Analysis
Peter Coad & Ed Yourdon. - A great intro to OO concepts with a very simple notation for recording your designs. As an added bonus the notation is very similar to the new Unified Modelling Language (UML) standard that is being adopted by most books, tools and journals.

Object Oriented Analysis and Design with Applications
Grady Booch - Benjamin Cummings. This is another excellent book, moving more into the detail of designing classes and objects.The 1st edition, if you can find it, illustrates the lessons in 5 different OO languages whereas the second edition only uses C++ and is the poorer for it. It uses Booch's own notation which in my opinion is still the best notation so far seen but it is being eclipsed by UML and so is effectively obsolete. Booch is reputed to be bringing out a new edition using UML, but it's been a long time coming...

Object Oriented Software Construction (2nd Ed)
Bertrand Meyer. Meyer has his own OOP language - Eiffel and uses it to teach OO very effectively. Because Eiffel is (unfairly) a bit of a minority interest the book takes a little extra effort to read. It is undoubtedly worth it for the sheer breadth of coverage of the current OO technology scene.
Other books worth reading are:
Object Oriented Design Patterns
Gamma, Johnson et al. A revolutionary book when it came out. It contains a number of common OO design patterns and, perhaps more importantly, a notation for documenting them. There is now a flourishing patterns discussion and a dedicated web site with many additional patterns as well as variations of the ones in the book.

From Clouds to Code
Jesse Liberty(Wrox Press). This book takes you through the process of building a real OO application - warts and all. Its rather like our Case study but much bigger and includes use of design tools like UML.

Web sites to visit

Languages

Python

  • The Python web site
  • Mark Hammond's Python Starship connecting MS Windows and Python.
  • A Tkinter GUI tutorial
  • A Web Server development environment using Python.

    Tcl

    The definitive Tcl site at the time of writing - it has a habit of moving!

    BASIC

    The Microsoft web site for VB info

    There are other online web sites for VB resources: components, tips, chat-rooms etc.

    Other languages of interest

    Java, Javascript(or Jscipt), Perl, Smalltalk, Borland Delphi(and now Kylix)

    Programming in General

    Try finding some general programming links pages on Yahoo etc. There are several good ones out there, I have no particular favourite.

    Object Oriented Programming

  • The Cetus page again

    some specifics

  • Rational Corp make upmarket tools and host some useful information about OO development methods and the new UML modelling notation.

    Projects to try

    There are several ideas for projects listed in the tutorial. In addition I will give some ideas here, in approximately ascending order of difficulty. Most will be achievable with the skills learn't here but all of them can be improved by checking the documentation that comes with Python for alternatives. A couple will definitely require that you start digging for yourself, recall that one of the requirements of a good programmer was curiosity!


    Topics for further study

  • GUI with Tk
  • Web programming - CGI
  • Toolkits
  • Frameworks
  • Databases

    That's all there is. If you'd like to send me feedback on any aspect of the tutorial then send me mail.
    Thanks for getting here!