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.