Exclusion and Exceptionality in the Pipeline
In computer science classrooms across high schools and universities, minorities are excluded and exit early in the pipeline.
All around the world, there are initiatives to educate untapped, diverse talent in programming. Despite these efforts, programming is still dominated by privileged men with university computing backgrounds. Highly competitive, degrees and jobs in computing seem to focus more on finding geniuses rather than nurturing potential talent.
The image of the stereotypical programmer has not changed in the last two decades. He’s a white or Asian guy in his 20s or 30s — a socially inept nerd with a hint of tortured genius. Considered a math whiz, his passion for computing peaked at an early age. He’s a talented programmer that everyone, whether in the classroom or the workplace, respects and aspires to be.
These celebrated programmers are almost always male. In the industry, they are rarely women and people of colour — with or without computer science degrees. There is a glass ceiling to break when it comes to being considered exceptional, especially for minorities. There are people who do not have access to a computer, let alone computer science education because of cultural, racial, gender, and economic barriers. Therefore, we are not privileged enough to be exposed at early age to programming and supported as “gifted”. In the classroom and in the workplace, our skills rarely receive the benefit of the doubt – they are never read as-is on a résumé. It is harder for us to drop out of school and become the next tech wunderkind. Meanwhile, we are criticized for “milking” our minority status. We are tokenized, sexualized, and excluded in nerd or tech culture. We are afraid to show weakness and ask for help from professors, classmates, or coworkers, speak up about oppression, and be vocal about our accomplishments.
In computer science classrooms across high schools and universities, minorities are excluded and exit early in the pipeline. Along with the pressure to keep up with our “exceptional” peers, we face the pressure of being a model minority or a success story. Like it or not, being regarded as exceptional is a privilege, not proof of a meritocracy.
Identity in the classroom
Undergraduate computer science education is the most common and traditional way people enter the pipeline, and the concept of exceptionality is baked into students early. In freshman year, the “geniuses” are separated from the proletarians as there is a huge pressure to assert your talents and capabilities. The exceptional students, the ones that have already contributed to open-source projects or won programming contests, emerge as the people everyone else should aspire to be.
Collaboration is usually not permitted in CS classes, in part due to fears of plagiarism. Although students inevitably collaborate, they submit their work independently. As a result, the pressure to be an exceptional programmer is greater. In the industry, programming is communal and collaboration does not taint intellectual property, and engineering teams thrive when their programmers are able to work well together. Collaboration allows for people to learn from one another and value each other’s work. In contrast, group assignments are often only done in senior CS courses, ensuring that individual achievement and exceptionality are centered over teamwork and collaboration early on.
At my school, the multiple introductory CS classes split up by experience level and offered to all general math students deepen the divide between exceptional programmers and everyone else. CS majors are judged harshly from their peers if they are enrolled in the beginner level course which is filled with other math majors. On the other hand, the select few enrolled in the advanced level course are praised. Those in the regular level course are seen to have stuck to the status-quo.
Being ambitious and overzealous, I enrolled in the advanced level course. I was a self-taught web programmer with no background in computer science. I felt I should join in part because I was a woman, and somehow being in the class was a form of self-validation, a false sense of empowerment. In fact, it was encouraged that I take the course as woman, because of the traditionally low female enrollment.
The course was difficult, bridging mathematical and computer science concepts at a fast pace. Like the other introductory CS courses, we studied functional programming, but also delved into advanced topics like lambda calculus.
The functional programming community has a bad reputation for being academic, male-dominated, and unwelcoming to minorities. The demographics of the class reflected the demographics of this community. It was difficult to assess whether the attitudes were also a reflection. In stereotypical fashion, there were self-taught Haskell enthusiasts who wore fedoras and had “Unix beards” in the class. They were immediately praised and sought after for help from struggling students. Week after week, students were dropping the course like flies. Although I was struggling and failed the midterm, I made the bold decision to stay longer before ultimately dropping. I didn’t want to my peers to think less of me despite already feeling inferior to them. Of the few women left in the class, I wanted to be represented. I wanted to be the alpha female among the coder boys if I couldn’t be a genius programmer. My male classmates kept a counter on the number of women remaining in the class, and I wanted to be a number, the token woman.
Being the token woman has polarizing criteria. We can’t be too feminine or attractive. But if we are, we are the video-game playing, nerd-culture spouting fantasy. There can only be one of us in a group of men, and we need to be exceptional. This is an incredibly limiting and unfulfilling role for women to play in CS. Many of us can’t or don’t want to handle the attendant social and academic pressures, so we end up switching programs or dropping out of school. Even women switching into CS from other programs, especially from the arts and humanities, face arrogance and criticism from academic staff and classmates. My friends who have faced this were discouraged for not being “smart enough” to switch, handle the workload and earn high enough grades.
At many schools, women find camaraderie through women in CS clubs. In addition to providing mentorships, career and technical workshops, and industry talks, they should be partnering with academic staff and other computer science clubs to improve the perception, treatment, and support of women on campus. Another issue is that not all women in computer science are being reached by these clubs. Club outreach can be poor and ineffective. Some women might not feel like they can relate because they haven’t faced barriers in tech. Others may negatively associate these clubs with feminism, or feel like receiving “special” treatment perpetuates being a minority.
There is also racism and racial prejudice in the classroom. The few Black students in my classes have been coined the “token Black guys”. International Chinese students face criticism for being “smelly fobs”. I’ve heard white students complain how these students are “taking over”. In general, Asian students are often seen as submissive and diligent “code monkeys” by others. Our achievements are not individually recognized, but rather as proof of being a model minority. As a result, we are not seen as facing barriers like other minorities. Although we are better represented and the most visible minorities in the industry, there is little representation in leadership and upper-management roles. Accentuated by the cheap programming labour overseas, we are seen as a dime a dozen or expendable. Like other minorities, our exceptionality is seen as a group achievement, whereas white exceptionality is recognized individually.
The competitive edge
The idea that exceptionality in programming is rooted in a traditional computer science education (and thus, mathematics) is also reflected in the extracurriculars students participate in to get ahead in the job market.
The programming is not math debate is a controversial subject, but the growing number of programmers with no computer science background is proof that anyone with the drive to learn can have a successful career. Many of these programmers come out of bootcamps, where they receive a crash-course education on software development and rudimentary computer science.
Nonetheless, a mathematics background gives programmers a competitive edge in contests like the ACM International Collegiate Programming Contest, HackerRank, and Project Euler. The majority of participants in these contests are male computer science students looking to add experience to their résumé for internships and full-time positions. There are few or no initiatives to attract underrepresented participants. Other than education background and country of origin, no additional diversity data on participants is collected. As a result of the lack of diversity, the only programmers ultimately showcased are male.
The ACM International Collegiate Programming Contest is global competition among universities where teams work together to solve several problems covering optimization, graph theory, combinatorics, and number theory. The ACM (Association for Computing Machinery) has programs that support women and individuals from economically developing countries, however these programs operate separately from the contest.
HackerRank, an online platform for programmers to learn and solve classic algorithms, artificial intelligence, functional programming, and bash programming, boasts that their contests are a meritocracy because programmers are ranked by skill and not by educational background. Participants are scored, ranked, and awarded with badges for notable achievements. Reflective of the main users of the site, the success stories showcase Asian and white male computer science students who have scored jobs at tech giants.
Screenshot via hackerrank.com.
Project Euler requires the most proficiency in mathematics out of all the contests mentioned. At my school, it is the most well-known and intimidating contest. Like HackerRank, participants are scored, ranked, and awarded with badges. The majority of participants are from the US, India, Germany, and England. Project Euler has the smallest presence on social media and showcases top participants by username.
Screenshot via projecteuler.net/eulerians.
Contests are affordable ways for people to fine-tune their programming abilities and also get noticed by employers. Unlike most computer science classes, these contests encourage or require collaboration. Participants can enter forums to ask questions. Teams can be formed to complete challenges. Unfortunately, programmers who are new, unconfident, or underrepresented are reluctant to enter these contests. These contests are either exclusive to university students or mainly focused on them. Not only are difficult challenges intimidating, but so is having the scores posted publicly, which can feel as critical as an academic grade. Deservingly, people with high scores are seen as exceptional. Nonetheless, not scoring high scores or participating in contests does not make you less capable. Although contests inherently promote exceptionality, the people with the most privilege have the most access to them. Even when data is collected and published on gender or another socio-economic status, the privileged still succeed more often than others.
The need to nurture programmers
There is nothing wrong with celebrating talented programmers, but only privileged men and occasionally people who are seen as model minorities are being recognized. Students are entering the industry with false and dangerous assumptions about gender, race, sexuality, success, and education. These assumptions lead to certain groups being treated as exceptional and others being excluded, and eventually leaving. Rather than focusing on discovering exceptional programmers, there needs to be more initiatives to support gender, racial, and LGBT inclusion in the pipeline.
Programming is no longer an exclusive club for computer science-educated men, but capable programmers are still being pushed out of our industry because they lack racial, gender, and academic privilege — and it starts early in the pipeline. Whether it’s a programming contest, bootcamp, internship, or computer science education, many paths into tech jobs are intimidating or unaccessible to beginner and underrepresented programmers. And whether they took a traditional or nontraditional path to the industry, programmers are expected to be ready-to-go with all the necessary skills for employment once they enter the field. This places a huge pressure on programmers to be perfect, which makes the pipeline painfully competitive.
The exceptional programmers that are being portrayed at every stage are like airbrushed models; they don’t represent the different walks of life that make up our community. In using using labels like “genius” to measure each other’s abilities, we are placing pressure on programmers, new and old, to be prodigious and to always assert themselves as extraordinary. The pressure to live up to these labels ruins confidence and perpetuates tokenism, and people with untapped potential are being passed off because they don’t fit the image.
Investing more in the development of programmers would allow for more diversity in the industry. It would be far better than hiring based on gender, race, or academic experience.
Tech companies, learn-to-code curriculums, and CS education should all be helping their programmers to develop their skills, instead of expecting them to be “rockstars” or “ninjas”.
There needs be more public discussions, not only behind computer screens, on the social implications of computing and how inaccessible both ends of the pipeline are. Greater emphasis should be placed on nurturing talent instead of measuring and discovering “geniuses”; after all, having access to opportunities to refine and learn new skills is just as important as receiving recognition.