StackOverflow : Q&A site for programmers
Stack Overflow (SO) is a question and answer site for professional and enthusiast programmers. It is part of the Stack Exchange community, which is network of question and answer sites. The site has over 40 million monthly unique users, of which 12 million (27%) are in the U.S. (https://www.quantcast.com/stackoverflow.com#trafficCard). SO has more than 10 million questions, when 73% of the questions are answered.
Main features of Stack Overflow:
- Get answers on very detailed and practical questions. The site focuses on actual problems that programmers face. The question and answer many times include details of code describing exactly what the programmer tried to do. The site recommends too avoid open ended questions such as opinions/polls/recommendations, and encourages programmers to be very specific in what problem they are solving.
- Tags – each question has up to five tags. Click on the tag shows a list of questions that related to the specific tag. This encourages learning about specific topics.
- Rating system – one can build reputation when people vote on his or her posts. With higher user’s reputation, it unlocks privileges such as editing other’s comments, or voting on others posts. Users also earn badges when posting. For example, user can earn a badge when posting a famous question (question that many viewed/liked), giving a good answer or voting for others’ comments.
Why Stack Overflow became so popular?
- In 2008, when the site was launched, the programmers’ community was under-served. Stack Overflow offers a platform that helps programmers with practical questions. In order to maintain quality of questions, Stack Overflow admits questions that are very focused on a specific problem. Questions that have a broader nature, such as: Which language I should learn? What is the best debugging tool? Usually closed by the users. Closing questions is the main differentiator of Stack Overflow from Yahoo!Answers.
- The rating system helps programmers build a reputation. Many programmers add Stack Overflow profile to their CV. This allows employers to learn about candidates expertise, how deep their knowledge within different fields and their areas of interest. If you look at the first five pages of SO users and read their posts, it is obvious that these are top tier programmers.
How Stack Overflow earns money:
- Job listings – http://careers.stackoverflow.com/Jobs – allows companies to post jobs on the website, mainly to reach technical talent. One job post for 30 days costs $495.
- Careers – http://careers.stackoverflow.com/ – gives access to SO’s talent community and invite-only database of SO members that opted in to be contacted by employers. The pricing is $1000 for a 30-day license.
- Advertising – it require relatively least resources and friction to make money
What are the challenges of Stack Overflow:
- The nature of site’s structure is to reward simple answer questions with more points than more niche and complicated questions. This happens because the reward based on the number of people ‘Liking’ the answer, therefore the simpler the question there are more chances that people will read it and like it. Therefore complicated questions get less attention, because users are not incentivized to spend time on questions that probably would take longer to answer and earn fewer points.
- Maintaining high quality community. One of the main goals of Stack Overflow is to learn from each other. But with ‘broken’ score system, programmers that are experts are not incentivized to answer to complicated questions. With this the quality of the answers drops, which affects the quality of the community and the learning.
- There are other ways to maintain a high reputation online, such as participating in open source projects. Today it is not clear how SO can compete with open source projects in attracting good programmers.
My question is, would high quality programmers continue contributing to Stack Overflow, if so then what would be their incentives to do so.
Student comments on StackOverflow : Q&A site for programmers
Sabina – I’m glad you did this post! Stack Overflow is great!
High quality programmers definitely continue to use Stack Overflow, especially if they are frequently working on different projects that incorporate new or updated frameworks. The only programmers I know who wouldn’t use the service any more are developers who have settled in on some very specific language and mastered it to a sufficient point but have no desire to branch out further. I don’t think SO has to worry about this group too much, because the vast majority of the broader development community is constantly forced to jump between different technology stacks and learn new things.
Also, people love to show off by posting answers 🙂
Thank you for the reply Austin! I agree, though I raised concerns, SO’s brand is very strong and their community is active, therefore they should not worry too much.
Love Stack Overflow!
I agree with Austin’s point about programmers jumping around languages often, and thus needing to return to SO. I think SO also benefits from something that other crowdsourced knowledge sites (e.g. Wikipedia or Yelp) does not. With sites like Wikipedia and Yelp, the proportion of users who actually contribute to the knowledge base is very low relative to the number of pure viewers (probably somewhere in the 1-10% range). But, I would imagine that in SO that percentage is actually much higher, helped along by factors such as a stronger community feeling and the fact that a more defined niche of knowledge probably encourages relevant people to contribute more frequently.
What I really find amazing is that anybody answers any questions at all on SO. Many questions are either very niche (thus requiring a lot of work behind the scenes to potentially recreate the original poster’s problem) or broad (thus requiring a well-written response that probably requires explaining more background knowledge). On top of that, the community’s standards for responses seems incredibly high: other users are quick to “reply” to a response to the original question complaining that the respondent (who is purely trying to be helpful!) didn’t do X, Y or Z best practice in their response.
I find this last point particularly interesting because it breeds a community culture that is much more confrontational and, frankly, somewhat arrogant than other crowdsourced communities I’ve seen. Yet, it seems to work for SO. Perhaps this goes to show the importance of developing a fairly unique community culture to reflect the niche knowledge domain you’re targeting. And, perhaps understanding this is why SO’s parent company, Stack Exchange, has been able to move into so many other knowledge domains with the same type of Q&A forum (see: stackexchange.com).
Great points Allen!
I also find the SO community culture more confrontational than other crowd sourced communities. May be, this is a disadvantage for other knowledge domains of Stack Exchange (SE), because the growth and the size of these domains is much smaller compared to SO’s.
I take the opposite perspective, Allen. I see the critical nature of the respondents as a good thing. It forces respondents to think carefully about their responses before submitting them. Also, it’s not rare that the respondent’s responders give great optimization tips, not only helping not just the OP but also the initial respondent.
People answer questions because they earn bragging rights, they like helping less experienced programmers (“pay it forward”), and (in my case) it’s a great way to learn new things about languages you already “know”. Often the best way to learn new techniques is to attack tricky problems in an area you are less familiar with. It motivates me if I’m solving a problem for someone else.
I practically live on StackOverflow because of just what you said: I’m always learning new languages. Here’s my latest one. Props to anyone who knows what it is. 🙂
+++++ +++[- >++++ +++++++ +++++ +.— ——- -.+ +++++ ++ +++++ +++++ ++.++ +.+++ ++++. — —
-.- —– — —– .+++ ++++++. + +++++++ +++++ .- ——. ++.++ +++++ +.—- — –.++ +++++++ .- —-.
+++++++ .– — –.++ ++++. +++.+ +++++ ++.—- —– — —.<
Hint: you'll probably need SO to figure it out.
Sorry, submitting that did something weird to it. Trying again.
Apparently, can’t edit, and these comments are using markdown so it’s destroying the code. Anyway, what I meant to say is now here- https://docs.google.com/document/d/15wWclS_PtpcNTnEC6x1Z3vk_dFbhl1y7RIRKQVrRZyc/
Although I very suddenly see the problem you were having.
Great post. I spoke with a CTO over the summer about how they manage knowledge among their engineers, and one of his comments was that “we’ve largely outgrown StackOverflow-able problems.” By that, he meant that most of the problems his team faced on a day-to-day basis were not of the more general kind for which SO is so useful, but rather problems that emerged from company-specific technologies. For example, internally-built system #1 breaking with internally-built system #2. In the end, though, while SO may not be the go-to source for solving engineering problems today in the company, SO has been a critical ingredient in each engineer’s education, and as long as new talent continues to enter the field and technology continues to change, I think the content on SO will remain rich, current and utilized.
Also, checkout companies like CoderBits, which pull in SO profiles to help create programming resumes of sorts.
An interesting problem I’ve seen on SO is with particularly fast-evolving technologies. Often I’ll read an answer on a tool I’m learning, only to realize an update has deprecated or obviated the information in the SO answer I’m reading. Sometimes authors will go back to make a note, but it’d be nice if there was a more automated solution.
Great post! Our programming course CS50 has also used a version of Stack Overflow for homework discussions, and it has been tremendously helpful! Sometimes it can get hard to discover the right questions because there are so many variations of the same question, but the ratings that Stack Overflow implemented deals with the quality control problem.