Over the years I have picked up a number of computer books. Some I have purchased for classes, others I have bought out of my own interest. I have also scoured various libraries to see what sort of selection of computer books they have.
Through all of this I have come across books that I feel should be in every programmer’s personal library. Some are for general programming, others are more language specific. I don’t believe my list is complete as I am always reading books that I am happy to discover are “classics.”
General Programming
“Elements of Programming Style” by Kernighan and Pike is a classic. It’s second edition has been in print since 1978 and could stand to be updated. It’s examples are in Fortran, a language now almost out-dated. Some of thier rules are aimed at Fortran and like languages. But overall it covers all aspects of writing good code. ( I got lucky and found my copy at a library book sale for 50 cents 🙂 )
“Software Tools” by Kernighan and Plauger. This book defined what is meant by software tools and how they are used together to solve problems. It covers the basic tools used in UNIX and other operating systems, like COUNT (wc), EDIT (ed), FORMAT (nroff like), etc.
“Mythical Man-Month” – I’ve forgotten the author’s name, but this book has been around for years, so it should be easy to find. The author was involved with the development of OS/360 for IBM. He has taken what he learned from that and other projects, and created a book that details the process of software project management. A must read if you work with a number of programmers on a project.
“Programming Pearls” and “More Programming Perls” by Jon Bently. Jon used to write a column called “Programming Pearls” for “Communications of the ACM”. These columns have been worked into two books. They cover programming topics in an easy to read manner with lots of sample code. The second book is the better of the two. I found the chapter dealing with Little Languages inspiring.
“The Knuth Books” – I can’t remember the names of the three volume set, but this alias should be recognized by all. Don Knuth has written three volumes of a projected 7 volume set. The most popular of the three is the one on sorting. This book covers all aspects of sorting. The are two problems with these books: One, they are tough to read. They are written for those familiar with college level math. And, secondly, they are not cheap. The current cost per volume is about $50-60 (and this is a rough guess).
Language Books
“The C Programming Language” by Kernighan and Ritchie (first and second edition). This book is know simply as K&R. To distinquish between the editions most people say K&R 2nd Ed. and K&R 1st Ed. If you program in C, this is the book to get. Personally, I have both editions.
“The AWK Language” by Aho, Weinberger, and Kernighan. This is THE book for AWK. It is in the same style and approach as K&R. It’s small, compact, and easy to read.
“Postscript” – There is a series of books on Postscript put out by Adobe that are very good. If you need to learn Postscript, these books cover it all.
I don’t know of any other books that are the definitive for thier respective language. BASIC is too diverse to have one grand reference book. I do have a T/S 1000 ROM disassembly book that I will never part with. At the very least I can use it to study how a computer ROM is done.
Source Books
“PC-SIG Directory” – Even though I am mostly a QL user, I do have an IBM laptop that I use. The PC-SIG directory is a source to hundreds of free/shareware disks. Plus the PC-SIG library is available via ANON-FTP.
“C Users Group Library Volumes 1-3” – The C Users Group (who publish the “C Users Journal”) is a good source for free C source code. They carry C source from the CP/M world, MS-DOS, OS-9, and UNIX. For other computers they will put it in thier library, but have an outside person support copying it for them. If there is enough support, they might even list stuff for the QL.
Other Books
“Fire in the Valley” by Swaine and Freiburger. This book throughly covers the start of the personal computer industry in Silicon Valley. It does stray out of the valley to cover MITS in New Mexico and some events on the east coast. It does not cover any computer development in Europe. There is one slight mention about Sinclair computers and one picture of Sir Clive Sinclair.
“Hackers” by Steve Levy. This book is best for its coverage of the hacker phenomonon at MIT in the early and late sixties. It really covers how computer programming as a passion got started. Does cover Steve Wozniac and Sierra On-Line, the software company.
“Cookoo’s Egg” by Clifford Stoll. This is a great book to curl up with. It covers the break-in and capture of some German crackers that tried to break into some American systems. Very easy to read. This book was used as the basis for a NOVA (PBS) episode.
“The Devouring Fungus” by Karla Jennings. This book is a collection of humorous computer stories, most taken from the Internet. Some of the stories I have heard before, others were new to me. Good light reading.
This is just my list. I’m interested in hearing other opinions. Let me know what other books I should add to the list.