What would you call geeksplaining answers, the YX Problem? ("I want to do X." "No no no, you want Y." [If I wanted Y, I'd have said 'I want to do Y.'])
And sometimes, I started off wanting to do X, thought of Y as a dumb way to do X, figured out how to actually do X (it's Z, you don't need to tell me), and now just have a lot of idle curiosity about Y for its own sake, and what other X'es it potentially could be useful for. This is how most of my forays into Ruby metaprogramming started, for example.
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.)
This behavior used to be common in IRC, where there are really no consequences for being a dick. In IRC, my experience was generally: ask question, spend 5 minutes justifying why it's a reasonable question to ask, then maybe (or maybe not) get an answer.
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.
And opposite of this is to saying something sensible like "Can we stop for a minute and find up what your final goal here is? What do you want in the end of this process?"
A large amount of programming problems are not getting a program to do a certain thing, it's that nobody knows what that certain thing is they want it to do.
While I am by no means one to claim that typical geek behavior is always correct, could it be the case that geeksplaining is ultimately inseparable from the positive aspects of the geek personality (even if we can mitigate it to some degree)?
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].
You can acknowledge the prevalence of the XY Problem and expect geeks to act on it in a manner which is not presumptive and condescending.
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.
If I experience the XY problem with 90% of the people I try to help I'm not going to walk through it with 100% of people because an even smaller portion of the 10% might get their feelings hurt. That's a waste of my time as well as the time of most people I'm helping.
They can solve their own problems if they wish to be that selfish with their time.
Oh, absolutely. The overcompensation the other way is a pain in the backside, though, and reminds me why people don't like nerds much. (And I say that as one.)
"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"
This is especially bad when you are posting in a Q and A forum like Stack Overflow and I see it happen constantly to myself and others. A year down the line if I search how to solve X problem I may not even want the same end result as the OP of the SO post and then nobody has even solved the original problem, just suggested alternatives that are useless for me. If I make a post, someone will inevitably close it as a duplicate of that question. Very frustrating.
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.
I remember a question in asking for what kind of keyboard they could buy to type faster. The question got closed while I was preparing my answer: a stenotype.
More often than not, newbie questions on SO are XY questions, so I guess it creates a bias. I actually got downvoted many times for answering the actual question when most people thought it was the wrong way to achieve the broader goal, even though it was a correct answer.
So usually if I do it, I try to answer the question, and add my opinion on what the better approach might be.