How Programming Makes You a Better Person

by Larry Spencer Sunday, May 5, 2013 10:08 AM

After my somewhat complainy post last time, I thought I'd post something positive.

I've been reading Steven Pinker's book, The Better Angels of Our Nature: Why Violence Has Declined. (Yes, believe it or not, our world is a lot less violent now than it was 50, 500 or 5,000 years ago. Pinker summarizes his argument in this TED Talk.) The last reason Pinker gives for our relatively peaceful existence is the rise of reason -- specifically the abstract sort of reasoning that we programmers love so much.

How does abstract reasoning lower violence? The connection is more direct than you might think.

In order to rise above the violent, tribalistic instincts that evolution has bequeathed us, we must see others as equal to ourselves. We must move beyond the concrete notions like "This is my tribe, and you're not in it. Therefore, I have good reason to kill you and take your stuff" to abstractions like "You're a human being. I'm a human being. Therefore we have equal claim to happiness."

Pinker begins his argument by discussing the Flynn Effect -- the fact that IQ scores have been rising 3 points per decade for the last hundred years. Part of the explanation seems to be the tech-saturated, abstraction-oriented world in which we increasingly live. Just last night, one of my daughters asked, "Dad, how can I make PDFs open in Chrome instead of Internet Explorer?" Compare that to the questions daughters probably asked their fathers 100 years ago like, "Dad, would you teach me to ride a horse?"

The contrast between scientific, abstract reasoning and prescientific modes of thought are wonderfully captured in this exchange where researcher Alexander Luria attempted to ask a Russian peasant a the sort of question that might be found on an IQ test (page 654 of Better Angels)

Luria: All bears are white where there is always snow. In Novaya Zemlya there is always snow. What color are the bears there?

Peasant: I have seen only black bears and I do not talk of what I have not seen.

Luria: But what do my words imply?

Peasant: If a person has not been there he cannot say anything on the basis of words. If a man was 60 or 80 and had seen a white bear there and told me about it, he could be believed.

OK, so prescientific people tend to think very concretely. What has that to do with morality? Flynn himself relates this about his own father (page 656).

My father had so much hatred against the English that there was little room left over for prejudice against any other group. But he harbored a bit of racism against blacks, and my brother and I tried to talk him out of it. "What if you woke up one morning and discovered that your skin had turned black? Would that make you any less of a human being?" He shot back, "Now that's the stupidest thing you've ever said. Who ever heard of a man's skin turning black overnight?"

Pinker remarks: Like the Russian peasant considering the color of bears, Flynn's father was stuck in a concrete, prescientific mode of thinking. He refused to enter a hypothetical world and explore its consequences, which is one of the ways people can rethink their moral commitments, including their tribalism and racism.

We software developers dwell in an almost completely hypothetical world. One of the most commonly used keywords in any programming language is if. Our entire workday consists of trying as rigorously as we can to see situations from every possible point of view. Our work leaves no room for superstitions or tribalism. Believing or insisting that a program is correct will not make it so. The implacable rigor of compilers makes us humble; test-driven development teaches us to question our work even before we have done it; and we are grateful to our QA departments for pointing out our mistakes before they reach a customer.

I will not say that software developers are morally superior to everyone else, but it seems clear that our work inculcates the sorts of habits and values that could help society. And I've always found developers to be pretty nice folk.



Pingbacks and trackbacks (1)+

Add comment

About the Author

Larry Spencer

Larry Spencer develops software with the Microsoft .NET Framework for ScerIS, a document-management company in Sudbury, MA.