A little less than a year ago, it finally happened to me too. I stumbled upon a question that even Dr. Google couldn’t answer. No search result seemed to fit. So after years of standing on the sidelines, I signed up to StackOverflow. What’s StackOverflow? Well, for those of you who are new here on Earth, it’s a brilliant question and answer site for programmers.
So I asked my question. And then, armed with my very own StackOverflow profile, I figured the next step should be to give a little back. After all, the community has always been there for me. Why not do the same for them?
So I did. And man, ho man, the things I’ve learned once I crossed the threshold. Two things in particular surprised me the most: The first was the engagement. Every answer I gave was almost immediately followed by additional people commenting and relating to my answer; the second was the fact that so many people worldwide got completely chastised, immediately after posting their first question ever. Their questions were muted or deleted, and their entire first step in the big vast stack exchange universe left them with a bad aftertaste.
In fact, ‘newbies’ common mistakes inspired me to write down my thoughts, talk about these little pitfalls that have surely frustrated anyone who’s been hanging around the StackOverflow watercooler long enough.
So allow me to share with you some of the things I’ve seen, once past the velvet ropes.
“I’ll take ‘The Same Old Questions’ for 200, Alex”
I often think StackOverflow would make a great drinking game. Like ‘do a shot every time you see a question you’ve seen before’. However, I’m not sure that livers worldwide could sustain downing one every time you see a “What’s a NullPointerException” or that nagging “What’s the difference between Scanner.read and Scanner.readLine”. Even experienced drinkers won’t be able to keep up.
Seriously, not a day goes by without someone asking about string comparison in Java not working, because they compared using “==” and not with the mandatory “.equals” method.
Phrasing and code samples may differ; the underlining questions never do.
It’s kind of sad, really. These people are innocently posting their questions. However, the fact that they could have just Googled it first annoys the StackOverflow community. Add the fact that StackOverflow has a search option and a smart suggestions mechanism for similar questions as you are writing your own (I personally had discarded two questions I was writing when I saw the suggestions), and you can understand how it’s even more annoying to keep bumping into the same questions.
The result is that newbies are met with impatient members of the community, who can no longer stand reading the same questions over and over again. It doubles when the question is a very basic one, easily solved by any tutorial online.
And it’s not just for trivial questions, with an “excuse me, I’m a noob” disclaimer. How to solve the 65K limit issue in Android has been featured time and time again. And, when Marshmallow’s new Runtime permission model popped up, so did the questions, or should I say, the question.
The StackOverflow Dog Will Do My Homework
Now, I’d say nothing rubs the StackOverflow folks the wrong way more than identifying a “do my homework for me” question. Some get really unpleasant. Others, just respond with sarcastic humor (I admit, I’ve had a few chuckles myself). But, it’s amazing to see how many students are trying to have someone else do their assignment for them. And the most infuriating are those who try to mask it (while others are at least being honest, saying “I have this assignment, I don’t understand it or where to begin”). Seriously guys… uncool.
Now, SO (that’s short for StackOverflow) has a very strict policy with regards to these sort of questions. And rightfully so.
“A friend gave me this task” you say…
What’s also frowned upon? Dumping enormous amounts of code and stack trace. The community will gladly try to help you solve a problem or answer a question you may have, but you must be specific and do some of the research yourself. There’s very little patience for those who don’t show one iota of effort, which is why you must be focused and precise. You have to explain what is the specific nature of your problem, what exactly are you struggling with, and what, if at all, have you already tried to do on your own?
Are We Telepathic or Are We Dancers?
“My code doesn’t work. Why?”
“I got this exception. What does it mean?”
“How do I code what I want?”
“Why didn’t Santa bring me the toy I asked for?”
Generally speaking, these are valid questions. Okay, the last one’s a judgement call. But the rest look to be okay. Except when that’s the entire post content. And yes, that happens. A lot. More often than you’d imagine. People just shout they have a problem, but don’t provide the slightest hints to make others understand the full context, so they can provide a descent answer.
They don’t explain what the issue is, or they post their stack trace and not their code, or they post their code, but don’t explain how the exception is related (as if we are supposed to just guess what line 54 is), or they just post something vague, or ask “how do I do this” without a single word about which language or architecture they’re using, and the list goes on.
A concrete example of a question with just the error, no code or details supplied
And then, you’ve guessed correctly, they’re met with snide remarks. Somewhat frustrated people who naturally aren’t blessed with telepathy turn to either cynicism or nastiness before voting to close the question, leaving the poster with a bad reputation on his/her first day.
Examples of StackOverflow comments.
A Jury of your Own Peers
As you may have already guessed, StackOverflow is moderated by the community. It’s not just about solving problems. It’s also about improving the quality of questions, optimizing the answers, and improving the site in general. The more reputation you get (i.e. the more your questions, answers, edits and so on are “liked”), the more power you gain and the more influence you have.
From all I’ve written above it may sound as if the site is ruled by a stone-cold jury. However, nothing can be further from the truth. In reality, StackOverflow has plenty of members moderating it. Plenty of moral and ethical dilemmas are queried and mulled over in meta (the site for asking questions about proper behavior in the stack exchange framework), tough questions are asked, and the community is constantly reevaluating itself and its members’ actions. It’s really a great model of government, a phenomenal example of democracy.
One of the most important things I’ve learned was that every first timer’s post, be it a question or an answer, is immediately moved to a review stage. That’s also how I got comments on my first answers. Some comments were very helpful and taught me how to provide better answers. And in time, I did the same for others. I tried to explain what can be better next time, with regards to the provided answer or the question asked. The posts that were far too gone (in my opinion), I marked as “unsalvageable” and they were passed on. You see, it’s not all up to one person. Important issues are flagged and are passed on for moderation by users with higher reputations. The fate of a post is never left to a single user’s discretion.
An example of an answer that was flagged as low-quality and is therefore being reviewed by others
And you’re always under scrutiny too. No one has a free pass. Even after you gain enough power, so you are allowed to comment, review, and even delete posts, you’re still, always, being looked at, and sometimes, even challenged, either automatically or in meta.
How to properly moderate SO is a skill with its own learning curve. If you make too many mistakes or are disputed by others too often, you get warned and penalized.
I was overwhelmed (and yes, also impressed) when I learned how this community maintains itself and realized what a high standard it creates.
“And you’re always under scrutiny too.”
Where Everybody Knows Your Name
I can honestly say that after years of being a passive StackOverflow user (actually ‘reader’ would be more accurate), I’ve absolutely enriched myself by becoming an engaged member. Learning how the machine operates, slowly growing my reputation, and working to get badges or commendations is great. But nothing’s compared to the feeling you get when you’ve managed to help someone in need and received positive feedback. Even if it’s for a simple question. Even if it’s by commenting on what’s wrong and how to improve.
But you don’t always get to be the good cop. Being a cog in this well-oiled machine sometimes means you have to be the bad cop. Brace yourself; it’s not always nice, but it’s necessary. It’s how you support SO quality. The vast majority of the StackOverflow community is made up of people with good intentions, wanting to help developers worldwide, the same way they’ve been helped. I know I am.
How was my own first experience, you ask? Well, my first post has earned me one of my very first badges – for getting zero comments, zero answers, and zero votes for a week, I received the ‘Tumbleweed’ badge. I kid you not. It’s a thing. I figure it means that my mom was right about me being special. Not to worry, though, eventually I got an answer. And I can say I got through my first week on StackOverflow unharmed.