If you are looking for *classics*, then you can't beat Michael Jackson's "Principles of Program Design" and "System Development". They are pre-ObjectOriented, but if you really want to understand what application programming is all about, this is where you should start.
I also recommend Eric S. Roberts "Thinking Recursively". I don't know if it can be considered a classic, but a good programmer needs to be able to understand and do recursion, and I found this book a very readable introduction. It may also help if you bring a tighter focus to your search. The domain of programming can be divided up into large subdomains, each with its own specialized types of problems, techniques and classics. Here are some subdomains that I can think of off the top of my head: system programming -- dealing with interacting with the computer at the bits and bytes level scientific programming -- dealing with algorithms business programming -- dealing with data structures and the events that change them embedded & real-time programming -- dealing with controlling machines ... and there are probably others, such as writing compilers/ interpreters, and robotics programming. -- http://mail.python.org/mailman/listinfo/python-list