This site is very unique in that 2 people can't come and say I had the same problem, since all questions have working code. Having said that, I see a lot of answerers not upvoting the questions they answer to, and it makes me wonder. What makes a good question here?
I'd say a question is worthy of an upvote if the asker made a good job of making it easy for users to review his code. He can do so by explaining the structure of and ideas and considerations behind his code to an amount roughly proportional to the amount of code, by pointing out issues he's already aware of (but doesn't know how to solve yet).
I compiled a guideline of what a good question looks like here.
Unfortunately, it seems to me like most users on the site - perhaps myself included - are likely to upvote clever-looking code rather than use any other consideration. That is, I don't trust the vote count to represent the principle @sepp2k expressed. I'm always at a loss when faced with the decision of whether to upvote or downvote, or nothing at all, and don't have a clear rule other than some sort of gut feeling.
I believe we are all here to learn something, therefore my criteria are:
- Good description (either text or in the code). I do not upvote questions that I have to decipher. I may even downvote very poor, mostly code-only (no comments) questions.
- Interesting problem. I may upvote a simple question if it still has low number of upvotes (especially if OP is new here) and is at least reasonably well described. I do upvote more difficult/complex questions (if well described/researched) and personally wish more people would do the same, but the reality appears to be that simple problems get more upvotes, probably becase more people understand it, therefore like it.
- I see no problem/flaw and there is no answer. If I cannot see a problem, maybe somebody else can - upvoting makes it more visible.
- I have learned something (either from the question or from some answer - upvote the answer, if that was it, and maybe the question as well, if it was good = at least well described).