A thinking machine, grumbled the tradition-minded British writer G. K. Chesterton, “is a brainless phrase of modern fatalism and materialism.” He added, “A machine only is a machine because it cannot think.”

But that was at the turn of the last century. A dozen decades later, thinking machines are among us, machines that learn from our behavior and suggest that we act on the information they provide—by, say, buying a new pair of shoes recommended by an algorithm, or stocking the refrigerator with fresh milk in response to a dire ding.

The arrival of an “Internet of things,” of machines that learn, troubles Ellen Ullman, whose new book Life in Code: A Personal History of Technology recounts her nearly half a century spent in the trenches of computers, software, and machines. “Computing is now involved in every aspect of your life,” she tells Kirkus Reviews from her home in New York. “For instance, your car is a robot. I don’t really like the fact that cars can make so many decisions, much less that they’re driverless, so I bought the oldest, least complicated car I could find.”

For all that, Ullman is no Luddite, and certainly no ordinary critic of technology. She’s been at her latter work for nearly as long as she’s been programming, aware, as Sherry Turkle and Ted Nelson have noted, that the liberating possibilities of the machine have long since given way to corporate enrichment and Big Data. In Life in Code, she wonders aloud about the unintended consequences of technology, which have all kinds of hidden corners. The modern movement to teach all children to program is well and good, for instance, but what if it yields a world in which, since everyone can code, the supply vastly exceeds the demand and programmers can no longer command living wages?

As Ullman puts it, “We thought when we built the Internet that it would be a wonderful vehicle of freedom, learning, and discovery. We wouldn’t have to go looking for experts when we could find everything we need to know online. That happened. The trouble is, all that disintermediation now means that anyone’s opinion is valid, and there’s far too much noise.” In that regard, she says, pointedly, “We shot an arrow way up into the air, and it landed at the feet of Donald Trump.”

A pioneer, not just as a programmer involved in the making of this modern world but also as a rare woman in a decidedly male-dominated enterprise, Ullman voices a few regrets; as she writes, in that culture, “In exchange for large quantities of stock that might be worth something someday, I was supposed to give up my life.” She’s retrieved some of that life, having left the day-to-day world of programming and written a couple of novels, but she’s under no illusion that she’s escaped the grasp of the machine. “Unless you go way off the grid, which is getting harder and harder to do, technology and particularly the Internet follow you,” she says.

Ullman Jacket ImageUllman can be pessimistic, sometimes, but not dour, and her book offers a vision of what could be through such simple but unexplored remedies as making micropayments for social media so that users themselves are no longer the commodities being bought and sold. “Things ought to be fun,” she says, “and there are pleasures to be had out there in the world of technology. The question is how we find our individual voices.” That’s not easy, as Life in Code instructs us, but it can be done.

Gregory McNamee is a contributing editor.