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:
- Python - How to Program
- Dietel & Dietel - ???
This takes a fairly fast paced trip through Python and introduces
lots of the interesting packages you might like to use
- TCP/IP networking, Web programming, PyGame etc. It's big
but very comprehensive, although not in-depth.
- Programming Python
- Mark Lutz - O'Reilly press. The classic text. The second edition
has less tutorial (his Learning Python book now covers that ground)
but describes the whys and wherefores of the language better than
many of the the others, it is strong on coverage of the more unusual
modules and OOP.
- Python Programming on Win32
- Mark Hammond & Andy Robinson - O'Reilly press. This is an
essential read if you are serious about using Python on a Windows
box. It covers access to the registry, ActiveX/COM programming,
various GUIS etc.
- Python and Tkinter Programming
- John Grayson - Manning press. This is the only real in depth
book on Tkinter and does a fair job of covering the ground,
including the bolt-on PMW set of widgets. Its not a basic tutorial
but it does provide a reasonable reference for the serious Tkinter
GUI programmer.
- Python in a Nutshell
- Alex Martelli - O'Reilly press. Alex is one of the mainstrays
of the Usenet Python community and hit Nutshell book is the best
concise reference on Python currently available. It is not a
tutorial although it does cover the basics as well as most of
the common modules.
- Python Essential Reference
- David Beasley - New Riders. This is New Riders equivalent
to O'REilly's Nutshell book. It is similar in scope but sligtly
slimmer and based on Python 2.1 rather than Martelli's 2.2.
Unfortunately for Beasley a lot of new stuff appeared in 2.2
so he misses out in the best reference award. Still an excellent
book.
There is also an excellent online book for more advanced
Python programmers called
Dive into Python
There is now a new generation of Python books appearing
on specialist topics, there are books focussing on text
handling, GUI programming, Network programming, Web and XML
programming, Scientific computing etc etc. Python is really
coming of age as a language and the number and depth of
books now available reflects that.
Tcl/Tk
- Tcl and the Tk toolkit
- John Ousterhout - Addison wesley. The classic on Tcl/Tk 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).
- Tcl/Tk in a Nutshell
- Raines & TRanter - O'Reilly press. This is the book I
turn to first when looking for Tk information. It's only the
first couple of sections that interest the Python programmer
since that's where the bits relevant to Tkinter live. On the
other hand, you might like the look of Tcl too and be
motivated to experiment, and that's never a bad thing!
VBSCript
There are several books on VBScript but the only ones
I have used and can thus recommend are:
- Windows Script Host
- Dino Esposito - Wrox press(now defunct). A good intro to
WSH including both VBScript and JScript. But its not a tutorial
and the reference section is very brief.
- VBScript in a Nutshell
- Lomax et al - O'Reilly press. Good reference but the
tutorial section is very sparce and only suitable if you
know how to program (eg. you've done my tutor! :-). As a
reference it is quite good but misses out by not providing
a code example per function.
JavaScript
There are lots of books on JavaScript but most of them
focus very heavily on the Web, it can be hard sometimes to
disentangle what features are JavaScript the programming
language, and what are web browser features. The best
JavaScript books that I know are:
- JavaScript the Definitive Guide
- Flanagan - O'REilly press. This was indeed the definitive
guide for a long time and although getting a little old
now is still the best single book on the subject, if a little
dry.
- THe JavaScript Bible
- Danny Goodman - SAMS(?). This gets good reviews from
friends and colleagues but I confess not to having read it.
It is supposed to be a slightly nore readable book than the
Flanagan one.
There are lots of others, read the reviews, choose your
budget and pick one.
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.