[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.]
Stack Overflow is a question and answer site for professional and ardent programmers. It’s a part of the Stack Exchange network of Q&A sites. Their aim is to assemble a resource of quality answers to any and all questions pertaining to programming.
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.
Share the post "How Not Using Stack Overflow Solves All of My Problems"
Being a contributor on the Java, C, and Android programming forums of Stack Overflow myself, the sentiments that you have expressed on posting a question are understandable. I often prefer to answer my own questions, hold brainstorming sessions with my colleagues, search IBM’s programming archives, search Oracle’s extensive documentation on Java, or merely trace the logic of my application and compare it with the documentation that I have maintained before resorting to posting a question on Stack Overflow.
However, aside from the reasons that you have posted (the potential for losing a hard-earned reputation and the potential for criticism), I have an additional reason for not wanting to post questions on Stack Overflow: I firmly believe that the process of struggling through a programming problem will effectively serve to reduce the likelihood of that problem’s recurrence in my future code.