If you're nice, always answer the question as asked, and then speculate about better solutions to possibly related problems.
I think StackOverflow does a pretty good job of incentivizing people to give helpful answers, so I haven't seen this behavior as much there. Even when the person asking has flawed assumptions, the answers tend to steer them politely in a better direction.
More generally: there's tons of documentation on what to do if you've got a particular problem. There's little-to-no documentation on what you're most empowered to do now that you've got a given tool. For example, I would expect a section in the awk(1) documentation detailing what problems fit awk(1) best, and what problems are better left to simpler tools like sed(1), or more complex tools like perl(1). Or, for another example, I'd love if every API function in an SDK came with some examples of idiomatic usages of that function that justify its inclusion.
But since such docs aren't helpful in heads-down pants-on-fire problem-solving mode, they never get included in standard places or required by documentation standards, and instead only get written as asides in people's StackOverflow explanations of how they solved a given problem, or as long paragraphs of prose half-way through a chapter in tutorial books. (In fact, such paragraphs are frequently the only value in such books.)
Geeksplaining involves the presumption that the geeksplainer knows what the specific inquirer wants better than the inquirer because of the geeksplainer's presumed superior general knowledge of the relevant domains.
Even where the latter presumption is correct, it often doesn't justify the former presumption, so its always best to validate an belief that the questioner may be experiencing the XY problem rather than assuming that is the case.
Its fairly simple to do, provides an opportunity for learning, is generally socially more acceptable, and provides a better chance of actually resolving the inquirer's actual problem.
They can solve their own problems if they wish to be that selfish with their time.
Also hashtags, particularly negative ones, have less to do with actually bringing about social good and more to do with social status games[1]. What I consider to be one of the defining traits of geeks (and I should hope be characteristic the HN community) is our disdain for social status games[2].
#hashtagsareforsheep
[1]http://www.arnoldkling.com/blog/playing-the-status-game/ [2]https://medium.com/@maradydd/when-nerds-collide-31895b01e68c
/s
"I want to draw a square in an HTML Canvas"
"Why?" "Why not use python?" "Circles are better than squares, just saying" "It is not possible to draw a square usign that language, it was not designed to do that" "It depends on what type of screen you're using" "Are you sure you want to draw a square in the screen?" "How do you define a square?" --> "10 Downvotes, closed as not constructive"
And later, but only if you're lucky:
"c.getContext("2d").rect(20,20,150,100).stroke();"
StackOverflow certainly has its issues but absurd hyperbole like this only makes your argument weaker.
"You don't NEED a car, I use four shopping trolleys bolted together with an outboard motor. It's so much better." G+ post: https://plus.google.com/111502940353406919728/posts/DKDCbDGr...
And past discussion on HN: https://news.ycombinator.com/item?id=9084152 'My buddy and I call that "I asked how to use a ladder, you told me to take the elevator" syndrome. I'm picking apples!'
It's typical mind fallacy in weird people who don't realise how non-normative they are.
In the late 90s the ultimate condensation of this was to answer any computer question with "install Linux."
So usually if I do it, I try to answer the question, and add my opinion on what the better approach might be.
http://webcache.googleusercontent.com/search?q=cache:weblogs...