Brian Christian and Tom Griffiths' Algorithms to Live By: The Computer Science of Human Decisions is pitched as a combination of personal advice and business book grounded in the lessons of computer science, but it's better than that: while much of the computer science they explain is useful in personal and management contexts, the book is also a beautifully accessible primer on algorithms and computer science themselves, and a kind of philosophical treatise on what the authors call "computational kindness" and "computational stoicism."

A common misconception about computers is that they produce single, correct answers to hard problems. The reality is that much of computer science concerns itself with approximating answers to hard problems, because the single perfect answer, if it exists, would come too late to be useful — possibly after the lifespan of the universe.

In this regard, computers are a lot like humans. From finding a mate to finding a place to eat to figuring out who's a friend and who's a foe, or whether to take a job, we must confront the unknowable with our best guesses.

A surprising number of these guesses mirror the best solutions that computer science has found for getting a good answer when the perfect answer is impractical. Christian and Griffiths hint that this reflects the evolutionary winnowing down of various computational strategies — a millennia-long parallel computation process that uses our lives and reproduction as experimental calculating engines.

It's nice to have some of our heuristics validated by computer science. More immediately useful are those places where computer science refutes common wisdom and intuition — here's where the book is able to offer practical suggestions about running your life and business that would give you an edge over your own best guess.

Christian and Griffiths enliven their computer science with the personal stories of the figures who discovered and refined the principles they expound, a nice, TED-style tactic that makes narrative out of non-fiction.

While much of the book is recapitalization of the discoveries of these computer scientists, it still makes an important original contribution to the field: the twin ideas of computational kindness and computational stoicism. Computational kindness is a design principle that uses computer science to identify areas where seemingly simple tasks create lots of complex work for the people who must undertake them, and takes steps to reduce those overheads. Computational stoicism is the use of computer science to identify the limits of certainty in the hard decisions we all must make in the course of our lives, and to help us be as certain as is practical in these areas — while letting go of the self-doubt that comes from wondering whether we could find more certainty by working harder.

Computer science's work on figuring out which problems are hard and which problems are easy (and when to give up on the hard ones because you won't make any more progress) makes for a powerful addition to our politics and philosophy — a more noble contribution than any number of life-hacks or management optimizations.

Algorithms to Live By: The Computer Science of Human Decisions [Brian Christian and Tom Griffiths/Henry Holt & Co]