|
Recommended Reading |
|
Introduction
In the last year or so, several graduating students asked me to recommend
books that they should read now that they had some free time. First, I
chuckled and wished them luck finding free time in their work-a-day worlds.
Then I tried to construct a list of good books tailored for that person,
usually repeating lots of books from a list I gave someone else earlier.
As a strong proponent of Once and Only Once in programming, I knew that
it was time to write some recommendations down in one place.
Future plans include annotating these entries with my thoughts on the
books.
The List
Here are some of my thoughts. I hope you find one or more of them useful.
At this point, my list contains only books that could be related in some
way to the professional life of a computer scientist. I think that all of
the books in a list other than "computer science books" will be useful to
someone not in computing -- indeed, I would recommend most of them to
almost everyone. But I haven't branched out to include everything
(fiction, sports, games, history, ...) ... in the interest of time.
If you read one of these books (especially after having seen the
recommendation here), please let me know what you thought. If you would
like to recommend other books, too, please let me know, too. You will
find a link below where you can make comments for the world to see.
- Computer Science books
- Abelson and Sussman,
"The Structure and Interpretation of Computer Programs"
[ the best book ever written about computer science
is now available
on-line ]
- Peter Norvig, "Paradigms of Artificial Intelligence Programming"
- Kent Beck, "Smalltalk Best Practice Patterns"
- Kent Beck, "Kent Beck's Guide to Better Smalltalk"
- Martin Fowler, "Refactoring"
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides,
"Design Patterns"
- Brook Conner, David Nigidula, and Andy van Dam,
"Object-Oriented Programming in Pascal"
- To call the "computer science books" would do them a disservice:
- Herbert Simon, "Sciences of the Artificial"
- Herbert Simon, "Models of My Life"
- Richard Gabriel, "Patterns of Software"
- Gerald Weinberg, "Understanding the Professional Programmer"
- Other books you must read:
- Robert Pirsig, "Zen and the Art of Motorcycle Maintenance"
- Stewart Brand, "How Buildings Learn"
- Douglas Hofstadter, "Godel, Escher, Bach"
- Donald Norman, "The Design of Everyday Things"
- Betty Edwards, "Drawing on the Right Side of the Brain"
- Thomas Kuhn, "The Structure of Scientific Revolutions"
- Books that will help you to improve your writing:
- William Zinsser, "On Writing Well"
- Joseph Williams, "Style"
- Edward Tufte, "The Visual Display Of Quantitative Information"
- Topic-specific CS books that I recommend:
- Stanley Lippman, "C++ Primer"
- Kent Beck, "Extreme Programming: Explained"
Comments
Let us all know what you think about these books or other books you
think we should read!
Post and read comments
Eugene Wallingford ====
wallingf@cs.uni.edu ====
December 7, 2001