The Programs I Will Never Write

I love experiencing others’ minds through the technology they’ve created. Yet every day programs that would change the world for the better go unwritten because the minds that could write them lack the skills and support to do so.

I want to change this.

Why Programs Get Written

Programs get written when people want to solve a problem they’re deeply knowledgeable about and have access to the skills and support they need to do so with code.

Medium, for instance, is a very pure writing and reading experience. From the brand to the product, everything about the platform is about connecting writers and readers on the Web. The minds who’ve made this product have obviously done a lot of writing and reading on the Web and have thought deeply about the best ways to connect those two activities. My life is better because these people have thought about this problem and written a program to solve it. And, crucially, I know and care about that problem too.

Programs like Medium get written because people with deep connection to and experience in the domain have the skills and resources they need to make them. I benefit because I care about the problem they solve. That’s the simple and somewhat obvious formula of why programs get written and how the benefit people.

But what happens when people with the deepest insight to whole categories of problems lack the skills and resources to solve them in code?

Why Programs Don’t Get Written

One of my favorite pieces of writing on learning computer science is Philip Guo’s Silent Technical Privilege. In it he reflects on how, as an Asian male, he was presumed to be better at Computer Science than he actually was throughout his career at MIT. This afforded him the opportunities to develop his meager skills through hands-on experience in internships and the like over the several years it took him to actually develop his skills. As a white male who’s learned to code later in life I too have had this privelege. Our silent privilege has been to “fake it ‘til we make it.”

Some of Guo’s female classmates weren’t offered this same support. Consider this alternately heartbreaking and maddening story from his post:

For example, one of my good friends took the Intro to Java course during freshman year and enjoyed it. She wanted to get better at Java GUI programming, so she got a summer research assistantship at the MIT Media Lab. However, instead of letting her build the GUI (like the job ad described), the supervisor instead assigned her the mind-numbing task of hand-transcribing audio clips all summer long. He assigned a new male student to build the GUI application. And it wasn’t like that student was some child programming prodigy — he was also a freshman with the same amount of (limited) experience as she had! That other student spent the summer getting better at GUI programming while she just grinded away mindlessly transcribing audio. As a result, she grew resentful and shied away from learning more CS.

Without the (often unconscious) support that he received throughout his formative years, Guo would likely never have become the CS professor he is today. I know for sure that I wouldn’t be where I am without the support I’ve received, some of which was based on my membership in various groups: white, male, hetero, cis, American, native English speaking and upper-middle class.

If Guo’s friend did end up shying away from learning more CS then we’ll never know the programs that only she could write- and didn’t.

Diversity and Wealth

I haven’t written the word diversity this whole time but that’s clearly what this post is about. Diverse perspectives on and knowledge of problems the world has makes us all richer. When the people what have this knowledge have access to the skills and support, they can fix them with code. This lets me focus on the problem of building a better tool for teaching code, knowing that others are solving problems I care about in ways I never could.

The next time someone questions the need for organizations like Black Girls Code or Trans*Code to target specific groups, I’ll try to answer them in these terms. People in underrepresented groups have unique knowledge of problems that are going unsolved by the tech community both from their individual perspectives and their membership in their underrepresented group(s). Targeted educational workshops, courses and hack days are an important supplement to a more general expansion of access to coding skills & support at all levels and for everyone.

We are collectively poorer every time someone doesn’t solve an important problem because of lack access to the skills and support to do so with code.

Fighting for diversity in programming is fighting for the minds that one day will write programs I never could. If coding is a basic literacy, let’s work for an enriched authorship and a more varied literature than we have today.