This is a pretty excellent overview of computer science theories relevant to our daily lives. As someone who took computer science only once, in high school, I didn’t know so much of this and found most of it (accept the game theory chapter) basically entirely new. Every chapter contains new discoveries and new, provocative ideas.
There are a lot of highlights in this book and the biggest takeaway for me is that there’s all this information out there that could help us solve problems better but most of us are ignoring it because it’s contained within a domain we are not interested in. The most important piece of information here isn’t one specific algorithm or approach but rather they idea that “good enough” is indeed good enough. The hard math-based sciences are too often concerned with pure theory and solutions that may not actually be practical. It turns out that computer science is instead concerned with solutions that are “optimal”, i.e the best possible given the known constraints (not enough energy, memory, etc.). This makes it a particularly important field because we (the general public) need practical solutions and theories, not pure math. Each chapter has at least one great idea that is relevant to our daily lives. I kind of think I should buy a copy of this book so I can consult it regularly.
I have one very big problem with the book: the authors appear to not really recognize much about the nature of human beings, whether from life experience or from a grounding in cognitive or evolutionary psychology or behaviourial economics. Despite mountains of evidence that human beings are not conventionally “rational” (or, if you prefer, that rationality has been incoorectly defined for the entirety of human history) these guys suggest some of these algorithms so that we can be more rational. They do acknowledge emotions briefly and they do seem to be on the side of people who criticize the historical idea of the rational utility maximizer, but it sure feels like they don’t really have a firm grasp on human behaviour at the micro level. (No issues with the macro level.) And that’s a very big problem for a book that is arguing we should do more of these computer science-inspired behaviours and less “normal” behaviours.
But that very major critique aside, I still enjoyed the hell out of this. And I found it extremely valuable in how it opened my eyes to the importance of a field I know nothing about. Because of the nature of the problems computer scientists have had to solve – i.e. real world problems nearly exclusively – it seems we should be turning to them and their theories – rather than, say, theoretical physicists – for the best ways to approach problems involving complexity and trade-offs. I’ll go further and say that computer scientists seem to have a better grasp of real world problems and their solutions than many economists. (Shock! Horror!)
So this is very worth your time.