A while back I'd posted a list of books, and I've gotten some more requests for it .... so here are 2: one on general topics relevant to these newsgroups, and the other on computer archiecture & performance evaluation.
Occasionally, people send e-mail asking for references on good books in computer architecture and design. (That might make a good discussion topic: what are your choices for the top 5-10 such books? and why? (there are some holes in this list)Following is NOT my list for that topic, but for a list of books to read BEFORE thinking about computer architecture and design. None of them look like they have anything to do with computer design, but I think they have useful lessons in: problem-solving: ADA74a (and numerous Martin Gardner books) critical thinking: GAR81a, RAN86a, CAP87a. numbers, especially probability and statistics: HUFF54a, PAUL88a, KIM78a (in that order). good design and bad design, other areas of engineering: BLA74a, NOR88a, PAP73a, PAP74a, PET82a clear expression of ideas, in English or graphics: STR79a, TUF83a, TUF90a, MON91a.
All are well-written, often amusing, and are generally written not for an expert in the field, but for the intelligent layperson. (What's missing is an equally good book on basic logic; maybe someone can suggest one.)
James L. Adams, Conceptual Blockbusting, W. H. Freeman and Company, San Francisco, 1974.
Blocks to problem solving and ways to overcme them.
Peter Blake, Form Follows Fiasco, Why Modern Architecture Hasn't Worked. Little, Brown, and Company, Boston/Toronto, 1974.
Architectural fantasies that haven't produced liveable and useable designs, and why.
Nicholas Capaldi, The Art of Deception, Prometheus Books, Buffalo, NY, 1987.
Winning arguments, recognizing fallacies, seeing through deceptions, persuading skeptics.
Martin Gardner, Science, Good, Bad, and Bogus, Prometheus Books, Buffalo, NY, 1981.
Pseudoscience; ESP; famous fakes and unmasking thereof; marginal cases; many lessons in critical thinking and the differences between good science, bad science (i.e., honest, but poorly-controlled experiments), and outright fakery. Goes with [RAN86a]; if you like either of these, consider subscribing ($22.50/year) to: The Skeptical Inquirer Box 229 Buffalo, NY 14215-0229 This is published by the Committee for the Scientific Investigation of Claims of the Paranormal (CSICOP), whose Fellows include such folks as: Isaac Asimov, Murray Gell-Mann, Douglas Hofstadter, Carl Sagan, B. F. Skinner, and many other sharp folks.
Darrell Huff, How to Lie With Statistics, W. W. Norton & Com- pany, New York, 1954.
Now in 41st printing, and in bookstores right now for about $5, a bargain classic.
Gregory A. Kimble, How To Use (and misuse) Statistics, Prentice-Hall, Englewood Cliffs, 1978.
Related to HUFF78A, but more a textbook.
Mark Monmonier, HOW to LIE with MAPS, University of Chicago Press, Chicago and London, 1991.
Amusing essay on critical thinking and maps, i.e., ways to achieve clarity of presentation and avoid pitfalls, and also ways of recognizing cartographic trickery. If you think people can be tricky with statistics, just wait till you see what they can do with maps!
Donald A. Norman, The Pyschology of Everyday Things, Basic Books, New York, 1988.
A readable introduction to human-usability design, with many examples (good and bad) from everyday life, including many computer-related ones.
Victor Papanek, Design for the Real World, Bantam Books, Toronto, 1973.
V. Papanek and J. Hennessey, How Things Don't Work, Pantheon Books, New York, 1977.
Good thoughts for designers of anything. See Chapter 7 especially.
John Allen Paulos, INNUMERACY, Mathematical Illiteracy and its Consequences, Hill and Wang, New York, 1988.
An excellent book about critical thinking about numbers for the the non-mathematician.
Henry Petroski, To Engineer Is Human: The role of failure in successful design. St. Martin's Press, New York, 1982.
Most examples come from civil engineering, i.e., bridges, buildings, but other areas of engineering are included. Of course, failures in this area are amongst the most spectacular in all of engineering.
James Randi, Flim-Flam - Pyschics, ESP, Unicorms, and Other Delusions, Prometheus Books, Buffalo, NY, 1986.
"The Amazing Randi" looks at the history of some of the sillier cases; amusing tales of the many contenders for Randi's $10K reward for provable psychic events (yet to be won); why scientists should always include a magician in the group when studying such things. (Scientists are often good at experimental design when studying the universe, but they aren't use to the universe trying to hoax them; magicians seem better at experimental design for detecting hoaxes.)
W. Strunk, Jr., E. B. White, The Elements of Style, 3rd Edition, MacMillan, New York, 1979.
Anyone who writes in the English language should have this.
Edward R. Tufte, The Visual Display of Quantitative Information, Graphics Press, Cheshire, CT, 1983.
A wonderful book on how to tell the truth well, with graphs, and how to recognize graphical gimmickry, as well. Chapter 2, ``Graphical Integrity'' is especially useful. Also, how not to get carried away with the ``chartjunk'' made possible by current desktop publishing systems....
Edward R. Tufte, Envisioning Information, Graphics Press, P.O. Box 430, Cheshire, CT, 06140, 1990.
Another beautiful book. If the previous one was "clarity of visual presentation", this one is "eloquence of visual presentation".
Occasionally, people send e-mail asking for references on good books in computer architecture and design, or sometimes industry analysts ask me for references to sources to help them disentangle the contradictory things they hear, without getting too deep in the details. [I could use a few more references; maybe people will suggest some.]
Following is my (short) list on these topics. If you read exactly one book, get HEN90a: I've sometimes recommended this for Wall Street analyst friends, who've read many sections and found it useful.
C. Gordon Bell, Allen Newell, Computer Structures: Readings and Examples, McGraw-Hill, 1971.
Collection of numerous papers, with commentary and analysis by the authors on computer architecture of the 1950s and 1960s. [I have no idea if this is still in print. If not, it's too bad, as this is a good source for the student of architecture, and it describes many things as They Used to Be In the Good Old Days, including one of the earliest desktop computers, the Olivetti Programma 101, on which I did some of my earliest programming.]
C. Gordon Bell, J. Craig Mudge, John E. McNamara, COMPUTER ENGINEERING: A DEC View of Hardware Systems Design , Digital Press, 1978.
This is another great source of historical information, but some of the discussions on computer evolution patterns and economics (as in Chapters 1,2,3) remain quite relevant, even as the underlying technology has changed substantially. Chapter 16 (Evolution of the PDP-11) is a fine retrospective case study. [Is this still in print, I hope?]
Adele Goldberg, Ed. A History of Personal Workstations, ACM Press, Addison Wesley, New York, 1988.
Exactly what the title says, with articles by many of the key people.
John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann, San mateo, CA, 1990.
The instant classic on computer architecture that has become the standard textbook on this topic. [get the 2nd Edition, 1996, ISBN 1-55860-329-8, as some of the chapters are quite improved]
Raj Jain, The Art of Computer Systems Performance Analysis, John Wiley and Sons, New York, 1991.
The first two parts discuss common mistakes, methodologies, workload selection, relevant data presentation issues. The third is a good introduction to probability and statistics relevant to computer performance analysis. The fourth through sixth parts include some fairly serious math, simulation, and queuing theory, but parts one through three can be read without needing a strong mathematics background.