Learn to Code Switch Before You Learn to Code
[Update: I got a lot of very helpful feedback from people who corrected the narrowness of my focus here, particularly in regard to those for whom code switching is a burden rather than a choice. To be clear: The onus is on the tech industry to meet the needs of those whom it has underserved and excluded, and to learn their language. I've added some comment and explanation below. ]
Today, President Obama urged every American to spend an hour learning to code. As part of the Code.org initiative, it's a well-intentioned effort to promote Computer Science Education week. And as a supporter of efforts like Black Girls Code, CodeNow and Girl Develop It, I do think there's a lot of value in teaching people, especially young people, about how software works. It's particularly important as more of our lives are influenced by choices made by technologists.
But there's an increasing backlash from within the tech industry against the reflexive promotion of "just learn to code!" as a solution to a wide range of societal ills. Even the opportunity to participate in the fantastic coding education programs that exist are heavily constrained by economic and personal constraints that many in the tech industry have not yet begun to address first.
Even if we taught every disadvantaged young person to code, they would still not have access to the opportunities that today's successful programmers and technology experts enjoy.
Switching It Up
The biggest obstacle to bringing underrepresented groups into the technology industry is that deep insularity and exclusionary culture that pervades much of the fastest-growing, highest-profile parts of the industry, especially the companies that create social web apps and consumer technology.
We have already seen that qualified candidates who are women, or non-Asian minorities, or persons who have varying physical and mental skills, face significant systemic exclusion from the tech industry, even as it loudly proclaims how critical its need for programming talent is. There are similar barriers to those who not geographically located in a small handful of big cities, not to mention the obvious challenges with engaging with talent from outside of the United States.
But even if a candidate can navigate this formidable set of obstacles, they might well end up in a career that's unfulfilling, marginalized within the companies they'd worked so hard to join. The simple reason why? These candidates speak a different language.
I don't just mean tech jargon — as off-putting as acronyms and tech talk can be, many people can make the leap to learning the vocabulary needed for the work that they do. Rather, there's a challenge in being fluent in the cultural assumptions and social context in which the tech industry exists. Even more broadly, there's the challenge of literacy in the business world overall.
For as famously open-minded as the technology industry is about fashion (insert brief digression here for me to sartorially eviscerate Zuckerberg for his hoodies once more), there's an extremely rigid linguistic uniform within the tech industry. Whether it's fluency in meme culture, familiarity with Reddit or Hacker News in-jokes, obsessive literacy in the minutia of Steve Jobs' life, or a preternatural interest in screen resolutions, the tropes of programmer culture today are deeply insular. Move to the executive suite, add in a healthy dose of MBA jargon and peacocking from the old boys' network, and it becomes clear that the ability to read and write Python pales in comparison to reading and writing tech corporatese.
Keep in mind, the groups that most need to access these tech opportunities have fewer chances to learn the lingo of corporate America, and will be judged on far less forgiving grounds if they are in the process of learning it. So simply waving the promise of great jobs in front of those who are economically or socially disadvantaged, without addressing the cultural barriers they're likely to face, is irresponsible.
Code For America
The answer, then, is to encourage our young people to learn to code switch. Code switching, as explained so well by NPR's "Code Switch" blog, is a simple matter of being fluent in multiple cultures:
[M]any of us subtly, reflexively change the way we express ourselves all the time. We're hop-scotching between different cultural and linguistic spaces and different parts of our own identities — sometimes within a single interaction.
When you're attuned to the phenomenon of code-switching, you start to see it everywhere, and you begin to see the way race, ethnicity and culture plays out all over the place.
The ability to seamlessly code switch between different cultural contexts is an ability that the President is extremely familiar with. And as we move to a culture where no one racial or political group is a majority, it becomes increasingly valuable and important.
What's more, technology changes extremely quickly — the programming skills we're teaching our young people today will largely be obsoleted in just a few years unless they're accompanied by the social skills to keep learning on top of those fundamentals.
For those who are underrepresented in technology today, a long-term career in coding is predicated on being an expert at code switching.
This focus on code switching isn't to pooh-pooh the idea that technology in general, or programming in particular, could be a valuable leg up for those who are on the wrong side of our society's increasing economic gap. I do think the enormous concentration of wealth in the tech industry could be directed toward broadening opportunity. But to truly do so in a meaningful way, those of us who are already in tech have to focus on a few important goals:
- We have to, counterintuitively, build a good support system and funding infrastructure for less efficient startups. Yes, less efficient. Because current efficiency models for tech startups count on creating a few rich winners and a mass of very poor underemployed workers, but very few long-term sustainable middle class jobs. We're going to have to articulate, and pursue, different goals in our tech startups if we're going to make enough solid jobs for the folks we're encouraging to learn coding.
- Similarly, we have to embrace the idea of blue collar coders. If we succeed in bringing all of these new young people to the tech industry, we're going to necessarily undo the image of programming as the exclusive domain of a rarified coterie of high priests. Instead, we have to see it as a useful trade that is a meaningful path toward the middle class for those who are struggling to get there, akin to the blue collar trades that honorably served that purpose in the last century.
- We have to aggressively, and uncompromisingly, attack the pernicious lie that the technology industry is a meritocracy. Perpetuating this myth only serves to bolster the egos of those who have succeeded already, at the expense of saying that people who are underrepresented in tech today aren't present because they aren't good. We cannot tell most Americans that they're bad at technology, then ask them to spend an hour learning to program, and then wonder why it didn't work. And we can't just tell them to follow the same ten tips that worked for most of the big tech success stories in the past.
- Most fundamentally, the way we get young people to engage with technology, and to consider programming as a potential career path, is to talk about our values and our communities. Tech changes constantly, and what's currently in fashion as a programming language or technology platform will change countless times during a person's career. We do have a chance to break out of the current systems of exclusion and return to software's origins as an industry led by women, or to embrace the global reality where people of every race and social class are finding opportunities in technology outside the United States.
Reaching the true potential of the technology industry, both from the standpoint of creating meaningful jobs for many people, as well as inventing valuable new products and services to help people, is an important goal. But the ability to read and write code is the end result of a process, not the starting point.
If our goal is for more young people who speak programming languages, then the tech industry must go at least halfway in speaking their language.
After I originally published this post, I got some terrific feedback from a few people who showed very effectively how my phrasing here appears to put the burden on the excluded to learn the language of those running the industry, which was the opposite of my intent.
Corvida Raven offered up a detailed, and brilliant, critique of my framing of this piece; You should follow her for more complete context. But her key pointis essential:
.@anildash You asked the industry to TEACH kids how to be the industry instead the industry LEARNING what THEY need to be for these kids.— Corvida Raven (@corvida) December 9, 2013
Nordette Adams refined and clarified my core point more cogently than I was able to:
@anildash The ability to code switch is a valuable skill for anyone to have the same way speaking a foreign language is useful.— Nordette Adams (@nordette_verite) December 9, 2013
Which is to say: There are people in power in the tech industry right now, and they're not inclined to let others in. If you're one of those others, you have to understand the language they're speaking, even if you might not choose to speak it yourself.
Which leads into April Davis' insight:
She's right of course; The issues of power and access are much broader than language.
But what's been perhaps most instructive to me is the way that different communities see the role, and the implications, of "code switching". As the child of immigrants who wasn't really born into any community of people with similar experiences, code switching isn't an option for me, it just is.
By contrast, communities which are better established, or who have more of a history of systematic denigration of their speech or language, have a much more fraught history with code switching, which I glossed over in my piece. There, I was wrong to suggest that they "learn the language" of power because, as I've mentioned here before, it doesn't matter how well they speak or how literate they are in geek culture — many in power will be unwilling to share or relinquish power no matter how these new entrants to the industry communicate.
As this response shows, my piece here probably suffered a bit for my tendency to become enamored of my own clever ("clever"?) wordplay:
I hope those who've found this piece useful, and especially those who found it infuriating, will focus on the few bullet points I listed above, about how those already in power in the tech industry need to do more to connect with those who have been excluded. Not just learning their language, but helping them become part of the fundamental structure of the industry.
In the end, the core point remains: We should be careful, critical and skeptical of "teach kids to code" as an overly glib recommendation, as the current path puts many of them on a path to careers where they'll be constrained from seizing the opportunity that's being promised. That's something we can all work to fix.