The List
Johnny Cash is said to have given his daughter a list of 100 essential country music songs. As I am not much of a country music fan, here is a list of books well worth reading, at least for a computer scientist or computer engineer, or at least those who are something like me.
Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman: Compilers: Principles, Techniques, and Tools.
John Allen: Anatomy of Lisp.
Gregory R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming.
George Boole: An Investigation of the Laws of Thought.
Lewis Carroll: Alice's Adventures in Wonderland and Through the Looking-Glass.
Lewis Carroll: The Hunting of the Snark.
Martin Davis: The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions, Godel, Church, Turing, Rosser, Kleene, Post.
Martin Davis: Engines of Logic: Mathematicians and the Origin of the Computer.
Ole-Johan Dahl, Edsger W. Dijkstra, and C.A.R. Hoare; Structured Programming.
Edsger W. Dijkstra: A Discipline of Programming.
Edsger W Dijkstra: Selected Writings on Computing: A Personal Perspective.
W. H. J. Feijen and A. J. M. van Gasteren: On a Method of Multiprogramming.
Robert W. Floyd and Richard Beigel: The Language of Machines: An Introduction to Computability and Formal Languages.
David Gries: The Science of Programming.
Ralph E. Griswold: Macro implementation of Snobol 4: A Case Study of Machine-independent Software Development.
David Harel: Algorithmics: The Spirit of Computing.
Eric C.R. Hehner: Logic of Programming.
Eric C.R. Hehner: a Practical Theory of Programming.
John L. Hennessy and David A. Patterson: Computer Architecture: A Quantitative Approach.
C.A.R. Hoare and Cliff Jones: Essays in Computing Science.
Daniel Hoffman and David Weiss (eds): Software Fundamentals: Collected papers by David L. Parnas.
Douglas Hofstadter: Godel, Escher, Bach: An Eternal Golden Braid.
Douglas Hofstadter: Metamagical Themas.
Donald Mackenzie: Mechanizing Proof: Computing, Risk, and Trust.
Seymour Papert: Mindstorms.
Neil Postman: Technopoly: The Surrender of Culture to Technology.
Allen M. Stavely: Toward Zero-Defect Programming.
Neal Stephenson: Cryptonomicon.
James E. Thornton: Design of a Computer: the Control Data 6600.
Edward Tufte: The Visual Display of Quantitative Information.
Edward Tufte: Envisoning Information.
Edward Tufte: Beautiful Evidence.
Edward Tufte: The Cognitive Style of PowerPoint.
Niklaus Wirth: Algorithms + Data Structures = Programs.