tags:

views:

2293

answers:

54

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.

+36  A: 

The Mythical Man-Month, Fred Brooks, 1975.

Greg Hewgill
Still this is relevant +1
Kb
Note that there is a newer edition published in 1995, with some new essays, some retrospective, and better/cleaner typesetting.
Novelocrat
+54  A: 

"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.

Anthony Cuozzo
I'm sorry if the post seems confusing, but someone edited it with the year of the first edition (instead of the year of the second edition).
Anthony Cuozzo
@Anthony Cuozzo, I didn't think it was confusing really.. I just wanted to add a date to keep in line with the rest of the posts, and then I gave it +1!
Simucal
I have the second edition as well, but a large part of even the first edition is still relevant.
Cervo
@Simucal: I understand. No offense meant or taken.
Anthony Cuozzo
@Cervo: I definitely agree.
Anthony Cuozzo
+6  A: 

Not that old, but I still like thumbing through The Mythical Man-Month

Though my copy is from 1995 not 1975 :'(

DavGarcia
I have the 1995 edition, but only because I loaned my 1975 edition to somebody along the way and never saw it again.
Greg Hewgill
Oh, the 20th Anniversary Edition! Have one.
MaxVT
There is a higher-voted MMM.
Jonathan Leffler
+7  A: 

Algorithms in C++, Robert Sedgewick, 1992.

Greg Hewgill
+1, but I have the earlier Algorithms in C version here. Nice clear exposition, with well thought-out illustrations.
RBerteig
+15  A: 

Programming Perl (O'Reilly Camel book), 1991. Always good for a refresher in perl.

DGM
I have never read the entire book, but this book is great, not only is it a pretty comprehensive reference on the Perl language, but it is a pretty interesting read instead of being dry like most references....
Cervo
+32  A: 

"Dragon Book" by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman

gonzo
+31  A: 

The Art of Computer Programming, Donald Knuth, 1973 (and earlier).

Greg Hewgill
I know that this is a classic, but (at the risk of being a heretic), what do you use it for? I found it mostly full of a lot of low-level algorithms that just aren't necessary in a modern programming environment. _Introduction to Algorithms_, by Cormen et al, seems more relevant
Gabe Moothart
+3  A: 

Domain-Driven Design: Tackling Complexity in the Heart of Software (2003) by Eric Evans

DavGarcia
+21  A: 

Programming Pearls, by Jon Bentley. First edition was published 1985.

Barry Brown
Awesome book...
hughdbrown
+11  A: 

I keep my copy of the LaTeX user's guide (1986) on my desk at home.

John D. Cook
Yup, that's one book I had to repurchase because I got rid of my original copy in the 90s after using FrameMaker/SGML a lot and thinking LaTeX was obsolete. Big mistake!
timday
+18  A: 

Design Patterns: Elements of Reusable Object-Oriented Software (1995) by GoF

DavGarcia
+5  A: 

"The Theory of Parsing, Translation, and Compiling" (volumes 1 and 2) by Alfred V. Aho and Jeffrey D. Ullman. Published in 1972!

Anthony Cuozzo
+6  A: 

"Advanced Programming in the Unix Environment (APUE) by W. Richard Stevens

robottobor
+13  A: 

The C++ Programming Language - 1986 (although I also have the third edition from 1997).

Eclipse
Same here, but I use 3rd edition.
Dmitri Nesteruk
I have the second and the special edition.
Rob K
+8  A: 

Numerical recipes in C, 2nd ed, by Press/Teukolsky/Vetterling/Flannery. 1992.

Federico Ramponi
Yep - although I use the Fortran version. (Gasp!)
MarkJ
That book has brought me nothing but pain -- see http://www.uwyo.edu/buerkle/misc/wnotnr.html
Ken
+8  A: 

The Elements of Programming Style by Kernighan & Plauger (2nd Edn, 1978) - reread periodically to remind me what I should be doing.

Jonathan Leffler
+22  A: 

Introduction to Algorithms (1990) from MIT Press

DavGarcia
Not the easiest read, but it is a pretty comprehensive algorithm study. I have the second edition but not that many changes over the first.
Cervo
+1 Best algorithms resource ever
Gabe Moothart
Third edition is out BTW: http://www.amazon.com/Introduction-Algorithms-Third-Thomas-Cormen/dp/0262033844
elhoim
+23  A: 

Structure and Interpretation of Computer Programs (The Wizard Book) by Abelson and Sussman. (1985, MIT Press)

Erik Öjebo
I'm still going through this book, a completely amazing read!!!
Cervo
A: 

Data Structures by Sahni

kal
+1  A: 

# 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)

krosenvold
+37  A: 

Code Complete Steve McConnell, 1993. It's not that old, but it is definitely a classic.

Kris Erickson
+3  A: 

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

Rob Wells
+6  A: 

Rapid Development - Steve McConnell- Amazon Link Published 1996. Provides a lot of good advice about managing the process of software development.

Quintus Marais
+8  A: 

Peopleware by Tom de Marco and Timothy Lister. First published 1987. Insights into the people aspects of development

Quintus Marais
+3  A: 

Computer Graphics: Principles and Practice in C (2nd Edition) (1995) by James D. Foley, Andries van Dam, Steven K. Feiner and John F. Hughes.

Jasper Bekkers
+3  A: 

"Algorithms + Data Structures = Programs", Niklaus Wirth, 1978

+1  A: 

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.

MattK
I immediately bought a copy after reading your post. This book seems very informative and useful. Thanks!
Jasper Bekkers
A: 

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.)

Jason S
+12  A: 

Expert C Programming - Deep C Secrets - 1993

This is one of my favorites that I like to re-read every now and then.

Paul Robinson
+3  A: 

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.

duffymo
+1  A: 

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.)

Norman Ramsey
A: 

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.

nchris
+3  A: 

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.

nchris
+1  A: 

Here's another classic: Numerical Methods that Work. First published in 1970, reprinted in 1990. Still one of my favorite books on numerical analysis.

John D. Cook
+1  A: 

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.

rjamestaylor
+3  A: 

Fred Brooks' The Mythical Man-Month, 2nd ed. published 1995. I have read it twice and still plan to read it again.

Buu Nguyen
There are two higher-voted MMM entries.
Jonathan Leffler
+7  A: 

The UNIX Programming Environment by Kernghan & Pike, from 1984. I'm surprised no-one else mentioned it before.

Jonathan Leffler
I considered mentioning it, but I've only "used" it recently in the sense of using what I learned long ago. So I didn't post any book at all -- it's pretty fuzzy.
Darius Bacon
(There are plenty of 70's books like that, though I'm having trouble thinking of any from the 60s that haven't been updated.)
Darius Bacon
Mostly I work on .Net stuff, but when I need to work in UNIX I refer to this book, or the only other UNIX book I own, UNIX In a Nutshell, with the referee on it. My copy of this from the early 90's still has green P-150 primer paint smeared on the back of it from my Navy days...
Bratch
A: 

Deitel and deitel c how to program

Can Erten
+1  A: 

The UNIX C Shell Field Guide -- Great read!

1986

A: 

‘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!

http://www.turingarchive.org/browse.php/B/7

Mark Harrison
A: 

Practical C Programming. It was my very first computer book.

Robert S.
+2  A: 

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. ;-)

RBerteig
+2  A: 

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.

Steve Melnikoff
A: 

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...

l_39217_l
+1  A: 

(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. :-)

T.E.D.
+2  A: 

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.

Carl Manaster
+2  A: 

Kernighan and Plauger's Software Tools.

joast
A: 

Forget the books, read blogs dude!

zvolkov
A: 

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.

RobH
A: 

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.

Peter Mortensen
A: 

"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.

Daedylus
+2  A: 

The Pragmatic Programmer, Andrew Hunt & Dave Thomas, 1999

Novelocrat
A: 

Sams "Teach Yourself C in 21 * 150 Days"

More useful than the title suggests ;-)

Indications this year suggest I might have graduated...

James Morris