Eventually, of course, that orientation has a way of bleeding into your everyday life. It becomes hard to turn off, like X-ray vision. “Most engineers I know go through life seeing inefficiencies everywhere,” as Christina, a coder in San Francisco, once told me. “Inefficiencies boarding your planes, whatever. You just get sick of shit being broken. ‘Hi, this isn’t good, and I’m going to fix it!’” She’ll even find herself wishing people navigated the sidewalks and street crossings in a more optimal fashion. “It’s a fundamental kind of dissatisfaction with the way things are currently running,” she says. Jeannette Wing, a professor of computer science—currently running the Data Science Institute of Columbia University—popularized the phrase “computational thinking.” It’s the art of seeing the invisible systems in the world around you, the rule sets and design decisions that govern how we live. And it often leads her, too, to notice subpar organization around her.
“Whenever I get to a lunch buffet,” she says, “I get annoyed when the stations of a buffet are not lined up properly. So when they put the forks and the knives with the thing wrapped around it as the first thing? I find that annoying! Because you have to hold your plate while you hold this thing of knives and forks, too. The cutlery should be at the end! So this buffet is really this linear sequence of stations, and you want it to be sensible. You don’t want a lot of latency.” It’s a classic bit of optimization thinking, something that certainly you don’t need to be a coder to appreciate, but which comes to programmers effortlessly, even unstoppably. (Indeed, there’s something about the demands of food preparation, delivery, and cleanup that seem to inspire particular annoyance among hackers—which probably anyone who hates housework could identify with. The programmer Steve Phillips once told me he yearned to robotically automate dish drying, when as a teenager he was helping his mother clean up after dinner. “I grab one off the stack, I dry it, I sit it down, I grab one off the stack, I dry it, I sit it down. It’s like—this should be a for loop. This is pissing me off.”)