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.)
[ADA74a]
James L. Adams, Conceptual Blockbusting, W. H. Freeman and
Company, San Francisco, 1974.
Blocks to problem solving and ways to overcme them.
[BLA74a]
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.
[CAP87a]
Nicholas Capaldi, The Art of Deception, Prometheus Books,
Buffalo, NY, 1987.
Winning arguments, recognizing fallacies, seeing through deceptions,
persuading skeptics.
[GAR81a]
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.
[HUFF54a]
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.
[KIM78a]
Gregory A. Kimble, How To Use (and misuse) Statistics, Prentice-Hall,
Englewood Cliffs, 1978.
Related to HUFF78A, but more a textbook.
[MON91a]
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!
[NOR88a]
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.
[PAP73a]
Victor Papanek, Design for the Real World, Bantam Books,
Toronto, 1973.
Appropriate design.
[PAP77a]
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.
[PAUL88a]
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.
[PET82a]
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.
[RAN86a]
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.)
[STR79a]
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.
[TUF83a]
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....
[Tufte 90a]
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.
[BEL71a]
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.]
[BEL78a]
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?]
[GOL88a]
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.
[HEN90a]
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]
[JAIN91a]
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.