The P versus NP problem is the most important open problem in computer science, if not all of mathematics. Simply stated, it asks whether every problem whose solution can be quickly checked by computer can also be quickly solved by computer. This book provides a nontechnical introduction to P versus NP, its rich history, and its algorithmic implications for everything we do with computers and beyond. The book traces the history and development of P versus NP, giving examples from a variety of disciplines, including economics, physics, and biology. It explores problems that capture the full difficulty of the P versus NP dilemma, from discovering the shortest route through all the rides at Disney World to finding large groups of friends on Facebook. The book explores what we truly can and cannot achieve computationally, describing the benefits and unexpected challenges of this compelling problem.