[OfficeWriter developer and Stack Overflow user, Seth, lets us in on the thought process and psychology behind Stack Overflow, by delving into one way he uses the online community to answer his programming questions. Anything sound familiar? Or relatable? Do you use Stack Overflow in a similar fashion? Let us know in the comments section.]
There are a lot of great things about Stack Overflow:
- It’s free.
- The point system incentivizes people to help others.
- The best answers have the highest visibility (usually).
- There are experts and legendary programmers answering your questions.
- It’s almost like a sport or competition for those answering questions.
But my favorite thing about StackOverflow is often overlooked: fear.
I can’t tell you how many times I have been so afraid that my question will get downvoted into oblivion that I end up finding the solution while writing it. (I’ll give you a hint: it’s way more than the actual number of questions I’ve posted.)
You see, posting a question on SO is like a code review to the umpteenth power. You’re opening up, not only your code, but your thoughts, explanations, and questions to be scrutinized and judged by anyone in the world. And when you throw tags on your question, you’re basically begging people who know a lot about the subject to come and take their turn.
Also, an increasing number of companies list jobs on careers.stackoverflow, and even more companies have asked me if I have an SO profile…that’s pretty daunting. Companies may be looking at and analyzing my knowledge (or lack thereof) to determine if I’m worthy of their employment!
Not only are prospective employers trolling about there, but the people on SO are my peers. They may end up being co-workers of mine one day. I don’t want them to think I’m an idiot!
And let’s not forget about ego. I worked really hard to get my measly ~2,000 points. It may not seem like much when compared to the Jon Skeet’s of the world, but I answer a lot of questions and get no points, and the questions I ask are usually really domain-specific and never get upvotes. It took me years to get that many points! Because I worked hard for my points, I don’t really want to give them up for senseless mistakes. (The SO community can be ruthless.)
After I write the first draft of my question, I usually go through it with a fine-toothed comb, looking for any holes that may exist in my argument/question. These are the steps I usually take:
- Look for duplicates – There’s nothing that people will give you more trouble over than posting a question that has already been answered. Heck, some people will even claim your question is a duplicate when it’s not even remotely similar to one they reference!
- Examine the facts – I look over every statement I’ve made and think, “Is this a fact, or am I just assuming this?” If I realize it’s not a fact, I go back in my code and try to prove it.
- Find holes in your question – Next, I read my question and try to think of what someone else might ask about my problem or domain.
- Answer yourself – Then I try to come up with answers other people might try to give me and prove that those don’t work.
Usually at some point in that process I have an “ah-ha!” moment and I no longer need to ask the question, because I’ve answered it myself. So I can go back to increasing my meager-yet-hard-earned 2,000 points.