It can be downright dizzying at times – never before has a single individual been able to make as large of a dent in the world as a programmer does today. Please select your dent carefully.
I toured the Everett Boeing manufacturing plant last fall. The tour does an excellent job describing not just how their airplanes are assembled, but emphasizing how much impact on the world their planes make. When you hear of the zillions of people, cargo, and miles traversed as a result of those planes, it is hard not to think “wow, these people are really making a difference”. (Good job, Boeing tour guides.)
After the excitement of witnessing big engineering fades, what remains is the realization that all creative work, to some degree or another, has this amplifying effect. The aeronautical engineers a Boeing make airplanes that move stuff around better. The software engineers at Facebook, for example, put their efforts into writing software which helps people communicate better. The game programmers at Blizzard make entertainment better.
While this is not surprising, what is absolutely bewildering to consider is the scalability of specifically a programmer’s efforts. As a web programmer for a decently-trafficked website, I can invest the tiniest bit of extra energy into a subtle improvement, and with a simple deployment, I can immediately make the lives of an incredible number of visitors across the globe better in some regard. This humbling combination of reach and immediacy is unprecedented in history.
“What other act can so quickly and so widely reach others?”
Unique to programming, however, is how dramatically improvements in software can compound. For example, imagine I write a text editor, which improves the quality of programmers’ code by a small margin, who then go on to create better programs, each of which affect countless lives. What other act can so quickly and so widely reach others?
This is also why I believe software tools authors are today’s unsung heroes. The folks working in obscurity on a better garbage collector, a faster server, or other tool for programmers have the largest “footprint” of them all.
I’m sad to say, our footprints aren’t always positive. It is possible for me to write poor software which affects untold numbers of people, or to write good software which does bad things. As the authors of Tor are quick to point out, the programmers who write deep-packet inspection software may believe they’re doing good, because such software is used by companies to secure and monitor their networks. This same software, however, is sold to oppressive regimes and used to monitor dissidents, who are sometimes quite literally discovered and shot.
Therefore, as we sit comfortably behind our keyboards, sipping our coffees and quibbling about text editors, programming language aesthetics, and other minutiae of our craft, lets not forget the awesome power we programmers wield, and the incredible responsibility we face to ensure our efforts are both good, and used for good.