Stack Overflow has been getting a lot of heat lately for being a toxic and hostile community, specifically towards beginners. It’s hostile towards anyone who isn’t a straight white male as well but everybody already knew that, right?
What people aren’t mentioning is that everyone who’s used Stack Overflow, to a certain degree, is at fault for it being perceived as unfriendly towards beginners. Whether you’re asking questions or answering them, here’s a few things to keep in mind going forward.
If you’re a beginner, don’t take it personally.
Seriously, don’t let that shit get to you.
Stackoverflow is the most toxic programming site in the world. It's a huge turn off for beginners. Our users basically get bullied over there.— Amjad Masad (@amasad) June 6, 2018
If someone’s answer on Stack Overflow is bordering on “bullying” to you, you’re letting text on the Internet from some stranger have way too much power over you. Picture that neckbeard in their mom’s basement with Cheeto dust all over their mechanical keyboard and then ask yourself, “Why am I letting this person get to me?” Ignore them.
From what I can tell, a lot of hostility comes from a lack of due diligence. If you’re a beginner the odds are probably that your question has been answered before. You’re at a beginner level, doing beginner level things, and a lot of those questions have already been answered.
It’s also worth keeping in mind that Stack Overflow is entirely text based. It’s hard to determine tone from text. A comment that comes off as annoyed or dismissive may just be someone trying to be concise and to the point. For example, “Don’t post duplicate questions. It has already been answered here.”
Could Stack Overflow do better by curating beginner friendly FAQs? I think so. Subreddits do it just fine. But in the meantime do a quick search for “var vs. let” before creating another thread for it.
You’re learning and requesting help. Be considerate to the person offering it.
Yes, you. The beginner. You’re asking for help so be considerate and make it easy for people to help you.
There’s nothing worse than a question like this:
Hi everyone i have problem with Angularjs app. I can noramali singin in app,but when i try to change password i got error [$http:baddata].
Yeah, that’s real. And guess what? I have no problem describing it as a horrible question because it’s barely a question. I don’t shit on things like grammar and spelling because they may not be a native English speaker but there’s still room for improvement.
- Provide context - Does changing your password work when hitting the API directly using something like Postman or cURL? If so, say so. It helps isolate the problem.
- Show your code - It’s hard to help if you don’t provide code. Make it as easy as possible for the person helping to actually be able to run your code too.
- Use code formatting - Places like Stack Overflow allow you to format your code using backticks (
`). Use them. Nobody wants to read through a wall of unformatted code. (Thanks to Stack Overflow I learned how to escape a backtick within backticks while writing this avoiding yet another question about it.)
- What have you tried? - Similar to context, provide some details about what you’ve already tried to resolve the issue.
All of these go a long way towards showing that you actually care and appreciate the help. You took the time to craft a question and it’s usually much easier to answer a well crafted question than that “question” I listed earlier.
Take a look at this question I asked back in 2013. I provide context about what it is I’m trying to accomplish, I use code formatting, I show the code in question with an external link to more code, and I provide a brief summary of how I’ve tried to debug the issue. And yet, despite it being a beginner question, I received a very friendly answer.
Don’t be the “use X instead” comment
If you’re answering questions don’t be the guy that says, “Why are you using a for loop when you could just use map?”
Guess what? Beginners don’t even understand how a for loop works. That’s why they’re trying to write one. You know that. But you also know there’s an abstraction that you use instead of a for loop.
But instead of helping them, you whip out your dick and knowledge drop map. Guess what? Now the person asking about the for loop is questioning the tutorial or book or video course they’re using because some people on Stack Overflow are saying real developers don’t use for loops. Now they’re questioning whether to continue learning because they don’t want to waste their time.
Help the beginner learn how a fucking for loop works. They’re not ready for map. If you don’t understand how that can be possible, you’re cursed with knowledge.
You’ll never make everyone happy
Remember, no matter how hard you try (as someone asking a question or answering a question) you’ll clearly never make everyone happy.
This was just posted by a guy with 100K+ rep on a beginner StackOverflow question.— April Wensel (@aprilwensel) March 17, 2018
EQ note: Even this kind of subtly condescending comment can be very discouraging. The words "exactly" and especially "clearly" are warning signs in this context. pic.twitter.com/QBip43PexV
Learning a front-end framework is hard. "Getting started" tutorials cover the basics but you leave thinking, "Okay, now how do I build something with this?"
The truth is, getting started tutorials aren't all that great for beginners. They're demos to highlight as many features as quickly as possible.
They're great for showing off what a framework can do. They aren't so great for teaching you how to build web apps.
The end result is a basic application that doesn't mimick what it's like building real applications as a front-end developer.
You'll work with a mocked API and database. Application architecture isn't covered. Automated testing is skipped altogether.
Trust me, I've been there. But those days are over.
With The Angular Tutorial, you'll learn how to build applications using a real API and database. You'll leverage 3rd party APIs like Zomato, Google Places, and open-source libraries just as you would in a real job.
The Angular Tutorial assumes you have no previous knowledge of the Angular framework. It starts at the very beginning.
Every piece of code is explained and tested to make you interview ready.
Ready to get started? 👇