It is interesting, talking with people about what they read, and seeing how what they read is reflected in their daily lives. Even the occasional reader of this blog would not be surprised to find that I spend some amount of time with my nose buried in epic fantasy books and military history books. It shows in much of how I carry myself, what I do for hobbies, and even the examples I choose in this blog.
But a far greater percentage of my time has been spent reading about computer science. Since I was a young teen, those were avocations, I wanted computers to be my vocation. So it should surprise no one that I devoured what can arguably be called the classics of our field – Norton’s hardware programming books, compiler theory books (used one book in each of my post-secondary degrees, own dozens, literally. Compilers and OS Design fascinate me), some of the Cisco stuff, MicroC/OS, the dragon book (worth mentioning separate from the other compiler books), the J2EE books by BEA, Norton’s security book, the list goes on and on, and gets pretty eclectic. I read “Implementing CIFS with relish, though I may be the only person on the planet that did, and I have several releases of CORBA docs, all read at one time or another in the past…
But with two of us (Lori is a pretty voracious reader also), we have amassed a collection of Comp Sci books that cover three shelves and fill another closet that is three rows of books deep and shelves every 12 inches. And we don’t read them all. Some were useful at one time – the early Obfuscated C books, Fedora 2, The Tao of Objects, Perl 5… Many of the aforementioned books. Some were never real useful. Mastering Web Services Security, for example, was not such a great read when it was new. Nor was Programming Language Landscape.
And thus, we’ve been going through the painful process of determining what to keep and what to lose. While some of these we can get on our kindles, not all of them. Some of our current collection of programming books (every Android book we own, for example), are on Kindle, but most are not, and many are not available on Kindle at this time. So we’re making the actual “we will use this, we won’t” decision.
Some of the decisions were easy. We don’t use Borland IDEs anymore, so we really don’t need the three copies of the documentation we had laying around. Two of them went. Some weren’t so easy. Operating Systems Design, The Xinu Approach is a rock-solid book with some great examples, but Linux and FreeBSD have kind of blown the bulk of the need for it out of the water. Sure, we might refer to it some time, but probably not. The various IT leadership books we’ve earned by virtue of going to management training over the years? Yeah, most of those can go, but a couple had rock-solid stand-the-test-of-time themes to them. Collected papers of various IEEE and ACM subgroups? Those are always an astounding read. The Risk subgroup, back when it focused on “people will die if this is wrong” was great, those papers are a good read… But not likely to be useful, and we really do need the shelf space.
So how’s it working out for us?
Well, we’re not done yet, but we’re set to condense all that space into a single 4’ tall bookshelf. At this point, our selections are broad enough that I can tell you what the pattern is. There’s overlap in all of these, no one section came 100% from one of our choices, we both contributed to them. They are:
Management Books – both funny and serious, from Dilbert to Peopleware
Networking Books – We both still do a lot with networking, so it makes sense that things you rarely see massive change in, we’d keep reference to. From a Cisco introductory text to TCP/IP Illustrated, Vol 1.
AI and Neural Networks – This space is largely Lori’s playground, but a small collection of focused books on the topic, with fuzzy networks in C++ being my favorite.
Data Structures and Operating Systems – From Lori’s favorite Introduction to Algorithms to my pet Reusability and Software Construction in C/C++, there are about a dozen of these, we tended to lean toward overview type books, but some of the OS ones are pretty deep.
Hardware – I’m still a fan of embedded programming, there is computer architecture, and hardcore networking development requires hardware references… So this section is pretty big, from MicroC/OS-II through Computer Architecture: A Quantitative Approach.
Languages – Books we cannot, or do not want to, do without. Strostroup on C++, a LiSP reference, Kernigan and Ritchie, Java architecture, and assembly language, and that's just the tip of the ice burgh.
Compilers – I admit it, this is my bit, just like AI is Lori’s. She reads some of them, and enjoys them, but I’m a bit of a freak on the topic, having written compilers and linkers, just to prove to myself I could. From the COFF format to Modern Compiler Implementation in Java, We’ve got a score or so of them. Great bedtime reading.
What would you keep? If you had to cut your book collection to about 10% of what it currently is, what would go? We had Java books and XML books that we never even got out of the shrink-wrap, because the online references were so good. No doubt you have the same… Those can go, if you’re never going to read them. 🙂
So what it says about us is that we’re geeks. We kept four (possibly five, I can’t decide on “The Leadership Challenge”) management books, and so far have dozens of books only a geek could love. By the end, we’ll have completely filled that little shelf, but we’ll have unloaded a ton of unnecessary books. That’s all good to me. And hey! In the process, I found some military history books I was looking for. No idea how they ended up stacked between calculus and Red Hat 2.0, but there they were (in the picture, top shelf). Now to find time to read them… And to finish going through that half-done closet in the picture.