A few days ago I stumbled across a video titled Stackoverflow is full of idiots . At first, I was a little offended since I use Stackoverflow pretty much daily for debugging. But the further I got into the video it made more and more sense.
The video talks about how some people on platforms like Stackoverflow seem to follow some kind of elitism and mark a posted question worthy or not based on their definition of a “good” question. The result is a down-vote and/or a reply with a downgrading and disheartening comment. While watching it, I started to realize something: As open and welcoming our programming community seems to be at first glance (“Everyone and anyone with a laptop can code!”), we have some blind spots we need to talk about.
In this post, I want to go over my thoughts on this matter and try to analyze what motives drive those disheartening people.
Programmers are not the only ones
Toxic people are everywhere. They are part of more communities than just programmers. It’s not hard to notice, because those negative voices scream louder than any nice voice ever could.
I noticed the same thing in the surfer community. I just started out surfing two years ago and I’m still figuring out the basics. But, after two years of renting a surfboard, it seemed appropriate to finally buy one myself, just to save on those renting fees. While rummaging through online forums for advice on which surfboard to buy, you will find questions and their respective answers like “I’m new to surfing and don’t know what to look for in a surfing board, can someone help?” “Go to a surf shop and take what they give you” or “I’m just starting out and would like to know when is the best time for surfing in a day?” “Go to a surf camp and do what they tell you”.
Me and my friends were discussing where this could come from and we had a couple of conclusions:
- Surfing is a selfish sport. When you are out in the water you’re “fighting” for the next wave against others most of the time. This also means that with every new person in the water you have fewer waves you can surf. This would support the incentive of making the entry point for new members to this community extra hard. Of course, this is a very simple take and there are many exceptions but as I said in the beginning: negative voices scream louder than nice ones ever could.
- The idealization of surfing for a certain lifestyle. People like to think of surfing as “living the dream”. Sunburnt skin, hang-loose attitude, carefree life, playing guitar by the fire every evening, etc. Of course, this can become reality but it still takes hard work and dedication to live this lifestyle. In the beginning, it’s very easy, you just need a guitar and a surfboard. But after a while you start asking yourself: Where will I get money from? Where will I sleep? What happens when I’m insured? People create this utopian notion of the surfer lifestyle in their heads and don’t factor in the downsides. This leads to a low retention rate which makes it hard to trust new people coming in and to build long-lasting relationships with them. Following this narrative, why would anyone help someone who is just starting out if there is a high probability that this person only does it for the quick fix of escaping their reality back home and won’t be around for long?
I can see how this mindset is mappable to the programming community. It’s very easy to step into the field: all you need is a laptop and an internet connection and you’re good to go. There are enough great tutorials on the internet to get you started. But, after you finished your python tutorial about how to write your first program (print(‘hello world’)) and how to implement a map, list, and a search algorithm, it gets tricky. How do you apply the knowledge about the search algorithm to implement an algorithm for autonomous driving? How can you deploy a cluster that trains an ai for you? I don’t know about the retention rates in the programming community, but I can imagine that it seems easier to get into than it is.
Lazy questions exist but still: you don’t know their story
I can imagine that people reply sassy to some of the questions because they think the person behind the post is too lazy to look up the solution on their own. First of all: Yes, some of us are too lazy (or more so, don’t have the time) to spend hours on reading manuals or figuring out how an API works via trial and error when the documentation is vague or non-existent. But isn’t that the point of the slogan: ‘Stepping on the shoulders of giants? To focus on your area of expertise and using the expertise of other people to iterate faster through prototypes until something new comes out?
There are examples of people who just copy and paste their error messages to a support forum or asking an (assumingly) very easy question that can be explained via a quick google search. But I think you can agree that sometimes the most basic solution can be overlooked when you are in the zone and try to finish up a project that already took too long. The hardest part is: you know the answer to your problem probably will be very simple, but for some reason, you just can’t figure it out on your own. This happens to me whenever I reach that point where I know I already coded for 6, 8, or 10 hours and I know I should just stop right there and get some rest, but I also believe that this is the last thing I have to fix to make my code work and be done with it. This is a crucial point because my mind is too fogged up by the hours spend on this issue that I can’t see the bigger picture anymore and the easy way out.
This is just one of many examples where the intention of a support forum post is different from the one you are seeing. Jesse James Richard  described another good example in a post on Quora.
We like to forget where we started
This point comes hand in hand with the point before. Sometimes we look at a question that seems very obvious to us now but would’ve probably looked very different at the time we were starting out. We just can’t remember being in that position. Our mind is very funny in that way. It erases some parts of our memory to have room for new experiences. Or by remembering and talking about the past, it changes up our memory and distorts the real story to summarize and compress it even more. Let me elaborate.
A friend of mine asked me if I could help him with learning how to code in python. He proposed that I would give him weekly tasks and he would solve them. My approach was to show him ‘the basics’ by setting up a virtual environment with venv, creating a ‘simple’ HTTP server, and then setting up his first test environment to test the HTTP server. After one week, I noticed that I asked way too much right from the beginning. My friend didn’t know how to start a python file and would start the HTTP server through a bash script as a python module.
A lot of knowledge that I have, I take for granted. I forgot from where I started and what kind of tutorials and/or help kept me going. I always keep this in mind when looking at posts on support forums as you never know where they started and what kind of knowledge they have compared to yourself.
Programmers suffer from the impostor syndrome
The impostor syndrome can be found in any industry, but especially in the developer community. A lot of junior and senior developers suffer from developer impostor syndrome, which means that they are not aware of their value and experience, even if external evidence strongly suggests that they are good at what they are doing. Comparing their skills to someone else is one google search away. Most of the time those comparisons harm the self-esteem of the programmer since there will always be a better programmer out there.
This problem impacts the tech industry especially because it is such a dynamic environment. Programming is subject to change at any given moment. Standards can become deprecated in a matter of seconds, new software could make the old one obsolete and best practices could shift with a single benchmark paper. This puts pressure on programmers to always be on top of things and follow the trend that is impossible to follow as it is changing too fast. Programmers are forced to always learn the latest thing because it ‘will increase your workflow by a magnitude of 5’ or ‘your code will be 80% lighter’.
I can see how this impostor syndrome can lead to another phenomenon. People will go on platforms such as Stackoverflow and point out the flaws of other people just to make themselves feel better. It’s hard to show yourself ‘vulnerable’ and post a bug or a problem that you can’t solve. It takes courage. Because you don’t know how people will react to this post. You are probably asking yourself: “Is this bug ‘pro’ enough to be posted on this site? Is it complex enough so that I won’t get hate for it?”. It is easy to be on the other side and point out the negatives or how easy the fix is. Because that way it’s not only clear that there are people out there who couldn’t figure out what you figured out a long time ago. But also, you can call them out for it. Because now the focus is on them and not on the mistakes that you punish yourself for in your own code/project.
Again, we can compare this phenomenon to another domain: fat-shaming. People will only call out others with more weight because of their insecurities.
Posting on platforms such as Stackoverflow takes courage. Especially because of people who follow some kind of elitism and spread negative vibes and/or discourage newcomers from becoming a programmer by giving them a bad experience with the community. In this post, I tried to summarize some of the reasons why I think people act that way. This may give a better understanding of the problem and lessens the impact a negative comment might have on you.
Of course, understanding the problem can’t be the solution. Those negative people need to realize that their behavior won’t bring us forward. It will only hurt our community and give us a negative reputation. But this is probably also part of a much bigger problem of the internet: trolls who just want to see the world burn.
All in all, I think we have made a baby step in the right direction: talking about the problem openly and trying to understand it. Let’s see how it evolves.