It's hard, I think, for a recommender system to beat a good library shelf. The wonderful serendipity of browsing the stacks of books, be they the New Arrivals rack or section Z1002, is a high bar to match, or at least they've been very good to me.
I basically owe my career to finding Christopher Lampton's Programming in BASIC on the shelves of the children's nonfiction section of the Pocahontas Public Library1. My programming skill grew through additional books from its shelves, and those of the libraries in larger neighboring towns.
Also at the Pocahontas library, I discovered The Cuckoo's Egg, one of my favorite books in high school. A footnote therein presented a recipe for chocolate chocolate chip cookies, dubbed ‘Hacker Cookies’ as they entered my family's repertoire.
Parks Library at Iowa State University introduced me to Finseth's The Craft of Text Editing: Emacs for the Modern World, an enthralling little tome that describes the underlying software architecture and data structures for building a text editor. Again, I was in the library for something or another and spotted it on the shelf.
I don't remember if I spotted in on the shelf, or found out about it elsewhere, but the Wilson Science & Engineering Library at the University of Minnesota yielded Implementing Functional Languages, a book that helped me greatly in learning to think as a functional programmer.
One day while in the math library at UMN to get some book or another on statistics or data analysis, I perused the New Books shelf, as one does. There was Independence-Friendly Logic: A Game-Theoretic Approach. I haven't yet had time to go back and finish this book, sadly, but it embodies an idea that I picked up taking CPRE 310 at ISU and working through Rosen's discreet math text, and later understood more deeply through some math and CS theory courses at MN: there is a deep connection between logic and proofs and playing games.
Finally, and as the event that promted this little tour, my trip to the Alkek Library at Texas State today resulted in a couple of very promising finds. On the QA shelves, where I was looking for a PowerShell book, I found SQL Antipatterns; this seems likely to be a valuable resource for teaching databases this fall. And as I headed to the circulation desk, Poverty, Class, and Schooling: Global Perspectives on Economic Justice and Educational Equality sat on the New Books shelf screaming ‘READ ME’ like a cake in Wonderland. This shelf also contained Feminism Unfinished, which looks like an interesting read, but I already have a habit of bringing home way more books than I take time to read. Might go back for it someday.
Recommenders are cool technology, and pretty useful. But zoning in on the perfect item or three isn't the only way to provide a good experience. Maintaining or presenting a diverse selection and letting the human wander a bit can also have some excellent results, and I personally get a great deal of satisfaction from finding something wonderful at the library.
Can we bring the delight of serendipitous discovery to our digital systems?
- I may well be here by other means, and there were many other factors such as supportive parents and Dad writing computer programs. But working through this book was my first taste of bending the computer to my will.↩