Structured Design. Edward Yourdon and Larry L. Constantine. Prentice-Hall, 1979.
This was one of the early structured "standard works" that I've only just gotten to for the first time. I'd learned things like coupling and cohesion, afferent and efferent flows, and the concept of factoring, but it's much stronger coming directly from this source. Not everything here is compatible with the way I think about design, but this is one of those books that deserve repeated study.
Current Trends in Programming Methodology, Volume 4: Data Structuring, Raymond T. Yeh, editor. Prentice-Hall, 1978.
In parallel with "structured programming," (which often focused on code structure), there was more esoteric work done on "structured data." A lot of this found fruition in things like container libraries. (Few people write their own hash tables any more.) But there was a deeper side of this that explores formal methods for data structures. This out-of-print collection of articles explores many aspects of the algebra of data structures. (Reviewed Dec., ’07)
A Software Tools Sampler, Webb Miller. Prentice Hall, 1987.
Unix and its tools are still important, even if the modern GUI mostly ignores their abilities. This book provides algorithms and C code for file updating, comparison, searching, and editing. It’s probably not the most modern guide to any of these, yet I find myself going back to it every two or three years. (Reviewed June, ’05)
The Art of Software Testing, Glenford Myers. Wiley, 1979.
Dated? Yes, but I still like it. (Reviewed Nov., '02)
The Art of Computer Programming, Donald E. Knuth. Addison-Wesley, 1998 (boxed set edition).
I wish I were enough of a mathematician to understand it all, but time studying these books has always been worthwhile. I'm hoping for volumes 4 and 5:) (Reviewed Nov., '02)
Gödel, Escher, Bach: An Eternal Golden Braid, Douglas R. Hofstadter. Basic Books, 1999 (20th anniversary edition).
An exploration of music, math, and art, and how they intertwine with computers. (Reviewed Nov., '02)
Design Patterns, Erich Gamma et al. Addison-Wesley, 1995.
A catalog of 23 patterns used in object-oriented design. It's a little new to be called a classic, but I'll go out on a limb for this one. (Reviewed Nov., '02)
Peopleware: Productive Projects and Teams, Tom deMarco and Timothy Lister. Dorset House, 1999 (2/e).
Ways to make teams productive. (Reviewed Nov., ’02)
Structured Programming O.-J. Dahl, E. W. Dijkstra, and C.A.R. Hoare. Academic Press, 1972.
Dijkstra explains structured programming (with an eye to proofs), Hoare explains data structures, and Dahl and Hoare explain something called "objects." Note the publication year. (Reviewed Nov., '02)
The Mythical Man-Month, Fred Brooks. Addison-Wesley, 1995 (2/e).
“Adding people to a late project makes it later.” This and other observations about software and software teams. If you’ve never read it, you owe it to yourself to find out what our field knew 25 years ago. (Reviewed Nov., ’02)
Programming Pearls, Jon Bentley. Addison-Wesley, 1999 (2/e).
More Programming Pearls, Jon Bentley. Addison-Wesley, 1988.
These truly are pearls: great lessons in programming in the small. (Reviewed Nov., '02)
Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Addison-Wesley, 1986.
The infamous "dragon book." There are plenty of things it doesn't cover, but it provides a theory-based look at the basics of scanning, parsing, semantics, and code generation. (Reviewed Nov., '02)