Prof. Guri Sohi, instructor of my Intro to Computer Engineering course, recommended this book during a tense Monday morning lecture. My classmates and I had just spent the weekend whining on Piazza, our class’s online help forum, about the previous Friday’s exam and the impending deadline of a massive programming assignment. Sohi told us to suck it up, that the class was supposed to be hard, and that there would be hours on hours of work to come. But he promised that, even though we might lose entire weekends to it, programming could be rewarding.
It’s appropriate he told us about Tracy Kidder’s 1982 Pulitzer-Prize-winner The Soul of a New Machine that morning. It tells the story of some engineers from a company called Data General who had weird relationships with their jobs. They worked absurd hours, sometimes staying all night at work, to develop a machine that wouldn’t even be that successful for a company that wouldn’t be around for much longer. And they didn’t get any sort of pay bonus. Many of them had wives and children, so it’s not like they had nothing better to do. It seems like, against their best interests, they were enveloped by their work. That tells you something about how strangely satisfying computer programming can be.
There was no more bellyaching on Piazza after that Monday morning lecture. Partly, I think, because our class learned what Tracy Kidder learned when he was following the Data General team: the computer programmer gets something out of his work besides money (or grade points). Even when you lose sleep over it, it’s enough just to get through the bugs and make something that works. Sometimes you can’t pull yourself away until you do.