Scott Schoeller's Webpage

My Library

I have a growing professional library. The highlight of which is a special collection of sorts known as "Knuth's Korner" (special spelling intended). This collection, sitting near the corner of my desk, is intended to contain timeless classics that changed computing and biographical information of those visionaries.

As the name suggests, the cornerstone of the collection is comprised of Knuth's works, such as: The Art of Computer Programming (partial set), Selected Papers on Computer Languages, Selected Papers on Computer Science and Selected Papers on Design of Algorithms. However, I add books by additional computer scientists and software engineers to maintain a decent collection of viewpoints.


Favorite Computer Books

For your information, like all professional book readers, I have opinions on my favorite books.
By far my two favorite books/series are The Art of Computer Programming and Code Complete (McConnell).

Reviews of Select Books

The Art of Computer Programming
The Art of Computer Programming Volumes 1 & 3 are suitable for an advanced undergrad (or degree holder) or potentially a graduate student in their second semester of their first year. What I mean by advanced undergrad is someone who successfully completed data structures and theory of algorithms. Don Knuth explains material well without major oversimplifications – that’s what I like most about him as a writer* – but the flip side is that he writes with such great depth that one realistically needs to have completed most of their undergraduate education to read into those details and some material is truly graduate-level.
The Art of Computer Programming Volume 2 is most suitable for graduate students and graduate degree holders. It is especially useful for someone in cryptography. There is a lot of math here.
The Art of Computer Programming Volume 1 Fascicle 1 and The MMIX Supplement (Ruckert) are highly recommended to have available, as V1F1 replaces the introductory section on MIX with MMIX and the remainder of the programs are rewritten by Ruckert’s team. Volumes 4A, 4B as well as the (hopefully) upcoming 4C & 5 use MMIX.

*The other thing I really like about TAOCP is that a large number of answers to exercises are in the back, so one can check their work. This is very unusual for an algorithms book, unfortunately. I wish more authors would put selected answers in the back of the book!
Code Complete
When anything is called "complete", a really high bar is set! McConnell fails to disappoint the reader. Despite the page count, the second edition of his book is a straightforward read for undergraduates in their software engineering class and graduate students. Many entry-level professionals in the field would also greatly benefit.
Other Classics
The Mythical Man-Month: Essays on Software Engineering (Brooks) and Programming Pearls (Bentley) are classics that are very accessible. If you took through data structures and want to know highly practical material, these books will enthrall you!
Introduction to Algorithms (CLRS) is a book meant for advanced undergraduate or graduate coursework. It is the standard for both levels at many institutions. It’s generally easier than TAOCP.
The Annotated Turing (Petzold) is most suitable for someone in their theory of computation course.
Computers and Intractability: A Guide to the Theory of NP-Completeness (Garey & Johnson) is best for undergraduates, graduate students and professionals who have taken a theory of computation course.
Selected Writings on Computing: A Personal Perspective (Dijkstra) is a hard copy of some of his publications. The trip reports are accessible for undergrads. Many papers, however, require a graduate education to understand.