Printed words on dead trees is still my preferred way to read about IT topics. I am a huge fan of technical books and I house a library of hundreds of them in my home office. I believe that there is no better mechanism for digging in and learning a new subject than to wrap your hands around a book and to start reading.
I know that many of you have embraced ebook readers (like the Amazon Kindle) — and so have I. Just not for tech books. I’ll read a novel or a bio on my Kindle, but I still find it hard to navigate and utilize a tech book in any other format than an actual printed book on paper.
But back to the topic at hand — and that is to discuss a core set of books that should be in any IT professionals library. It doesn’t really matter whether you have access to these books in print or as an ebook, just that you have access to them.
So here it is, my version of a good, basic library of IT books that every computer professional should own. These books are classics in the field, or should be. I have excluded books on narrow topics like specific programming languages, operating systems, and database management systems. All of the following books are useful to anyone who is employed as a professional in the field of Information Technology.
The first book any IT professional should own is The Mythical Man-Month (Addison-Wesley Pub Co; ISBN: 858-0001065793) by Fred Brooks. Fred Brooks is best known as the father of the IBM System/360, the quintessential mainframe computer. This book contains a wealth of knowledge about software project management including the now common sense notion that adding manpower to a late software project just makes it later. The 20th anniversary edition of The Mythical Man-Month, published in 1995, contains a reprint of Brooks’ famous article “No Silver Bullet” as well as Brooks’ reflections on the twenty years since the book’s publication. If creating software is your discipline, you absolutely need to read and understand the tenets in this book.
Another essential book for technologists is Peopleware (Dorset House; ISBN: 0932633439) by Tom DeMarco and Timothy Lister. This book concentrates on the human aspect of project management and teams. If you believe that success is driven by technology more so than people, this book will change your misconceptions.
And if you ever are going to write a line of code, you really should be familiar with the Donald Knuth’s multiple volume opus on The Art of Computer Programming. This multi-volume reference is certainly the definitive work on programming techniques. Knuth covers the algorithmic gamut in this set, with the first volume devoted to fundamental algorithms (like trees and linked lists), a second volume devoted to semi-numerical algorithms (e.g. dealing with polynomials and primes), a third with sorting and searching, and a final volume dealing with combinatorial algorithms. Even though a comprehensive reading and understanding of this entire set can be foreboding, all good programmers should have these techniques at their disposal.
Transaction processing is at the heart of many computerized systems, but not everybody has a firm understanding of the concepts and techniques that underlie transactional systems. I think the best place to start to acquire such knowledge is with Transaction Processing: Concepts and Techniques by Jim Gray and Andreas Reuter (Morgan Kaufmann, ISBN: 1-55860-190-2). This book expounds on implementing high-performance, high-availability systems for conducting transactions. Understanding the material here will make you a better programmer or DBA because you will understand the basics of how transactions work.
A more recent classic is Nicholas Negroponte’s Being Digital (Vintage Books; ISBN: 0679762906). First published in 1995, “Being Digital” challenged the reader to rethink reality. The book weaves the history of media technology and ponders the future of the human interfaces to technology. The book is not technologically challenging, and some of the discussion is outdated, but “Being Digital” is a book that will encourage you to think differently about the world and technology’s place within it.
Information is the cornerstone of IT, so we should understand the difference between data, information, and knowledge. Information Anxiety 2 (Hayden/Que; ISBN: 978-0789724106) by Richard Saul Wurman does a great job of highlighting the angst that occurs when you feel that there is just too much information out there that you should know, but don’t. If you find it, it is also worthwhile to pick up the now-out-of-print earlier edition of the book — Information Anxiety (Doubleday, ISBN 0-385-24394-4) if you can find it. This is where Wurman first defined the term “information anxiety” as “the ever-widening gap between what we understand and what we think we should understand.” Reading either (or both) of these books on information anxiety will open your eyes and make you think twice about all of the data you receive on a daily basis.
Finally, because I am a database proponent, I think every IT professional needs a basic understanding of database technology. And the seminal text for accomplishing this feat comes from Chris Date. An Introduction to Database Systems, 8th edition is not an easy text to dive into, but it does provide the most in-depth coverage of important data and database management concepts and capabilities. If this book is too theoretical or challenging then you might want to try another of Date’s books: Database in Depth: Relational Theory for Practitioners.
If your job is in IT, then the books highlighted in this short post should be on your bookshelf. Well, actually, they should be in your hands and you should be reading them. The knowledge contained in these books will make each and every one of you a better IT professional.
Of course, I don’t mean to suggest that these are the only books you should buy. You will need others that help with your chosen career niche. For example, if you are a DBA you’ll want to own Fleming and von Halle’s Handbook of Relational Database Design (Addison-Wesley Pub Co; ISBN: 0201114348), a book on data modeling, and maybe my DBA book. And you’ll also want books about the specific DBMS you are using (DB2, Oracle, etc.).
But the bottom line is that books promote knowledge. And knowledge helps us do our jobs better. So close down that web connection and pick up a book. You’ll be glad you did.