People, problems, and proofs are the lifeblood of theoretical computer science. Behind the computing devices and applications that have transformed our lives are clever algorithms, and for every worthwhile algorithm there is a problem that it solves and a proof that it works. Before this proof there was an open problem: can one create an efficient algorithm to solve the computational problem? And, finally, behind these questions are the people who are excited about these fundamental issues in our computational world. In this book the authors draw on their outstanding research and teaching experience to showcase some key people and ideas in the domain of theoretical computer science, particularly in computational complexity and algorithms, and related mathematical topics. They show evidence of the considerable scholarship that supports this young field, and they balance an impressive breadth of topics with the depth necessary to reveal the power and the relevance of the work described. Beyond this, the authors discuss the sustained effort of their community, revealing much about the culture of their field. A career in theoretical computer science at the top level is a vocation: the work is hard, and in addition to the obvious requirements such as intellect and training, the vignettes in this book demonstrate the importance of human factors such as personality, instinct, creativity, ambition, tenacity, and luck.The authors' style is characterized by personal observations, enthusiasm, and humor, and this book will be a source of inspiration and guidance for graduate students and researchers engaged with or planning careers in theoretical computer science.