- The Good: Computer science isn’t just for computers!
- The Bad: Repetitive chapters; application to real life is hit and miss
- The Literary: Wide-ranging examples and anecdotes historical and literary!
Some problems are universal, from finding a parking space to picking a place to eat to organizing our books. But it turns out that computers face many of the same basic conundrums, and computer science has found optimal solutions. We are all limited by space and time, with finite resources at our disposal. Sometimes the simplest answer is the best; sometimes it’s best to leave it to chance; sometimes it’s time to choose at 37% of your way through the options.
As you might expect of a pop technical book, each chapter follows a strict formula. First, a computer science concept is introduced, some historical context or mathematical explanation is provided, and finally the concept is applied to a real-world application.
Many of the early concepts are my favorites, but I have several takeaways:
- Explore/Exploit – Explore when you have time to enjoy the fruits of your labor (try that new restaurant!); exploit when time is limited (stick with what you know is good in a place you’re only visiting). This may explain why our elders love to stick to their small set of favorites. They have little time left to enjoy new social relationships.
- Sorting Theory – Sorting manually is for the birds when you can search. Don’t sort your emails; search them. Don’t sort your bookshelf; scan it. Don’t organize your closet; throw your clothes on the floor and just take what your wore most recently—that’s what you like to wear anyway.
- Scheduling Theory – If you have a lot on your plate, perform tasks by whatever is due first or whatever takes the shortest amount of time.
- Game Theory – If you can’t choose between two paths, make a list of pros and cons, but set a limit to the list. Then decide. Charles Darwin made such a list to decide whether to marry.
- Simple is almost always better. Exercise control where you can. Limit the choices. Don’t overthink it.
However, the title is a misnomer. These algorithms are not going to change the way you live your life. (Though I did stop sorting my work emails into folders, and so far there has been no negative impact.) Many of the recommendations are vague, and those that are specific require assumptions and constraints that are unknowns in real life. Many concepts are theoretically interesting, but not very applicable. For example, the Optimal Stopping theory advises to stop at 37%. Want to find an apartment or wife? Look for 37% of the time, then pick one. But the entire algorithm is based on a percentage of time, and how long is the total time? How long should you keep looking for that parking spot? Well for that you need to know the percentage of spots that are occupied in the total area you are willing to park. Most of us don’t have all the information.
Even if it’s not the most optimal use of your time, organizing your bookshelf or closet is a personal decision and can be purely for aesthetics. And why travel to that new city if you’re going to go to the same old restaurants? Sometimes you just want to try something new.
While I find these chapters very interesting and full of wonderful thought experiments, be prepared for a book that’s about computer science concepts, with some examples from real life, not a treatise on how to live your life.