2009/7/22 John Fereira <[log in to unmask]>: > Some good answers so far... > > First, regarding books. While the suggestion of avoiding "dumbed downed" > books has some merit it is worth noting the distinction between books that > are primarily used for reference and books that are more about theory. I > haven't fund much use for "reference" books so much as usually the same > material can be found online and kept more up to date. However, theory > books on algorithms and software design can provide a good background on > how, in general, to write good code. Very true. And the paradoxical upshot is that these days, some of the best books on programming are old ones, which a few years back would have been thought of as outdated. In particularly, I can't speak highly enough of Jon Bentley's classic _Programming Pearls_ (originally 1986, second ed. 1999), which is chatty and anecdotal yet rigorous, and will help you to _think_ like a programmer, as opposed to merely accumulating techniques. Maybe even better is Kernighan and Plauger's tour de force _Software Tools_ (1976!) In 320 pages, they start by developing a program to copy its input to its output, and end up by showing you how to design and build a macro processor and programming-language pre-processor -- covering sorting, pattern matching and a hundred other topics along the way. I know of no other book that goes from 0 to 60 so rapidly, readably and painlessly. The language that the tools are written in (RATFOR) is hopelessly outdated now, but the princples are timeless. These are books that I have come back to time and time again. They contain treasures worth a hundred time more than whatever currently trendy Design Pattern is being pushed by this month's hot book. Hope this helps.