Despite not professionally using my degree at all, I’m consistently happy for having studied Computer Science. The field is so rich in mathematical structures that underlay so many things in the world. It’s made me a better thinker in all respects. In this book, Brian Christian does a masterful job at sharing all the basics of an undergraduate CS level knowledge in terms useful for everyone. I don’t think you’ll need a CS degree to follow along, although it certainly helped with my speed of comprehension.
Caching, of course, was interesting. Bayes’ Rule is useful but hard to utilize since our brains aren’t built for statistics. Overfitting, relaxation, randomness, networking, game theory; all these are quite useful to know for organizing daily life. He does a good job explaining them.
The one thing that keeps getting stuck in my mind from CS that he left out is modular arithmetic. I remember thinking about how having coprime sets of objects allows us to perfectly rotate them without recombination. Meaning, if I have 8 pants and 15 shirts, because they share no factors, if I cycle through each in order I will have 120 unique outfits without ever repeating a shirt/pant combination. I’m sure there are other similar applications of modular arithmetic for real-life purposes. This, of course, is just an aside, not a critique of the text.
I’d recommend this book especially to those who’ve never before been exposed to these concepts. Doubly so if you’re mathematically inclined.
- 37 percent rule for optimal stopping. Of the many algorithms he shared, the one I had not heard about that I keep mulling over is the 37 percent rule of optimal stopping. For example, if you are looking for an employee or a spouse there is a trade-off between giving up a current prospect in hope of better future ones, and the chance that you will not find better future ones. The math says that given an estimated set size X of lifetime suitors, we ought to reject the first 37% and then pick the next person who is better than all previous. I probably butchered some part of that explanation but the general concept is constructive.
- Sorting methodology. I remember learning about the math behind sorting in college and thinking about how useful it is. I’m pretty sure I used to study flashcards using merge sort. My biggest takeaway from this book was that for many problems, the effort put into sorting does not pay back the future spent searching. Take a home library for example—the number of times you need to retrieve old books is probably low enough to not justify the initial sorting, as well as the additional sorting of reinserting books after reading. He also critiques the general knowledge about organizing closets, files, etc. For example, computer science tell us that better closets would mean putting our recently washed clothes at the front, rather than sorting them back into categories. Your mileage may vary there, but the general concepts were interesting to entertain.