Occasionally, beginner programmers ask questions here which show that they slightly misunderstood the whole subject. This leads to the questions which are both funny and difficult to read, since they don't make too much sense in their current form. The questions cannot be simply answered by RTFM, since there is an actual underlying misunderstanding of a concept.

The recent Does nginx support ajax? is a good illustration.

The natural reaction is to downvote the question and/or vote to close it—honestly, that's what I did before later retracting my vote.

However, I think it gives a very bad image of an elitist community. I imagine the same situation in real life, where another programmer asks you a similar question and you'll just laugh at him and tell him that what he asks makes no sense.

Another possibility is to actually explain the concepts to the OP, so that the person could understand why the question made little sense in its current form, while also learning the concepts the OP was missing originally.

Is that a good thing to do, or it leads to some negative consequences I maybe missed?

  • 3
    Beginner questions like these are often duplicates. Searching for those can be way out ;-)
    – Jan Doggen
    Commented Jan 6, 2017 at 11:21
  • 25
    You put up a false dichotomy here: it is perfectly possible to rudely explain the basic stuff or kindly close the question. Commented Jan 7, 2017 at 12:38
  • Questions you consider non-beginner-level may seem beginner-level to someone else. When I was a freshman in college, I thought "advanced" computer science was crap like double-pointers and memory-mapped graphics. By my senior year, I realized that those things are actually pretty rudimentary. Doesn't change the fact that I had a lot of questions when I was learning about them. Similarly, you may thing that design pattern questions are advanced, but someone who aggressively uses / advocates for Functional Programming might consider them pretty infantile. (I don't completely agree with that.) Commented Jan 19, 2017 at 18:07
  • 1

7 Answers 7


IMHO a question which is not off-topic per se, but based on a wrong understanding, false assumption or premise, deserves a comment to give the OP a chance to edit it, or at least an explanation for the downvotes he gets. In the given case, there were already some comments revealing the misunderstanding, however there could have been an additional warning like "better edit your question if you don't want the community to close it".

Lots of those questions can be saved by changing the wording slightly, avoiding the wrong assumption without changing the intent of the OP. For example, I am pretty sure the question you linked to could have been saved by writing something like "if I want to implement AJAX on the client side, does it make a difference which web server I use" instead of already imposing the choice of web server has undoubtly a significant influence (especially in the question title).

However, if neither the OP nor someone with enough rep edits the question in a reasonable amount of time, it should be closed as "unclear", as it happened here. Otherwise it gives later readers the wrong message that the false assumption might be true.

If a user likes to write an answer to such a question, he should probably first improve the question before he answers (or ask the author for improving it, if he hasn't got enough rep by himself).

Addendum: right now I edited the question by myself, if you think it is better now and might be undeleted and reopened, feel free to vote accordingly.


As far as these types of questions go, I find that the people who ask them fall into one or both of the following (and many times that one leads to another):

  1. They are in over their head. This happens when someone with little to no experience gets thrust into a large project outside of their realm of expertise. Like when Bill from accounting who wrote an Excel macro once gets tapped by management to be the development team on the company's new N-tier, high availability, mission-critical, SaaS flagship application. These kind of people need to be able to tell management or someone that they don't know what they are doing. Then they need to get help appropriate for that, whether it be training, doing more research, etc. And providing that level of help is not what this site is for.
  2. They haven't done their research. If someone has such a basic misunderstanding, they probably haven't spent enough time learning about what they are doing. For the example question above, googling "what is ajax" gives plenty of results, many explicitly stating that AJAX is really an HTTP request. If a server can handle HTTP requests, it should be able to handle AJAX. If someone falls into this category, they need to go do their research and not push that on to us.

No matter which category you are in, that kind of question isn't appropriate here. I've heard the comparison made (more so on SO, but I believe it still applies) to asking a busy colleague a question. If one of my colleagues came and asked me if nginx supported AJAX while I was really busy I'd probably look up at them, blink a few times, make a mental note about this, and then spend no more than 2 minutes trying to figure out what the hell they were really asking and then send them on their way with a few topics to go google.

So, yeah, I might not laugh at them, but I would start to wonder what they think I'm here for. If they see me as a replacement for them doing their own thinking / work, then there is a problem. And spoon feeding them answers would confirm this assumption. Pointing them in the right direction and asking that they come back next time after they've done some research sends a message that I am not a replacement for google. I will happily help when someone has done their homework first, but I'm not doing their homework for them.

SE.SE is the same. We are here to help when people have done their homework and are stuck. We aren't here to be a teaching service. We aren't a replacement for google. We aren't here to hold someone's hand. If individuals want to do that in chat, fine. If they want to help a user edit a question to be a good, on-topic question, great. But don't leave the bad questions here. Doing so sends the message that we accept such things. And that leads to a false image of the community being something it isn't (a tutoring service, free-coders, google help, etc.).

  • 1
    Really great answer, it's always a good idea to frame these sorts of questions with "how does this conform to the site's mission statement". Commented Jan 11, 2017 at 17:41

I agree that being kind is nicer than being rude, but this does not mean that I should abstain from voting.

When a question is put “on hold”, that is not necessarily rude. It is an opportunity to improve and then reopen the question. Comments can be used to help OP clarify the question. Our close reasons try to explain why the question (in its current form) isn't a good fit for this site or the Stack Exchange model. As such, votes are a great low-effort way to keep the site focussed and give feedback to the OP. Of course adding comments is great when the close reasons are not sufficient.

If the question cannot be improved into an on-topic question that might be reopened, trying to explain anything in the comments is a fruitless endeavour. That would just be encouraging discussion about a topic that is apparently not on-topic for the site. Supporting this might lead to even more bad questions in the long term. There are alternatives:

  • If the discussion is about “why isn't this question on topic?”, then use or point to Meta. Bonus: the site scope discussion can easily be referenced in the future.

  • If you want to help OP understand some topic, create a chatroom. Chat makes discussion easier than a long comment thread. It is easier to ask clarifying questions. If it turns out to be some misunderstanding, you can edit the question and lobby for it to be reopened.

These approaches also allow you to continue the discussion if the question is deleted in the meanwhile.

Unfortunately, editing questions, engaging in a discussion with OP, and trying to come up with good explanations requires substantial effort. I am not required to expend that effort, and am not responsible for OP's feelings or success. So I personally tend to vote and move along. I love it though when people take the time to help OP understand why their question isn't a good fit here, in the hope that they will post a better question next time.


Questions that are based on a false premise or understanding to where the correct understanding not only invalidates the question, but makes the answer something completely different than what was asked, should be put on hold as Unclear.

An answer teaching the OP on a subject different than what they asked about, or addressing the false premise, while helpful to the OP, will only serve to confuse users who may be searching for similar questions and find confusing answers that are indirect.

We are not a free tutor service.

With that being said, lets not be jerks about it if we can. Remember, we were all confused beginners asking unclear questions at one point. Don't act like you have never been there. We can help direct people into what they need to study on and possibly to other questions on the site that will help them learn something important. Comments can be a good place for such help to be given, but again we are not a tutor service. If you feel like babying people through a subject, that is your choice, we just ask that you do so in a private chat room and not flood the comments section.


Though you should never be rude, it is very easy to not bother. The reason for this is that quite a few people asking strange questions really believe that their misunderstood position is correct and will not even consider that they are wrong.

A recent example of this is this question:

Why are interfaces in Java called that way?

If you read the comments to the question it is clear that he has determined that the name interface is wrong. No way is he going to change his mind.


Although we want to encourage questions and usage of the site, we still have to keep in mind that this is a site that deals with a particular profession. Explaining is good up to a point. We know there are people who are just starting out or only program for a hobby, but they should expect to get much better answers here than on some wide-open Q&A site. With that comes a little responsibility.

There was a time when those that joined a site/message board were expected to be patient, read the FAQs, look around, observe how others behave and act accordingly or get called a newbie. I think this site has a more kindler and gentler approach, but at some point, the rules need to be pointed out. Some people just can't take criticism even when it is constructive and helps them be a better programmer.

If you feel someone is being rude, nothing wrong with pointing that out.


Before choosing one of the other answers please consider that "Software Engineering" is the only community where I consistently see lots of down-votes in comparison. Most other stackexchange communities I participate in get by with-out using this feature.

If you care for the topic you should help others in getting better in it. Sharing your knowledge is caring.

You must log in to answer this question.

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