It's Not Just You: Tech Is Systematically Excluding Beginners
Dec 2020 - 4 Min read

It's Not Just You: Tech Is Systematically Excluding Beginners

OpenTheGates Creative Technologist Progressive Millennial

A computer programmer explains that it’s not your fault you’ve struggled to learn to program.

What does “void” mean in the context of computer science? 

If you don’t know much about computer science, you’d understandably find the question impossible to answer. A void is like emptiness right? Creepy, vast darkness? “Why would this word be used in the program I’m writing?” any beginner could reasonably ask. 

On Stack Overflow, “​the largest, most trusted online community for developers to learn, share​ ​their programming ​knowledge, and build their careers,” the highest-rated answer to this question goes:

“Basically it means ‘nothing’ or ‘no type’. 

1. Function argument: int myFunc(void) -- the function takes nothing. 

2. Function return value: void myFunc(int) -- the function returns nothing 

3. Generic data pointer: void* data -- 'data' is a pointer to data of unknown type, and cannot be dereferenced” 

Are you lost? I was too. And this, by the way, truly is the best answer on the page. There is barely an answer to the meaning of the term in this context, and no answer at all to why one would use it. All that is provided is how to use it. While this information is useful, it assumes a base level of knowledge that is absent (or, in this case, void).

Are you lost?
The matrix

The Subtle Gatekeeping in Computer Science Education

On Stack Overflow and other resources for accumulating computer science knowledge, there is both obvious and non-obvious gatekeeping. Gatekeeping is when a certain group of people, or individuals from a group, exclude and alienate outsiders who wish to be a part of the group. The obvious gatekeeping is when community members spew the following rhetoric in response to a fairly basic question: “Pick up a good C++ book like the rest of us,” or, as it’s often simply put, ​“Read the fucking manual.” It’s cyclical hazing that has become an industry standard. 

The old guard of computer science was taught by their predecessors that learning these concepts is a struggle—that no one will help you, and you must figure it all out yourself. While there are definitely people who respond to that sort of tough-love education, to imply that it’s somehow necessary to learn computer science totally neglects the pedagogical progress we’ve seen in education and academia in nearly all disciplines. 

The other form of gatekeeping is a lot less in-your-face. It exists through assumptions, and the resources and documentation provided to programmers to serve as reference materials, like an encyclopedia for that language. When one studies computer science formally, in a traditional academic setting, you’re not only taught how to code, but how to further your learning. Informal computer science learning, outside of a traditional classroom setting, requires not only teaching yourself how to code but also teaching yourself how to learn and creating your own curriculum. As a non-expert, this is discouraging and damn near impossible.

Learning Should Be Easier to Learn

Code

There are a variety of barriers that stand in the way of a computer science education for many learners, most of which are exacerbated by learning outside of a traditional university setting. These barriers can be economic, whether it’s paying for a college program or having the time to devote to independent learning. Many programmers from different backgrounds also still have to work significantly harder to be taken seriously in the field. (A close friend once told me of a professor saying in class that computer programming is not a good career choice for women because coding can be frustrating when encountering bugs and women are too “emotional” and will just want to quit.) And lastly, the materials provided to computer scientists are often effectively inaccessible. As an educator who teaches computer science and other tech skills to teens with disabilities, I encounter challenges every day where the resources provided have little to no consideration for differently-abled programmers. 

I began learning computer programming on my own. My public high school didn’t offer computer science programs, so like so many others, I turned to free online programs like Codecademy’s Python course. While Codecademy and programs like it are definitely great tools for learning basic comp-sci concepts, they’re not enough to give a programmer an entire language at their fingertips. They don’t set a learner up for success once they go off on their own. This is where reference materials ​should​ come into play. 

Computer science reference materials aren’t self-explanatory, and should not be assumed to be. Not all those who desire to learn computer science have the privilege of being shown how to operate the reference materials they need. Additionally, no particular language is obligated to show newcomers how to use reference materials and documentation, so none of them do. 

My gripe here is not only with how informal learners are taught but also with the standards in place for reference material and documentation, which lack any semblance of pedagogy. Reference materials should encourage their own obsolescence, meaning they should be structured to be used less and less frequently as time goes on, just like crutches in a physical therapy context. In practice, however, these tools do not encourage their obsolescence, but rather encourage dependency.

When a learner sees a page with everything they could possibly use within a language, it’s easy to feel overwhelmed. If you spoon-feed the entire language piece by piece to someone, Codecademy style, the language could be obsolete by the time you’re done. This is where formal educators can bridge the gap. A good educator will teach their students how to teach themselves. This gap is significantly more treacherous and discouraging to cross without an expert to guide an informal learner. Despite my grasp of Python syntax, I personally never felt ready or confident enough to develop my own project until I learned Python in a formal context and was taught the tools to teach myself.

Many programmers from different backgrounds also still have to work significantly harder to be taken seriously in the field.

We Need to Make Tech Education More Accessible to Informal Learners

A water bottle and computer

I don’t want to discourage informal learners, but rather acknowledge the inequity they face in educating themselves. I’m also calling for the systematic betterment of computer science communities and the resources they provide for newcomers, who frequently do not have the privilege of university education. These communities and resources can also alienate learners with physical or cognitive disabilities and non-native English speakers, by providing inaccessible documentation. 

What’s the solution? Is there one? Systematic change is always a wicked problem. It will never be as simple as a single tweak. This problem requires fundamental adjustments to individual attitudes, educational and corporate structures, even political ideologies—I could go on and on.

I think the fundamental takeaway for those of you who do have programming experience and exist within the aforementioned communities should be this: Always strive to make the experience of learning what you’ve learned easier than what it was for you.

OpenTheGates Creative Technologist Progressive Millennial

Discover Themes

Hi, Society

Okay, so how many movies did you see in the theater last year? And live concerts? Yeah, that’s what we figured. And yet!

Pop Culture

And Beyond

The year is 2020. Science and technology influence everything from day-to-day tasks to our health and longevity. And yet an ocean of advancement still awaits. The question is, how do we dive in?

Science and Tech

What's Good

To say this year has sucked would be an understatement. But amidst the hot dumpster fire that is 2020, we're looking for a silver lining.

Acts of Kindness

State of the Union

It’s perhaps the most contentious and consequential election in modern American history: As Biden and Trump square off, The Doe jumps into the debate.

Politics

The System

George Floyd. Breonna Taylor. Portland. Chicago. Lafayette Square. As cities across the United States grapple with protests, unrest and rebellion, The Doe takes a deep dive into justice and the system.

Justice

Subject Matters

Reading, writing and arithmetic ain’t what it used to be a decade ago—or even a few months ago.

Education

What She Said

It’s difficult to articulate what it's like being a woman. Hell, even the spelling of the word is cause for discussion (we see you, womxn).

Women

Four Letter Word

Love: A lot of songs, poems and multi-volume treatises have been devoted to the subject. So, in these strange days when we could use it the most, what’s left to say about the strongest of human emotions?  Plenty.

Love

Head Space

Chances are you’ve been on your own rollercoaster ride with mental health recently. The Doe is here for you. 

Mental Health

Common Ground

The environment is a constant in the news, but even more so of late. Climate change, the Australian wildfires and, of course, the spread of a global, animal-borne disease have most of us thinking about our planet in unfamiliar ways.

Environment

On the Record

We’re very proud of our particular and deliberate themes at The Doe. They cover a broad range of topics, ones that we feel are crucial to discourse in the world today. But still!

Collection