Good books in computer science?

Phil Runciman philr at
Sun Jun 14 23:38:20 EDT 2009

>Rhodri James wrote:
>> On Sun, 14 Jun 2009 14:19:13 +0100, Graham Ashton 
>> <graham.ashton at> wrote:
>>> On 2009-06-14 14:04:02 +0100, Steven D'Aprano 
>>> <steve at> said:
>>>> Nathan Stoddard wrote:
>>>>> The best way to become a good programmer is to program. Write a lot of
>>>>> code; work on some large projects. This will improve your skill more 
>>>>> than
>>>>> anything else.
>>>>  I think there are about 100 million VB code-monkeys who prove that 
>>>> theory
>>>> wrong.
>>> Really? So you don't think that the best way to get good at something 
>>> is to practice?
>> Self-evidently.  If what you practice is bad practice, it doesn't matter
>> how much you practice it you'll still be no good at good practice in
>> practice.  Practically speaking, that is :-)
>True. And there's no point in practising if you don't understand what
>you're doing or why you're doing it that way. There are plenty of good
>tutorials for Python, for example, but if you can't follow any of them
>(assuming that it's not just a language problem), or can't be bothered
>to read any of them, then you probably shouldn't be a programmer.

If you are given to depression then programming is possibly not for you.

Keep tackling problems that are beyond your current capabilities.

Think about what you are doing... this is more subtle that you might grasp at first.

Know there is always a better way and seek it.

Prime your thinking by reading Edsgar Dijkstra. Dijkstra's "Notes on Structured Programming" are a good read and are probably available on the 'Net by now. You will see that his concerns had practically nothing to do with "Goto Considered Harmful". That was a later observation made as a result of checking students programs. His notes were knocking around in the UK back in 1966 and earlier. His co-authored book on "Structure Programming" is good reading even now. (O-J Dahl, EW Dijkstra, and CAR Hoare). See for his famous EWD series of notes. 

Gain access to one of the IEEE or ACM web sites and their resources. I used to sneak into my local university library before the 'Net to read this stuff. 

Beyond that I check up on the reading lists for CS students from time to time. This often throws up real gems and prevents me from being blind-sided.

Beware any "programmer" who only knows one computer language and only one OS, especially if this is either windows or a version of UNIX. 

My 2c worth

More information about the Python-list mailing list