That Google Memo, and the Problem with “Real” Computer Science Majors

How elitism in CS undergrad culture has created some of the worst problems in high tech

The culture of computer science majors has become the culture of high tech — for better and in some cases for worse

“Real CS majors write code in VIM.”

“Real CS majors compete in the ACM ICPC.”

“Real CS majors use Gentoo, and compile their own operating systems from source.”

As a young CS/Economics undergrad, I grew up around statements like these. So did most of my friends — many of whom I didn’t go to college with. It’s surprising how, regardless of what school you got your Bachelor’s degree from, there is a common and pervasive image of what a successful computer science student looks like.

He’s a god of algorithms but could care less about the humanities. He slays on his midterms and problem sets, but he does so with a resigned sense of disinterest. He does things the hard way because it gives him more control. When he does find something worthy of his intellectual drive, he throws himself into it with furor and destroys.

He also is anti-social, possibly to the point of representing some of the traits of Asperger’s Syndrome. He doesn’t exert any effort on learning or ingratiating himself with emotional intelligence because it’s, at best, not related to his cerebral passions of spinning algorithms and hacking code or, at worst, below his intellectual mettle. He’s out of shape, pale from spending hours in the lab/inside away from the sun, and only wants to talk about anime or Star Trek.

And he’s definitely, absolutely, a he.

As a young CS undergrad, I prided myself on subscribing to this image. I rolled into class late in pajamas, and sat in the back of the lecture hall half listening while playing TopCoder. I humblebragged about how I spent all night hacking together my Stage 2 Gentoo Linux box, talking shit about aspects of the Linux kernel in essence to prove that I was “leet as fuck” in this arcane field that seemingly required a minimum IQ to be successful.

I wrote my English essays in VIM, hacked code at bars to be edgy, and in general did a lot of in retrospect incredibly douchebag stuff because I thought it was cool.

Or, perhaps more specifically, because I thought it would make me successful.

When I was ten years old, I picked up a book from a Half Price Books store in Seattle written by Bill Gates called The Road Ahead.

The Road Ahead is a series of predictions that Gates compiled about the “Information Superhighway” — what Gates predicted would be a highly available, highly distributed, nearly free iteration of the early consumer internet.

Gates predicted that this resource would prove to have dramatic ramifications on our society and world, and while he originally explored these in The Road Ahead he spent much of his time in the 90’s and early 00’s talking about them in the press.

A result of these dramatic societal changes is, as Gates would touch on in The Road ahead and explore more in-depth outside the book, a redistribution of societal value in skillsets. Gates supposed that in this future world that the people who knew how to harness and use that information would be the new Wizards of Oz-of sorts. More specifically, as Gates eloquently put it:

Be nice to nerds. Chances are you’ll end up working for one.”

You can say what you like about Bill Gates and Microsoft. But the world he predicted is definitely the world that we live in today. The rise of the consumer internet, coupled with the rise of cheap and powerful mobile computing, has led to incredible economic, societal, and geopolitical change across the globe.

One area where the status quo has been upended by tech’s rise is the labor market. Software engineering has become a hugely in-demand field, and high tech as a whole has become one of the most lucrative fields to work in within the United States over the last ten to fifteen years.

Gates was right. Our bosses are, in many ways, nerds.

As a result, the culture of high tech has been charted by the heart and soul of the industry: the culture of software engineering. Programmer culture (and more recently the MIT-borne “hacker” culture) has dominated tech. And computer science, the field of study that most software engineers and programmers study in their undergrad, is the origin of much of this.

This was painted clearly for me during an episode I had during my tenure as a VC associate. Over drinks at a NextGen Partners mixer, I remember hearing another associate reference the difficulty of probing a founder’s contact network to get a meeting with them as a “O(n²)” problem — a reference to computer science’s “Big O” notation for studying the difficulty of an algorithm.

It actually wasn’t an O(n²) problem, but that’s not the point.

I remember being astounded and, with my geekdom engaged, asking if they studied computer science. The associate said no, but admitted that they “liked how it sounded” when they heard it being said by someone in a meeting once.

There’s a lot to love about CS undergrad culture. League of Legends is pretty fun (when you’re not losing). Not caring about how you dress helps you save money. Linux is amazing. Math and coding for fun are, in fact, very cool.

But there’s a lot not to like about this culture. Elitism is a big deal in many CS undergrad groups. It’s not always point blank sexism, and it usually takes the form of a type of “hipster”-esque intellectual elitism combined with being defiantly obstinate and edgy.

The intellectual elitism of CS takes many forms. Sometimes it’s funny and takes the form of hipster hackerdom. But other times it can take a darker turn, and malign people who don’t fit the supposed “mold” of what an engineer should look/act/or be.

There’s a careful song and dance associated wih how edgy you can be in this elitism. Bagging on Java for being slow AF is ok. Making fun of people who work in Java as being dead on the inside is ok but a little edgy. Saying everything compiled for any operating system other than Plan 9 is trash is a bit much.

Jokes aside, how “hipster hacker” someone is seems to at least be directly correlated with success. The quiet kid in the back of the room crushing ACM problems and HackerRank seems to be the one best equipped to tackle the myriad of algorithm whiteboard problems that Google and Facebook use to prune their crop of software engineering hires. We can make fun of the stereotypical CS ubergeek, but many of us (particularly those that grew up around them) look up to them.

As new software engineers enter into the workforce, they’ve carried with them the image of the successful CS ubergeek. This image, combined with “outside” tropes of your stereotypically socially awkward computer geek, have become modern tech’s interpretation of what it takes to be a good software engineer.

That’s a huge problem. Because in addition to not typically being a team player and kind of being a dick, that person is generally not a woman.

In the year I graduated college (2010), female graduates conferred bachelors degrees in computer science in the US totaled just under 18% of the total graduate population. In our school’s computer science club, out of a hundred or so CS majors there were only four women I knew pursuing the major.

Two of them changed majors by the end of college.

It wasn’t always this way. Twenty years earlier, women made up almost 30% of CS bachelors graduates. A decade and a half before that, women were almost half of all American applied computing and CS new college grads. When you took into account applied math majors (some schools hid CS behind this title back then) that number drifted towards and above 50%.

Computing has historically been a field dominated by women due to the presence of women in applied math during the field’s formative years. And women have even been the creators of much of what we call programming. The first programmer was Ada Lovelace, a mathematician who designed arithmetic encoding for Babbage’s Difference Engine. The first “bug” (as well as the term “bug”) was discovered by Adm. Grace Hopper.

So despite the pseudoscientific garbage posited in the incendiary, now infamous Google memo, women not only don’t have biological “predispos[itions]” to not being successful or interested in software engineering and computer science:

They basically fucking created the field.

Let’s talk about the Google memo.

Damore’s perspectives on female engineers and diversity in the internal memo he distributed throughout Google earned him a spot on the unemployment line and set off a firestorm of debate throughout Silicon Valley.

I want to make one thing clear in my perspective on this: I’m not actually against his comments on political groupthink. I rarely write about my political views, but as a moderate I think he’s actually right in that there is an oppressive environment in Silicon Valley that stifles dissenting voices in political views contrary to the progressive norm.

To be fair, having spent a significant amount of time in the Deep South I can say that I felt the same way about liberal progressive views there that I do about conservative ones here. But we tout ourselves in Silicon Valley of trying to seek a more utopian, non-judgmental society. When we suppress people with contrary politics (and shame them for being different) rather than talking with them, we’re doing exactly the opposite of that.

This all being said, fuck that memo for basically everything else.

Damore’s asserts that the gender gap for women engineers is due to biological differences in how they think that disincentivize them from pursuing software engineering and technology leadership. He qualifies this with statements like:

  • “[Women are more prone to] Neuroticism (higher anxiety, lower stress tolerance).This may contribute to the higher levels of anxiety women report on Googlegeist and to the lower number of women in high stress jobs.”
  • “Women on average show a higher interest in people and men in things”
  • “[Women are more prone to] extraversion expressed as gregariousness rather than assertiveness. Also, higher agreeableness.”

First, lots of this is is pseudoscientific bullshit that is about three cortex measurements away from eugenics. And while there are neuroscientific and biological differences between how men and women think, to pose that this would make them more or less engaged as engineers is appalling.

This is a problem not just because the author is attempting to validate fake biological reasons why there’s a gender gap, he’s basing this premise on the idea that a career in computing is disadvantageous in general to women because of their biological differences.

More succinctly: he’s saying that women are generally not as well equipped as men to pursue the field.

Now that makes zero fucking sense for a variety of different reasons. A key reason I’d point to is, as I highlighted earlier, women created programming. Having ovaries didn’t seem to stop Ada Lovelace from creating a system of logical calculus to program operations on a Babbage machine. Using a different restroom didn’t seem to stop Grace Hopper from creating a concept we take for granted every day in computing.

Moreover, the fact that women were strongly represented in the educational fields that lead to software engineering is further proof that Damore’s assertions about women and engineering or completely off. If women are so ill equipped or ill incentivized to pursue computing, why did they spend decades making up nearly half (or more) of the educational graduates in computer science and applied math?

Human beings haven’t physically evolved in the last 40 years to biologically change their ability to implement binary search trees. And neither has computer science. While technology certainly has advanced since the late 80’s and early nineties, the fundamental computer science taught to CS students has largely remained the same.

For example, almost every CS student in the United States works with the CLRS: the Introduction to the Design and Analysis of Algorithms by Cormen, Leiserson, Rivest, and Stein. The CLRS is seen as the “bible” of algorithms and data structures (the heart of computer science) and has changed little because the fundamental theories and math within it remain unchanged since the early twentieth century.

But the CLRS was first published in 1990. And while it’s been revised to include new content (e.g.: applications in cryptography, footnotes around how algorithms can be used in different ways, etc.) it’s basically the same book. The fact that this pillar of CS education has remained unchanged since a time when many/most CS majors were women should indicate that the content that CS majors study today has similarly not changed.

So what gives? Humans haven’t changed. The field hasn’t changed.

But what has changed is the image of what the supposedly ideal software engineer looks like. What has changed is the culture around computer science.

This is a very complex topic worthy of books describing how imagery is culture, and the forcing function of how we push women out of studying the field is exceptionally complex. But real scientific evidence is clear that the reason why women aren’t studying CS or becoming programmers has to do with the fact that society is effectively telling them not to.

That’s a problem. Because like biological differences supposedly representing fitness and satisfaction in the typical environment of software engineering and computer science, popular perceptions about both fields (which help create these sexist perceptions of female faculties in software engineering) are bullshit.

Let’s revisit the “real computer science major” image for a moment, because the “real computer science major” effectively becomes the “real software engineer” four years and a bunch of inductive proofs later.

This image is extremely flawed. In the real world, you cannot be an anti-social non-team player and be a successful software engineer. Engineers do not work in a vacuum; they work on teams. In some environments (such as those that employ pair programming), it is absolutely critical that software engineers display enough emotional IQ and communication ability to be successful.

Anyone who says that software engineers don’t need to be good at communicating and socializing has never done pair programming before

I think the reason why we created this modern image of a “successful” CS major comes from a classic problem with statistics: correlation does not imply causation.

We can thank the difficult and algorithm-focused hiring practices of top tier spots for new college grads to work (i.e.: Google, Facebook, Microsoft, etc.) These interview processes are black boxes, but what is known is that a powerful command of algorithm design and analysis is essential.

And while there are a lot of hipster hackers and neckbeards out there who are great at algorithms, the ability to rotely implement Min-Cost Max Flow doesn’t alone make you a great software engineer. Even at Google and Facebook, your ability to work on a team is arguably more important than this command of algorithms.

Algorithms in general are kind of a shitty way to interview software engineers, but that is a whole different blog post.

Because expressing your godlike command of algorithms is part and parcel to being a “real” computer science major, it’s easy to think that this is just another qualifier that this erroneous image of an anti-social neckbeard is the right way to be successful. But it isn’t. It’s just seeing the correlation of having traits of this image and success and equating that one leads to the other.

It also doesn’t help that the non-CS crowd continues to push damaging imagery of software engineers as Aspbergers-suffering nerds that are unattractive to everyone — men and women alike.

Even if you do make the jump into CS as a woman and fight against the intellectual elitism common in the culture, odds are you will face harassment. Sexual harassment in academia is incredibly common, with roughly two-thirds of female scientists in the United States being subject to some form of sexual harassment during their education. One in five even reported being sexually assaulted.

Seeing statistics like these, and noting how the culture of computer science education has shaped the modern culture of tech, it should be little wonder that women in Silicon Valley too face sexual harassment. It is estimated that 60% of women in SV tech companies face sexual harassment, and as evidenced by recent executive firings at Uber, 500 Startups, and the fall of Binary Capital, sexual harassment and even sexual assault from male peers and superiors is disturbingly common.

TL;DR.

I’m proud of my CS degree. I love the education I received at SJSU, and had a blast with my friends there and my time at the school’s computer science club. Looking back, I’m happy I clawed my way through math and other fields I originally loathed to find passion and a career applying what I learned and love.

But there are some serious problems in our culture that need to be addressed. The image of what it takes to be a successful CS is absolutely wrong, and it has dramatic consequences for anyone who doesn’t fit the bill: especially women and other ethnicities (again, whole different blog post here). Being social and collaborating on a team is essential to being a stellar engineer, and the image that you need to be a pasty male otaku to be a good software engineer is completely fucking wrong.

Women are just as biologically well equipped to be amazing programmers as men, not the least of which because they created the field. The reasons why the gender gap exist are complex — but none of them are due to biological predisposition and ability. All of them are due to an adverse culture, poor image of the career field (and the education to get there), and flat out harassment and assault that are systemic problems in both academia and in Silicon Valley tech.

Take it from a neckbeard: you don’t have to be a neckbeard to be a great software engineer.

You should use Linux though. Just saying.

Principal PM for Cryptography and Security Products @HashiCorp. Formerly Defense/NatSec & Crypto @NetApp, VC @GGVCapital + @AmplifyPartners