5
$\begingroup$

cartoon in which a job applicant is asked: "So, Bob, why should we hire you?" He responses "That's a stupid question." and is told "WELCOME ABOARD!" In the last frame, it is revealed that the company is Stack Overflow.

One of the things people hate about Stack Overflow is that when they ask a question of the form "How do I do X in Y?", they get answers of the form "You shouldn't do X" or "You shouldn't use Y". I believe the same thing is happening on CS Educators Stack Exchange. This is what happened with my last 2 questions:

When I asked Where can I find high-quality editable slides for teaching git?, the only answer I received was that I should not use slides. It was stated politely and included useful information (that I already knew), so I didn't really mind. There was a long back-and-forth in comments with a long-time user until I complained in chat and to a moderator, and it was removed. I found an answer to my question elsewhere and posted it as a service to later users.

When I asked What's a good example of a static factory member returning instances of subclasses?, the top-rated response was that I should not have static factory members return instances of subclasses and that the right use of static factory methods it to create named constructors (a usage I already knew and was teaching, although I did not misuse the term constructor with my students).

I was not asking whether I should have static factory methods return instances of a subclass. Had I wanted people's opinions on that, I would have asked on Software Engineering Stack Exchange or otherwise researched that question. I actually know a thing or two about programming and keep my knowledge up-to-date. The assigned reading for my course is Effective Java by the great Josh Bloch, in which he writes (emphasis his):

A third advantage of static factory methods is that, unlike constructors, they can return objects of any subtype of their return type. This gives you good flexibility in choosing the class of the returned object.

In other words, I knew what I was asking; however, I don't think I should have to justify why my question is legitimate in order to post it. We should assume that people who request information have good reasons for requesting it. If we think another approach would be helpful, we could politely suggest it once in a comment but not keep pushing it. The people who told me I was asking the wrong question were not random trolls but some of the most senior users. This is not a problem with moderation of new users; it is a problem with the top-down culture of this site.

Of course, moderators and power users are free to do as they like. I just think they should know that what they're doing is causing me to no longer find the site useful or enjoyable and that I am no longer recommending this site, after having been one of its biggest promoters.

Edit

Since the ratings of the answers changed, and it is possible that the answer will be edited, the answer I was referring to began (in huge bold letters): "This looks like an anti-pattern".

cartoon

$\endgroup$
5
  • 2
    $\begingroup$ Thanks for the feed back. It is useful to me. I hate it when people don't tell be when I am being a pain. $\endgroup$ – ctrl-alt-delor Sep 25 '20 at 18:16
  • 1
    $\begingroup$ I love your graphart (or what ever it's called). How do you come to it? I understand your chagrin and wish to drop out. Hope you'll stay to at least discuss this super-important question of yours $\endgroup$ – Rusi Sep 28 '20 at 7:43
  • $\begingroup$ @Rusi I found the cartoons online. I didn't create them. $\endgroup$ – Ellen Spertus Oct 1 '20 at 20:50
  • $\begingroup$ Sure : Didn't suggest you did create them. Just that pictures speak a thousand words. So how do you convert your thoughts to these (maybe online) pics? Here's an attempt of mine $\endgroup$ – Rusi Oct 2 '20 at 4:30
  • $\begingroup$ I think we have to accept that asking for help on the internet is no longer a best practice. If indeed it ever was, which I doubt. People have been washing dishes for thousands of years, and every single person does it differently, therefore, I think we can give up on the idea of convergence in fields vastly more complex and consequential. The best we can do is politely get along. Didn't the Buddha say something like that, about 2500 years ago? Or was it Solomon, 1000 years before that? Maybe someone can answer that for me. $\endgroup$ – Scott Rowe Oct 2 '20 at 10:29
4
$\begingroup$

First of all, I really appreciate you taking the time to write this up!

I know that getting answers that don't actually address the question you're trying to ask is frustrating, but I can't really think of a proper solution to this. You reference a similar problem on Stack Overflow, in which overzealous users close questions as duplicates of questions that they aren't actually duplicates of. If that was the problem that we had, it could be easily remedied by clarifying our rules around duplicate closure.

However, it seems to me like what you're experiencing comes from a different source. In my reading of the two questions you linked, it appears to me that for the most part, the answers are users providing their best effort to help you when they are unable to fully answer the question as asked. We don't really have a large enough community to have the expertise to answer every question perfectly, and so it seems like this behavior is a consequence of people trying to be helpful to compensate for that.

I believe that, while it can be frustrating, this behavior is ultimately beneficial until our community grows to an extent that will allow every question to get a perfect answer. While the answers-to-a-slightly-different-question may not be helpful to you, somebody else may find the question in the future and find that sort of frame-challenge helpful.

I am, of course, open to other ideas for how to solve this problem, but it seems to me like 1) there isn't a really good solution to this issue and 2) it seems like these answers come from a place of trying to be helpful and may help future readers, and therefore are a net good, even if they aren't helping you with your question.


Edit: I don't know how I totally missed the non-top answers on the second question you linked. I do think it would be beneficial to have a general policy against programming answers to teaching questions, as that would almost never be useful except in the case of egregious bad practice (i.e. "what's the best way to teach students to use shorter variable names?"). Even in those cases, one could probably make a teaching related argument as to why those practices are bad, for example "teaching students to use short variable names makes in harder for the students to understand their own code which hinders their ability to do homework/projects."

If there's some consensus on this issue, I'd be happy to draft up a policy in a separate meta post.

$\endgroup$
5
  • $\begingroup$ What do you mean by "a general policy against programming answers to teaching questions"? $\endgroup$ – Ellen Spertus Sep 25 '20 at 17:58
  • 2
    $\begingroup$ Well, since we're a site for teachers, questions exclusively about programming are already off topic (since those would fit on one of the programming SE sites). It makes sense to me to extend that to answers, so an answer that makes no reference to pedagogy and is strictly about programming should also be off-topic, especially since that's almost certainly not the sort of answer that the question asker wants. $\endgroup$ – thesecretmaster Sep 25 '20 at 18:01
  • 2
    $\begingroup$ This answer makes a lot of sense to me, and what particularly hit me in the heart was "We don't really have a large enough community to have the expertise to answer every question perfectly, and so it seems like this behavior is a consequence of people trying to be helpful to compensate for that." That is exactly what I try to do. $\endgroup$ – Ben I. Sep 25 '20 at 20:32
  • 1
    $\begingroup$ I think this just isn't the right community for me. I'll go elsewhere. $\endgroup$ – Ellen Spertus Sep 25 '20 at 21:33
  • 3
    $\begingroup$ Well, I'd be sorry to see you go, but it is your choice. We do try to be helpful, even if we aren't perfect. $\endgroup$ – Buffy Sep 28 '20 at 14:11
3
$\begingroup$

Note that not everyone who asks a question on this site has the same deep understanding that you do. Sometimes a question is motivated by a serious and unrecognized misunderstanding of either teaching or the subject matter at hand, often programming.

So, some such "answers" are an attempt to get the OP to look orthogonally at the problem or to deepen their own understanding before trying to teach things that they don't well understand.

Banning such answers would be a serious mistake, IMO.

And of course, the one who asks the question is free to ignore the answer if it doesn't fit. But trying to shut people up is a form of confirmation bias, I'm afraid.


Also note that much of what I wrote in my answer to the "static factory" question was directed at future readers who might come along and actually need a broader perspective. Sometimes simple and direct answers to the OPs question are less valuable over time than ones that give perspective and send the reader on a discovery quest.

$\endgroup$
2
  • $\begingroup$ "On the Internet, everyone knows what your dog looks like." (not an actual quote) $\endgroup$ – Scott Rowe Oct 2 '20 at 10:30
  • $\begingroup$ @ScottRowe well, in Buffy's case we might... $\endgroup$ – VisualMelon Oct 4 '20 at 8:43

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .