One of my favorite memories of community college was sitting in my professors' offices admiring their extensive book collections. These tomes of technology were stacked to the ceiling and I was jealous. “Someday, I'll possess a library to rival these profs. Someday!” I told myself.
Well that someday came to pass and eventually I ended up with an extensive collection of books written by legends of the technological world. Yourdon, DeMarco, Brooks, The Gang of Four. I had them all, and over the years, these books have enhanced my coding in numerous ways. Recently I purged my collection and focused on my favorite books with an eye on the ones that are timeless to me. By “timeless” I mean that these are books that I return to again and again because they provide inspiration.
I thought it would be fun to highlight some of the top books in my collection and why I kept them. In no particular order, here they are.

“The Psychology of Computer Programming,” Gerald M. Weinberg, Van Nostrand Reinhold, 1971. I recall finding this book in Seattle sometime in the late 90s in a used bookstore. This find had a great impact on my career. This book had many chapters and sections dedicated to building software teams and how building software is social in nature. I see a lot of Agile concepts that may have sprung from these pages. For instance, there's a section on formal and informal organization.
“The Mythical Man Month,” Frederick P. Brooks, Jr., Addison-Wesley, 1974. This is probably the most well-known book in my collection and tells many stories of the pitfalls of software development and lessons on how to avoid them. He talks about team organization, the effects of adding more developers to a project, and how there can be an inverse correlation between the number of developers and building code.
“Postmortems from Game Developer,” Austin Grossman, CMP Books, 2003. After 30+ years in the software industry, the closest I ever came to creating a game was writing a program to calculate the amount in the case on the Deal or No Deal show. This being the case, the pages of Game Developer Magazine informed a lot my software practices for years. The “Postmortem” columns were my absolute favorites. The postmortems were fun reads because they discussed things that went right and wrong in real-world software projects, e.g., games. Even though they were games, the problems were similar to business development: ambitious schedules, new technology, unclear requirements, and, like Cheech and Chong said, “Things are tough all over.”
“Creative Selection,” Ken Kocienda, St Martin's Press, 2018. In a vein very similar to the postmortems book, “Creative Selection” tells stories of building two of the most used pieces of software on the planet: the Safari browser and the iPhone keyboard. Yes, you read that right. The iPhone keyboard is one of the most used pieces of software in the world and this person was on a team that built it. The stories in this book document what it's really like to build software from concept to production. The hardships, false starts, successes, and setbacks are all there, in stories that we can all imagine because we all use this class of software in one form or another
“Programmers at Work,” Susan Lammers, Microsoft Press, 1986, 1989. This book is a pure joy because it has interviews with the programmers responsible for some of our favorite programs. This book has interviews with people like Bill Gates and Gary Killdal of MS-DOS and CP/M operating systems. And John Warnock, Dan Bricklin, and Bob Frankston, who created Adobe and VisiCalc, among other tools. A lot of these interviews have actual code samples, design, and diagrams from the creation of some of our favorite apps. Oh, and for the FoxPro folks that still read these pages, there's an interview with C. Wayns Ratliff, creator of dBase II.
When I was putting this together, I spent some time reading a few sections here and there, and now I remember why I kept the tomes I did. These books are timeless! Tell me about your favorite resource books.



