Most books on a programmer's bookshelf are very new. What are some books that have stood the test of time? What are some of the oldest programming books you still refer to?
Please list one book per answer so they can be voted on individually.
Most books on a programmer's bookshelf are very new. What are some books that have stood the test of time? What are some of the oldest programming books you still refer to?
Please list one book per answer so they can be voted on individually.
"The C Programming Language" (K&R2) by Brian W. Kernighan and Dennis M. Ritchie.
1988 (not 1978! I wrote K&R2 for a reason!)
It is indispensable.
Not that old, but I still like thumbing through The Mythical Man-Month
Though my copy is from 1995 not 1975 :'(
Programming Perl (O'Reilly Camel book), 1991. Always good for a refresher in perl.
The Art of Computer Programming, Donald Knuth, 1973 (and earlier).
Domain-Driven Design: Tackling Complexity in the Heart of Software (2003) by Eric Evans
Programming Pearls, by Jon Bentley. First edition was published 1985.
I keep my copy of the LaTeX user's guide (1986) on my desk at home.
Design Patterns: Elements of Reusable Object-Oriented Software (1995) by GoF
"The Theory of Parsing, Translation, and Compiling" (volumes 1 and 2) by Alfred V. Aho and Jeffrey D. Ullman. Published in 1972!
"Advanced Programming in the Unix Environment (APUE) by W. Richard Stevens
The C++ Programming Language - 1986 (although I also have the third edition from 1997).
Numerical recipes in C, 2nd ed, by Press/Teukolsky/Vetterling/Flannery. 1992.
The Elements of Programming Style by Kernighan & Plauger (2nd Edn, 1978) - reread periodically to remind me what I should be doing.
Structure and Interpretation of Computer Programs (The Wizard Book) by Abelson and Sussman. (1985, MIT Press)
# 1996. Smalltalk Best Practice Patterns. Prentice Hall.
Even though it's been over 10 years since I programmed smalltalk, I occasionally read it to be inspired by beautiful code and Kent Beck's amazing thoughts on what constitutes good code. Really a subtle book with a huge story to tell.
The book has been more or less re-released as a java version, which I also have, But if I want something beautiful it's always the original (much nice can be said about java, but it's not a beautiful language like smalltalk)
Code Complete Steve McConnell, 1993. It's not that old, but it is definitely a classic.
Jerry Weinberg's "The Psychology of Computer Programming" I'm now on to my fifth copy, the new updated 25th anniversary edition (sanitised Amazon link), as people keep borrowing them and then I never see it again! (-:
I first read about it in Ed Yourdon's book "The Decline and Fall of the American Programmer" (sanitised Amazon link). This book is rather dated now with it's emphasis on CASE tools, but the appendix about the programmer's bookshelf is definitely worth the purchase price which is currently $0.01 for a used copy! There are quite a few books listed here that you wouldn't normally see on a programmer's bookshelf. Best thing is the accompanying text where Ed talks about why he's included the books.
HTH
cheers,
Rob
Rapid Development - Steve McConnell- Amazon Link Published 1996. Provides a lot of good advice about managing the process of software development.
Peopleware by Tom de Marco and Timothy Lister. First published 1987. Insights into the people aspects of development
Computer Graphics: Principles and Practice in C (2nd Edition) (1995) by James D. Foley, Andries van Dam, Steven K. Feiner and John F. Hughes.
Besides a lot of the books other people have mentioned: The Black Art of 3D Game Programming, Lamothe, 1995. I learned the basic math of 3D graphics from this book, and still use it as a reference all the time.
Hart, John. "Computer Approximations", 1968 (reprinted 1978). Invaluable for calculation of nontrivial functions like sqrt/cos/sin/log/erf etc., though it's out of print. (see Jack Ganssle's website for some discussion.)
Expert C Programming - Deep C Secrets - 1993
This is one of my favorites that I like to re-read every now and then.
Martin Fowler's "UML Distilled" is the still the best UML book out there. It's a rarity in today's publishing world: thin, but packed with good information.
I see it's in its third edition now, which is testament to its staying power, but I bought the first edition back in 1997.
P. J. Brown, writing interactive compilers and interpreters, early 1970s. (Mine is in a box because my office shelves are not installed yet; thus the inexact date.)
Fundamentals of Operating Systems, 5th edition - A.M Lister and R.D. Eager (1993)
Don't actually program for OS's but I enjoyed reading it the first few times, and I like to refresh on some topics now and then.
Design Patterns Elements of Reusable Object-Oriented Software - GOF (1995) Introduction to Algorithms, 2nd edition (2001) - MIT Press
Grouping these tow as they have already been mentioned, but I thought those are really the books I refer to often.
Here's another classic: Numerical Methods that Work. First published in 1970, reprinted in 1990. Still one of my favorite books on numerical analysis.
Interesting question. Made me realize that (1) I have no "new" programming books and (2) I don't use many "old" ones anymore. Almost exclusively I use the Internet as my reference material for programming and system administration.
Fred Brooks' The Mythical Man-Month, 2nd ed. published 1995. I have read it twice and still plan to read it again.
The UNIX Programming Environment by Kernghan & Pike, from 1984. I'm surprised no-one else mentioned it before.
‘Faster than thought’, ed. B.V. Bowden, London 1953. Published by Pitman Publishing.
The chapter ‘Digital computers applied to games’ is by Alan Turing.
I got this at a garage sale in 1980 for 25 cents. Now thanks to the Internet everybody can read it!
The Visual Display of Quantitative Information, by Edward Tufte. Actually, all the rest of his books are good too, but the first is the classic. At first glance this isn't a programming book. But it really is about the display of information, and good GUI design is really about the guiding the user's eye to the important information and controls.
It doesn't hurt that the production value on this book is impressive, either. It can be left out as a decent coffee table art book when not needed as a reference. ;-)
The Design of Everyday Things (Donald A Norman), first published in 1988.
It's not specifically a programming book, but obviously similar rules apply to anything with which a user has to interact, be it a GUI or a teapot.
Professional Java Security Wrox Press; 1st edition (May 2001)
I was reading it this morning.....Some things are dated but still a pretty good book on Java Cryptography APIs...
(I have no idea why anyone would vote this up, but here goes...)
Sitting here on my bookshelf is a copy of A Book on C, (first edition) by Al Kelley and Ira Pohl. Copyright 1984, bought 1985. The back cover has fallen off, as has part of the spine. I don't actually use C, but enough of the basics of C++ are the same that this book is useful if I want to refresh my memory of things like how to declare a ragged array, what "%" code to use for a double with no less than 5 characters, which term gets returned by the comma operator, etc.
Also, I know right where to turn in it to get at the ASCII table. Its way quicker than Google. :-)
Refactoring: Improving the Design of Existing Code. Martin Fowler, 1999
I've got plenty of older books, but honestly I don't refer back to them much at all.
Principles of Interactive Computer Graphics by William M. Newman and Robert F. Sproull, 1978, second edition, 1979.
While much of what is covered is probably already implemented in third party libraries these days, there is a lot of good information in there for those who prefer to (or must, for whatever reason) roll their own graphics routines.
It also gives you pretty good insight on how computer graphics works.
FORTH, a text and reference. Mahlon G. Kelly and Nicholas Spies. ISBN 0-13-326349-5 / ISBN 0-13-326331-2. 1986 Prentice-Hall.
Leo Brodie's books are good but this book is even better. For instance it covers defining words and the interpreter in depth.
"C++: The Complete Reference" by Herbert Schildt (third edition) has been on my shelf for about 9 years, and I still pull it down and look something up about once a week.
Sams "Teach Yourself C in 21 * 150 Days"
More useful than the title suggests ;-)
Indications this year suggest I might have graduated...