Poll: What is your current Stack Overflow reputation?
I know that a lot of Hackers frequent Stack Overflow, so I am curious as to how much actual participation there is from Hackers on SO, and what the general reputation of Hackers is.
I think it would be particularly interesting to cross reference these results with the "What's Your Favorite Programming Language?" [1] poll. Unfortunately, that would require way too many options. :)
[1] http://news.ycombinator.com/item?id=3746692
Note: please don't forget to vote the poll itself up if you find it valuable/interesting, in order to gather other participation.
202 comments
[ 2.7 ms ] story [ 156 ms ] threadI gave up trying to contribute and I now only leech. I wish they'd fix it because more than once I had insightful things to say but it wasn't worth the hassle.
I'm on the wrong side of the chicken and egg, so I just leech.
I've run a tiny experiment on SO: http://stackoverflow.com/users/779183/friar-tuck - it took me, from "logout and clear all cookies" to "Commenting privilege unlocked", twenty-five minutes (1500 seconds) of wall-time, start to finish; no cheating, no sockpuppetting - just answering three (3) easy questions in a mildly useful way and watching the upvotes roll in.
Alas, "I come to the __Q&A__ site 'often', but can't be bothered to __ask__ or __answer__ anything at all, how come they deny me privileges?" sounds a bit more entitled than "the System keeps me down and prevents me from commenting," doesn't it?
Normally when I hit SO I'm stuck and often it's not on my dollar. I always intend to go back and add something, but when I do have free time, I like to get away from the computer and thus I never end up contributing.
I have misunderstood your previous post, then, and I'm sorry for that - I thought you were complaining that getting the privileges is too hard.
Note: You can always comment on your own posts (questions or answers).
It is nice to give back if possible though.
btw, this is Bill. :)
However, it doesn't mean that the sites stop being useful, I read a lot of questions, but rarely feel the need to ask a new one.
I suppose if you have a very specific question, it gets the job done. However, in the more traditional forum model, I find the discussion that follows the answer to be far more valuable the answer itself. The StackOverflow implementation seems to discourage continuing the conversations once suitable answers are found.
It obviously works well for a lot of people, but I just don't get it. Voted do not use.
In fact, the mission of SO is precisely that: compile as much knowledge as possible in the form of answers to very specific question. There are many forums out there to cover "enrichment", but until SO came around it was significantly more difficult to find answers to specific questions amid the chaff.
http://stackoverflow.com/questions/1012573/how-to-learn-hask...
The second most voted question for the 'c' tag has some interesting discussion on compiler optimization and floating point arithmetic:
http://stackoverflow.com/questions/6430448/why-doesnt-gcc-op...
Most of the time I use StackOverflow as kind of a warm up to writing my own code. It's a good intermediary step between reading HN and actually getting something done.
For example, posting a quick answer and then editing it with the answers from others to complete your answer is one I've seen. I don't believe it to be unfair just that it takes effort beyond technical skills to get high rep values in SO. John Skeet aside, he's all technical skills ;p
I'm the top answer-er for the Canvas tag, having answered around ~10% of all questions ever asked about Canvas on StackOverflow.
I would say that reputation numbers don't necessarily measure engagement per se in S.O. very well.
I've found that if I answer a general JavaScript question, even if its an absurdly simple one, I garner more reputation in a few minutes than if I I give a detailed answer to 2-3 in depth canvas questions.
If I wanted to pad my reputation I could definitely answer more general JS questions that crop up, but I really enjoy helping people with their canvas projects, so I sorta stick to that domain and try to help with my slightly-more-unique knowledge.
Anyway, reputation numbers aren't that important to me. At the end of the day, this is the only encouragement I need:
http://i.imgur.com/POZmt.png
As you say though, you really can help people who have difficult questions in the niche tags (I've been spending far too much time in 'iokit' and 'objective-c++'). One upvote plus your answer accepted (total +25) is all you can hope for, though.
Any forum that welcomes new users is going to have this problem. The same kind of thing happened on Forrst, which should probably have been a little more resistant.
There's a ten-month-old widely-supported proposal on meta meant to address this, but it hasn't received any comment from the Stack Exchange Inc. folks. http://meta.stackoverflow.com/q/90620/134300
- rewarding with rep could convert answerers to closers
* answering produces useful stuff, closing is (often) just clerical
- over aggressive closing drives new users away
* blatant laziness shouldn't be rewarded, but subtle variations on a problem shouldn't be punished either
- some level of duplication is a good thing
* http://blog.stackoverflow.com/2010/11/dr-strangedupe-or-how-...
* in a nutshell, people ask the same conceptual question in different ways, it's good to have all those ways around to help Googlers
We've also improved finding duplicates in the close dialog since that meta post (it's a hard problem, so it's not a perfect suggesting system), so it's hardly like we've done nothing.
Also, as written that feature request is unworkable. Incentivize closing over asking, madness. Even incentivizing over editing (+2 up to 1k rep) is harmful IMO. I suppose we could just decline that post, but what'll probably happen is it'll be status-completed when we've come up with a better solution (which will be documented in an answer).
http://data.stackexchange.com/stackoverflow/query/65516/clos...
^ Based on the most recent data dump, somewhere around a 15 - 20% of closed questions (which are about 3-4% of all new questions). That sounds about right, honestly. I'm sure some stuff is slipping through, and we could make it easier to maintain these rates; but it doesn't seem like a pandemic of duplicates.
Oops, forgot the disclaimer: Stack Exchange Inc. employee, etc. etc.
I find this very annoying, too. I can understand why it would happen from the point of view of the asker: he might have found the answer on some other website 5 minutes later, or he might have just decided to find a workaround. Still, I think SO should remind people to accept answers (penalize them for having low accept rates) or have the most upvoted answer selected automatically after a while. Nobody wants to write detailed answers for someone who isn't interested in the question anymore.
There should probably be some mechanism by which moderators or other trusted users can, after a time, accept an answer for such abandoned questions. Perhaps questions thus answered would be treated slightly differently (and identified differently in the UI); the original asker could always return and override the proxy acceptance.
It does. Your accept rate is displayed under your username when you ask a question. Let it drop to low and other users will start complaining in the comments under your question, telling you to start accepting if you expect answers.
Answered questions appear in Unanswered only if no answer has been voted up. If you see a question with a good answer, just vote it up and clear the clutter for the next person looking at the Unanswered section.
This is a tough one. There already is a system for dealing with duplicates, which is to vote to close as a duplicate, but requires 5 people to so vote before it will actually be closed. You could reduce that number, but there would probably be concern about abuse and mistakes if you reduced that too far. The thing is, it's fairly labor intensive to actually find duplicate questions, and ensure that they really are duplicates. In many cases, it's just easier to answer the new question, than to dig out the duplicate, vote to close, and then, if you actually want to be helpful, explain in a comment why the question is a duplicate (since beginners might not understand how the other question answers theirs).
http://stackoverflow.com/tags/google-analytics/topusers
Completely with you on the "thank yous" being the biggest motivating factor; I wouldn't care about the site if it weren't for those. That said, if you want to get your rep up without lowering your standards, one option for the high-traffic tags is to go for bounty questions. That way, if you give good answers, you get a reward which is commensurate with your time/expertise, and you know that the asker both appreciates the complexity of their question and is very keen to have an answer.
Here's why: SO points are not based on complexity or thoroughness, but based on value - value that is perceived by the community. A quick answer to an simple Javascript question may seem rudimentary to an experienced programmer, but if it has hundreds of points, the community has determined that the answer is helpful in a big way. Chances are there are many, many people that have experienced the same problem, which makes an answer to that problem - no matter how simple - incredibly valuable to the community as a whole.
Edit: This is probably obvious for SO users, but it's worth mentioning for anybody that is confused or wondering why the point system works the way it does.
http://gamedev.stackexchange.com/questions/26491/matrix-rota...
I'm not really sure what the solution to this is (it's not dissimilar to the situation here since the comment scores got hidden).
I don't think there is a solution - popular stuff will be popular. Is a solution needed, though? The point is to get answers - votes from answers are the incentive, but in the end, it's just a bunch of numbers.
As long as the results are obvious - e.g. a question with answers having 75%, 15%, 10% and 5% of votes - it's not terribly interesting whether that means 15, 3, 2 and 1 vote, or 750, 150, 100 and 50. Also, being able to vote posts <0 is good - bogus answers will be apparent.
It's an outlier for sure; I think 99.9% of all posts never get beyond 50 votes, and most don't get over 10 - mind you, most of my posts have fewer than 2 votes. With popular topics, you get more votes simply because there are more people looking at your question; does that make this one so great because it has 700+ votes? I'd say it says that sending e-mails is a popular topic, first and foremost - and apparently the question is also somewhat useful. And then the snowball effect kicks in, and the post gets more popular because it's so popular.
Anyway, a +5 in a niche (such as this answer which someone gave to me on a rather narrow problem: http://stackoverflow.com/a/413836/19746 ), to me, carries more weight than +500 in a topic with which everyone is somewhat familiar.
One sentence answers are often exactly what crowd needs. Obviously so if they vote them up.
Indeed the marginal value of the umpeenth identical answer to the same question is approximately zero, since it adds nothing to any of the earlier answers to the same question.
I was quite active on the site for about a year, and then my enthusiasm for answering questions suddenly dropped off. I don't know if the quality of questions got worse or what.
Sometimes I miss the old days of comp.lang.c++.moderated. Except the part about being a C++ programmer, that is.
Most of the questions on SO are easily answered with a proper Google search. It's a skill that should be taught.
Which is kind of counter to Jeff Atwood's recent blog post about the role of asking questions on SO.
It can be pretty rewarding to have someone thank you profusely for helping them figure something out. And you can learn a lot too -- sometimes to answer a question I'll have to actually go and research it a bit, or make a JSFiddle, that kind of thing.
Probably the biggest problem I find with SO is the speed-typing contest that many questions introduce if they are (1) relatively simple to answer (2) posted under popular tag. I admit I am "guilty" of using this to my advantage few times, but after a while it loses its appeal. For one, it doesn't really encourage posting comprehensive and well thought answer, as you are very likely to lose the "race" this way. Although posting a simple answer fast and iterating it through edits alleviates this issue somewhat, it still feels more like a trivia contest with speed limit rather than an attempt to teach someone a small but valuable lesson.
[1] http://stackoverflow.com/users/434799/xion [2] http://stackoverflow.com/a/8277968/434799
Most of my reputation points come from residual answers.
When they first got out of the gate, I answered a whole bucket of questions, but stopped after about six months when I launched my first startup.
Nowadays, the number of unanswered questions on the site is pretty low overall -- we're basically in the long tail of Stack Overflow karma.
It's not rewarding to type out a good answer only to be beaten by a bunch of half-assed answers that appeared first. Nor is it rewarding to type out a detailed answer only to have someone come along 5 minutes later post basically the same thing (including stealing the code example) and get chosen as the selected answer. Add to that the deletionist moderation ("Oh, this post from 2008 should have been on SuperUser instead so we'll just delete it") and a number of other issues. At this point, I generally find participation in SO significantly more frustrating than rewarding.
I still get about +30 rep per day, but almost all of that is from two answers that date to the very early days of SO.
I therefore spend too much time F5-ing to find a new unanswered question which is time consuming in the extreme and not sustainable long term.
Is this just a phase to be worked through or do I need to continue dedicating large amounts of time? Or do I just suck and haven't yet taken the hint?
Personally I do not find much appeal in taking part in this "race" you have mentioned - even if the opportunity cost is a big fat number of upvotes. On the other hand, I often don't feel like cooking up an elaborate answer in relatively obscure topic only to receive few upvotes. Both cases seem to demonstrate a downside of SO's reputation system, for it might rather easily become a purpose in itself, sucking up the pleasure of sharing knowledge with others.
The way I see it working:
1. Go to homepage.
2. Find unanswered questions that you can answer and answer them. In the process, elaborate with the OP, to help as much as you can.
3. Go to 1 until you become efficient enough (maybe 3 mins max), to be the first to answer a detailed answer (Usually the easy questions get a lot of hots, since more people are trying to answer those, so try to be the first to answer).
4. Hope that the question police won't close the question as not real question (usually noobs at programming or just on specified tags AND super-noobs at English can not even describe / explain what the problem is, but you can figure it out for them). I spot a problem here: The whole deal is to help people with their problems. Even if their problems include poor English / programming skills. You can not reject them by saying: "Hey! Learn English and then we'll tell you the solution." or "Hey! Come back in 3 months, when you'll be a better coder, so that you can explain better what you need. Then we'll tell you the solution.". I think some moderators stick so much to the rules, that forget the original plan of helping the fellow coders. 5. Go to 1 for countless hours (currently on popular tags, such as PHP, Javascript, jQuery, HTML I calculated that I can increase my rep about 10 per hour, near-fail rate, right?). You have nothing to lose. Answering makes you better. If you get a few downvotes, then you'll start check and double check before answering.
And a few rules of the thumb:
FIFO: Usually the OP gives the correct answer to the person that answers first (As it should be).
Reputation goes to reputation: When there are 4 or 5 similar answers, the persons with the higher rep get the most upvotes (reasonable, but probably unfair).
Use an example: Even if the question goes like "should I use A or B to do this?" and you know that A is the way to go, you don't just answer "Use A". You will get downvoted. But if you answer "Use A. I would do it like this: ...", then you might get a few upvotes (insane for me, but considering that you are helping to build a knowledge base, I'd say tolerable).
Learn stuff: the more you know, the more questions you may answer (now we're getting somewhere).
Spend your valuable free time on answering questions: It is a very nice feeling to give back to a community that you got from (and usually you get multiple times what you give). And it is a very nice feeling to support a worldwide knowledge base for your profession. But, since you compete with other professionals, you have to devote a lot of time to stand out, not by being the best, but by being the best on answering questions (not the same and kind of lame).
Stop thinking "Hey!? Did I just work for free the past x hours?": You just helped someone else! And in the future more people will benefit from your answer! (some things are just priceless :D).
There's nothing wrong with answering a question that already has answers if you feel like you still have something to add. Very often those first few rushed answers to a question are either wrong or confusing. Don't be one of those people. Just write an answer in your own time and it will get votes if it's any good. I've gone into questions where an answer is already accepted and highly upvoted, but I felt like the accepted answer was fundamentally on the wrong track, so I wrote my own and it got highly upvoted and accepted.
But that's why I don't use reputation as a measure of my experience on StackOverflow. It's all about the great answers that you put a lot of time into researching and that you know will stand as a resource for future visitors. And by the way: these kinds of answers give you a lot more money for jam (http://data.stackexchange.com/stackoverflow/query/8116/my-mo...) than the quick ones that never again get visited after an hour.
Then I'll edit it to be a complete answer. (Release early, release often :) By doing this other answers see that someone else is working on it and won't also answer the question (this way they don't cost me points, but it also prevents them from wasting their time, so it helps both of us).
This is only necessary in the more popular question categories.
Also, once you have enough reputation the interface becomes faster and it's easier to race the answers.
That said, I got a bit tired of the race, and semi-retired.
For example, those badly worded and incomplete questions. You will almost never get much rep from answering those; but you can help that person out a lot, by providing an answer that describes how to formulate their question better, asks them for the extra information they need, shows them how to provide a minimal example of the problem at hand. Then as they edit their question to post this extra information, you can try and use that to flesh out your answer, until you have answered their question for them. By the end, you will probably only get one or two upvotes and an accepted answer (at best, sometimes they just give up), but you will have helped explain to them how better to ask questions, and how better to solve the problem on their own.
Beyond that, sometimes you just have to answer questions quickly and get lucky. I spent some time "playing" StackOverflow like an MMO, and learned some tricks for getting rep (while still doing a good job of answering peoples questions). To do well on questions on popular tags, find ones with no answers yet (or only one or two answers) that you can answer. If it can be answered in a sentence, do so. Then edit your answer. Flesh it out. Provide links to the documentation. Write a sample program demonstrating how it works.
That way, you got in quick with the one-sentence answer. If that is what they need, they may accept it and you're done. You may also get early upvotes. The edit, to have a more in-depth answer, will make your answer a lot more useful than all of the other quick and dirty answers. So if they needed something more in-depth, they will appreciate the extra information. People always appreciate links to docs, and short and sweet example code. Some people appreciate an answer that expands a little bit, describes more generally how something works to put the answer in context and allow them to figure that out in general.
Here's an example of that strategy at work: http://stackoverflow.com/posts/793867/revisions . In fact, I believe there was another edit that's not shown (if you do an edit within a certain window, it gets merged into the last edit). I think that I just started out with the first two lines; the most basic answer. I then expanded a little bit, to cover some other possible cases (as I couldn't tell precisely what they needed from the question). Then I Googled for the documentation, and provided links to it, to help them find other information they might want to know.
Another strategy is to find a hard problem, and spend the time and effort running it to ground. These problems don't come up often, but when they do, they can be really good ones to solve. They can substantially help people out. They are usually much more interesting, and you can learn new things while trying to solve them.
For example, here's one where I didn't know the answer when I first saw the question: http://stackoverflow.com/questions/1990464/efficiency-of-pur... . In fact, I saw the question, thought it was interesting, and wanted to find out the answer; several people had "answered" it, but their logic was so bad that I couldn't let those answers stand (there are a number of answers on that question that have since been deleted by their authors, which you can only see if you have a high reputation, but the answer that's at -15 should give you an idea of the quality of many of the earlier answers). Luckily, I had a bood that I knew would probably answer the question, or give me the starting point. I pulled out that book, found the appropriate references, Googled them, found the papers in question, skimmed through those, and s...
There are days where I never log onto StackOverflow but nevertheless earn 100+ points per day. For example, a few weeks back I answered an obscure question about an unusual expression in the Linux kernel.
Someone posted it on HN and it blew up. I continue to earn "interest" on that original answer, even though I've contributed nothing of substance to it since then. (IMO, it should become harder for people to earn reputation from answers they've already given over time.)
Ultimately, I view the reputation count as something of a quasi-meaningless metric that's nevertheless a good resume booster. I like answering questions and helping people, and that's the main reason I use SO.
I've found that it is somewhat harder to get reputation now since a lot of the low-hanging fruit has already been consumed. I still check on it from time to time and think it's a great resource.
I can't downvote an answer that is patently absurd. I can't upvote an answer that is right. Apparently that's because I have to prove myself first. If I write a response (that damn sure answers the question), it sits at zero, because its usefulness appears to be directly dependent on my reputation, of which I have none.
In general, there's just too much reputation whoring going on. Just flipped through the list of opened questions, and I can easily answer 80% of those without thinking. But I won't, because I don't like how SO is treating me. Should they hide all scores similarly to how pg did here, I think it would make the site much more attractive for participation for people like myself.
Feel free to disagree (preferably by answering and not downvoting).
Sites like SO have a HUGE "newbie" problem. If they allowed brand new users full permissions to upvote, downvote, etc., there would be a lot more "wrong" votes from people who don't understand the site yet.
I started at zero, and yet I was able to gain enough reputation to function. The usefulness of your answer is not directly dependent on your reputation.
Yeah, that's kind of the idea. Why would anyone trust you until you've proven yourself? Do you just want privileges handed to you?
> If I write a response (that damn sure answers the question), it sits at zero, because its usefulness appears to be directly dependent on my reputation, of which I have none.
Who in the hell is going to look at your reputation score before voting on your answer? You only have to help one person (the one asking the question) to get an upvote. Trust me, no one cares what your reputation score is.
> Just flipped through the list of opened questions, and I can easily answer 80% of those without thinking. But I won't, because I don't like how SO is treating me.
That pretty much tells me everything I need to know about you. If your comments here are any indication of the kind of contribution you can make, then thank you for not bringing your bullshit to Stack Overflow.
The original point was that the very existence of SO reputation entices the wrong kind of priorities and behavior on the site. Hence the "newbie" problem.
What I would've done is this:
(a) hide reputation counters from the public view
(b) for questions - let people upvote them or report them, no downvoting
(c) for answers/comments - replace up/down arrows with four choices - "perfect", "right", "incomplete" and "wrong" - and then show how many users clicked on each. Let anyone vote, including anonymous users.
(d) let the original submitter pick the "right" answer (just as it is now)
That's it. Badges-shmadges. These are vanity trinkets. If people are less inclined to help, when others are not seeing their social rank paraphernalia, that's doesn't speak much of them, does it?
Not a great way to promote participation. I posted in some detail about the experience, but did not get voted up. In my experience, YC's version of participation is definitely broken and promotes bullying and disinformation.