As someone who has been pushed out by the tech community time and time again, I’ve realized that gatekeeping is a serious problem. One of the ways gatekeeping is manifested is through debates about what does and does not count as programming knowledge. For instance, one of the most common debates is around the ranking or programming languages (e.g. is C++ more of a programming language than Python?). Let’s end that debate today.
Table of Contents
- I’m Passionate About This
- Making the Claim
- Common Counterarguments
- Examples of Gatekeeping in Tech
- Practice Empathy
I’m Passionate About This
Look. For the longest time, I’ve been writing about how problematic it is to believe that languages like HTML and SQL aren’t “real” programming languages:
- Who Gets to Decide What Is and Isn’t a Programming Language?
- What is a Programming Language?
- Have You Reflected on Some of Your Tech Beliefs?
But, what I’ve found is that there’s really no point in feeding into the argument. After all, whose mind am I really changing about whether HTML is a programming language or not?
As a result, I’ve decided to pivot. Rather than trying to tackle the merits of individual programming languages, I’ve decided not to entertain the conversation at all. Instead, let’s talk about the actual effects that boundary drawing has on the people in our community.
Making the Claim
For as long as I’ve been involved in tech (and I assume since the beginning of tech), people within the community have spent a considerable amount of time defining what it means to be a coder, programmer, developer, etc. Naturally, this type of boundary drawing allows us to distinguish coding as a legitimate field rather than something like a hobby or an esoteric activity.
Unfortunately, in an effort to establish this credibility, a lot of people have been pushed out along the way. After all, for every boundary drawn, there has to be someone who doesn’t meet the criteria. For instance, this tends to happen with related fields like IT or data science whose members are often considered lesser coders.
Of course, the boundary drawing doesn’t just stop at the walls of the discipline. Naturally, it continues until only an elite group of individuals can actually fit the bill. For example, there tends to be a level of elitism associated with how close you get to hardware (e.g. the more memory management you can handle, the better “coder” you are).
Ultimately, this brings me to my claim that ranking programming languages (i.e. arguing the relative merits of programming languages) provides no value. Or rather, ranking programming languages can only provide net negative value. Specifically, I think the cost of gatekeeping is too high to ignore. After all, for every person who says “HTML is not a programming language” to gain some credibility from their peers, there’s probably a dozen people that are pushed out of the field.
Common Counterarguments
Rather than arguing that gatekeeping is problematic, I want to take a moment to engage some of the counterarguments instead. After all, there are a few common arguments in favor of maintaining the status quo.
Individualism
First and perhaps the strongest argument is the idea that gatekeeping is important because competency is important. Personally, I hear this argument most often in the engineering space when it comes to bridge building. And ultimately, I agree; if your making something that has the potential to hurt people, you should probably have the best people on the job.
However, I think this is fundamentally an issue of ideology. Specifically, people with this argument tend to subscribe to individualism (i.e. the belief that people should be self-reliant). In other words, the folks that make this claim tend not to attribute failures to systems but rather to individuals.
Personally, my critiques tend to be on systems. For example, in what world do you allow for someone to build a defective bridge without checks and balances? Certainly, the system that allowed for that bridge to exist lacks redundancy. Of course, instead of blaming the system, we would rather pin the result on an individual’s incompetence.
Likewise, the vast majority of people in the field cannot and will never be “the best.” As a result, you’re going to have to deal with the fact that a lot of people are average, and blaming them for their mediocrity doesn’t change that reality—nor does excluding mediocre people based on arbitrary boundaries like whether or not they consider HTML a programming language.
Meritocracy
The second argument I tend to see is that if people can’t handle the gatekeeping then they shouldn’t be in the field. This type of argument tends to come from the ideology of meritocracy (i.e. the belief that society should be organized by skill or ability), and I find it to be one of the more frustrating ideologies to deal with.
In general, people with these beliefs refuse to acknowledge luck and the role it plays in people’s lives. For example, if I happen to not have the resources to afford a computer, I cannot easily learn how to code. Certainly, that doesn’t mean I’m not working hard enough or that I’m not smart enough—which are problematic framings in and of themselves. It’s just that circumstances dramatically limit my access to the field.
Even if I manage to get into programming, it’s possible that my limited exposure to it will be through some web development (e.g. HTML and CSS). Of course, if someone told me I wasn’t a “real” programmer because of the tools I use, I’d be pretty discouraged. Why don’t these folks want to support me?
Surely an extremely motivated individual could learn how to code and fit whatever standards the field has set, but is it worth it? You know, all of the abuse? Even worse, it’s likely that any person who succeeds in jumping through all the hoops will only maintain those hoops because they benefited from them. Ironically, that same person will be hoisted up as a hero and the example. I’m not sure I could support a system that does that.
Ultimately, I’m sure there are dozens of other counterarguments to the idea that there is no value in ranking programming languages. For example, I know a lot of folks think it’s useful to know what certain languages are and aren’t. But, I believe that whatever value is gained through these sort of distinctions is offset by the culture of gatekeeping that is perpetuated as a result.
Examples of Gatekeeping in Tech
While I’m aware Twitter is not a decent cross-section of the how the world operates, I find it to be a helpful source for getting a pulse on the culture of tech. For example, just about every week I’ll see someone in tech taking heat for a bad take—not all of them tech related. Here are just a few:
While I’m fully aware that the algorithms of the internet are built around hate clicks, you have to admit that these are all trash takes.
But these aren’t just bad takes, these types of tweets reveal the dark underbelly of tech. While three of these people were “cancelled” for their elitist takes, there’s probably another 100 people spouting the same beliefs without even a bit of blowback. These people could be your classmates and coworkers. Hell, they could be your teachers and professors. And, computer science educators wonder why retention and diversity is so bad.
I mean the fact that Hays could even make his HTML joke without receiving any sort of blowback shows how easy it is for exclusion to be normalized. Everyone in the comments is trying to get in on the joke because they don’t want to be excluded. Ironically, if you were to push back on his take, you’d be mobbed by folks just trying to fit in.
Unfortunately, this is all too common in tech. The gatekeeping phenomenon I describe in regards to programming languages manifests in many different ways. For instance, N’Vida Yotcho talks about how the “elite” often gatekeep around unconventional coding styles (e.g. indexing from 1) and unconventional educational paths (e.g. boot camps). According to the elitists, if you don’t write code using a plug board, are you even coding?
Practice Empathy
I’ve largely been very fortunate to be in this field. That said, as a creative, I find it challenging to navigate the arbitrary “rigor” on a daily basis. And, if someone like me doesn’t want to stick it out in this field, what makes you think that someone who has significantly more obstacles will? Ultimately, I need you to ask yourself this: what beliefs do I have that are perpetuating a culture of gatekeeping?
In general, I believe people need to be given the benefit of the doubt. It’s not anyone’s place to decide if you’re “good enough” to be a coder because there is no homogenous set of skills that every “real” coder needs to have. Ultimately, y’all need to stop gatekeeping each other and respect the hustle.
As always, if you respect my hustle, I’d appreciate it if you ran over to my list of ways to grow the site. That way, you can join the community through Discord, Patreon, and whatever else we’re still maintaining by the time you read this article.
In the meantime, it would be awesome if you could stick around and check out some of these related articles:
- Who Gets to Decide What Is and Isn’t a Programming Language?
- What is a Programming Language?
- Have You Reflected on Some of Your Tech Beliefs?
Likewise, here’s the usual list of Python resources from the folks at Amazon (#ad):
- Effective Python: 90 Specific Ways to Write Better Python
- Python Tricks: A Buffet of Awesome Python Features
- Python Programming: An Introduction to Computer Science
Otherwise, take care! I appreciate your time.
Recent Posts
Teaching at the collegiate level is a wonderful experience, but it's not always clear what's involved or how you get there. As a result, I figured I'd take a moment today to dump all my knowledge for...
It's been a weird week. I'm at the end of my degree program, but it's hard to celebrate. Let's talk about it.