Why do some people not ask questions on SO? If it is only for reputation (which basically boosts their CV), they could instead do some investigations in spheres that interest them. So what's the point in only answering questions? Training to become a consultant?
I'm one of those people who primarily answer questions. The reason is simple: I don't have many good questions to ask.
Usually when I have a question, I find that it's already been asked and there's no need to duplicate it. Once in a while I do come up with something that hasn't yet been asked and answered, and then I post it as a new question.
I also enjoy the research I occasionally have to do in order to be able to answer a question well. Other people's questions are often a good way to expose myself to things I normally wouldn't come across on my own.
I rarely ask questions, mainly because most questions can be answered by Googling (!?!) and after 20 years service in software development and countless project tours-of-duty you do try to become as self-sufficient as possible.
Every question I ask is carefully considered as I value my SO account - so by the time I've phrased and re-phrased a question a new line of enquiry often opens.
The usual questions I ask are in techs that are entirely new to me or entirely new - and half of my questions never get any replies anyway.
There are many, many thoughts as to why people do anything, including giving free advice and information for what may seem to be no external incentive.
I subscribe to a much shorter list, but a relatively reasonable list of 16 basic motivations for human activity can be found on Wikipedia. Several of these motivations may lead one to answer questions on Stack Overflow:
- Acceptance, the need for approval
- Curiosity, the need to learn
- Order, the need for organized, stable, predictable environments
- Power, the need for influence of will (especially for those who participate vigorously here on meta... ;)
- Saving, the need to collect
- Social contact, the need for friends (peer relationships)
- Status, the need for social standing/importance
Out of these, Stack Overflow selects very strongly for individuals who are motivated by status and acceptance. You get immediate feedback on your contributions to the site, and it's very simple to find your standing in the community. Social contact is given through posts, comments, and the chat feature. Curiosity and Saving are fed through the vast wealth of knowledge the site accumulates. Power comes from the advanced abilities one gains due to their reputation. And there are even individuals who come only because the system is very well ordered and understood - it's easy to interface with the site because there are rules, and they are enforced.
Of course, most people are motivated by more than one thing, but generally you can look at the list and count on there being two things that bring you back for more, despite no other apparent incentive.
Do you think it's easy to have a peer-review of how good you are as a programmer? When you go to a interview for a work they want hard facts, and they know they often get lies... But if you have a very high reputation on stackoverflow for your answers... well... THAT is a fact you can give. Perhaps you can't resolve their stupid interview-algorithm or you don't know how many ways there are to write a web service in C#, but there is someone that can tell that yes, you REALLY are good. The other way is to write a book :-)
And I will add that when you are good enough, google is enough for 75% of your questions. 24% of the other questions require responses too much long or too much based on your code and so you don't ask them (or perhaps you know that it's only a matter of time before you crack the problem). 1% you can ask.
If you are good enough, when you can't do a thing the first reaction isn't "ask someone else". It's "try harder".
What if computers and programming languages are the spheres that are interesting?
Some of us have worked with this for a long time, and already asked all the questions a long time ago. If I can pass on the answers to those that have the same questions now, that makes me feel good. It also somewhat feels like a payback to those that once took their time to answer my questions.
With 30 years experience you really don't need to boost your CV anymore. :-)
I just like fixing things. :/
A question without an answer is a problem unsolved. As a developer I'm a problem solver by nature, so I answer for the love of making things work a little better. Even if the problem happens to be people rather than code.
Although to be fair I ask a few things, so I'm by no means as magnanimous as I try to make out.
Most of the times because by answering questions it seems that we are able to learn more quickly. Like Will Thalheimer presented in his "The Learning Benefits of Questions" article:
research shows that that questions can produce significant learning and performance benefits, potentially improving learning by 150% or more.
And sometimes because:
"I wish I had an answer to that because I'm tired of answering that question."
My main sphere of interest these days is a relatively minority-interest language, REBOL.
The REBOLsphere has a thriving, if small, community; and it has forums and such that predate SO.
Newcomers to REBOL may ask questions on SO, and REBOLlers are happy to answer them here. And a couple of people have chosen to ask most of their REBOL questions here.
But in general, SO is not the natural place for asking REBOL questions: the REBOLsphere and the SOsphere have very little overlap.
That may also be true for many other "long tail" topics and for mainstream topics from another mainstream (SO has very view mainframe questions for example, another of my interests; mainframers are also served by pre-existing community ecospheres).
That leads to some interesting questions about how and why and should SO adapt to be the destination Q&A site for various long-tail spheres. But they are other questions, and this is an answer.
A late, late answer... I post few questions because I have other sources of information and usually my questions are so specific that only a few people could possibly answer them. Most of my questions stem from other answers or discussions - someone brings up an interesting point so I ask a separate question rather than a hard-to-find chatroom discussion.
On bicycles, for example, the last question I was tempted to ask led the Australian importer of the product to refer me to the manufacturer in Germany who got an engineer to email a reply. So my question here would likely have been one that between one and five people in the world could have answered. It is also not something that other users would have found useful "when servicing this rarely-serviced part, if you happen to have made your own copies of the right tools, you can...". Before that is a question that is still open now and the answer appears to be "no, no-one makes that".
But I do enjoy crafting answers to questions about bikes, and generally sharing my knowledge. Quite a few of those involve links to posts on my personal website where I also share knowledge (but in a way that isn't necessarily relevant to SE. The website is "I did this project" which sometimes leads to "I had that problem too, so I did this project").
I also find that my questions tend to attract downvotes, often with no discussion, and I am guessing that that is because they tend to be quite closed questions, or they require considerable knowledge to answer. "I want to do Q. I have found references A,B and C that say Q can be done. But trying X,Y and Z none of them work. Here is my documentation/a simple example". Not infrequently I get answers like "don't do Q", "use tool X instead" or "here's how to do something-like-Q", and I edit my question to make it clear that "like-Q is not Q". They also attract positive comments, sometimes of the form "that is a perfectly formed question, thank you". But also downvotes.
(FWIW I have an account per employer for work-related questions because that way the account and the job-related questions stay with the job when I leave)