Asking questions is important. This holds true not only in engineering but also in life. Because of this, the ability to construct a well-formulated question is a very valuable skill to have, as it allows people to get help that subsequently solves whatever they were pondering. However, the thing to note about questions is that there are many ways they can be constructed to be more effective. That is where the distinction between “smart” and “dumb” questions is made.
Eric S. Raymond, author of The Cathedral and The Bazaar, once wrote an essay about this very distinction—How To Ask Questions The Smart Way—and went into detail about specific habits people exhibit when asking questions on Stack Overflow that may potentially discredit or warp others’ perceptions of them. A lot of the advice offered in this essay is seemingly straightforward: “Be explicit about your questions,” “Grovelling is not a substitute for doing your homework,” “Volume is not precision,” etc. Even if some of these tips may seem obvious, people on Stack Overflow often fall into a few pitfalls that may invite negative responses. This negative response is likely one reason why ChatGPT has started to rise in popularity in the context of asking questions—AI will always remain neutral, if not outright positive. However, I personally believe that in spite of its rise, it is absolutely worth looking at examples of good and inadequate questions, if only because, to quickly circle back to the opening statement, knowing how to ask a question properly is a valuable skill to have.
As such, let us now look at examples of questions, both good and poor, as a way to further reflect on this skill. We will be using other principles from the aforementioned How To Ask Questions The Smart Way as a means of evaluating them.
For now, let’s begin with the smart question.
The first example we will look at today is one of the most upvoted questions asked on Stack Overflow.. When looking at this question, I believe that it is an example of a good question. There are a variety of reasons why I think it is; It’s straightforward and to the point. There isn’t any filler words added that make the question bloated. There’s documented evidence as to what was already done, and a clear call to action on what needs to be done. The fact that this question is so good is also directly reflected in the comments - most of the top answers are extremely helpful, and professional, polite, like people there want to help out and genuinely answer the question. This final point is an important distinguisher to me, regarding whether or not a question is good or not - ultimately the point of asking a question is to get an answer that’s helpful, and if there aren’t any answers that are given that are helpful, chances are that the question is not good. Now, we will move onto a less adequate question.
Because I wanted to get a catastrophically bad question to use for this, I opted to instead generate one using AI - StackOverflow, as useful as it is at generating a lot of bad questions, is a site that I personally found that at least offers some level of standareds - the worst questions you’ll find are just mediocre and aren’t necessarily interesting to talk about. So… after asking AI to generate a horrific question for me, allow me to share what it responded with:
“URGENT!! Python game not working plz help 🙏😭
Hi,
I'm trying to make a game in Python and it crashes when I click on stuff. Not sure what's wrong, maybe something with the loop?
Here's the code:
for event in events: if event.type == MOUSEBUTTONDOWN doSomething()
idk what’s wrong, it just gives some error. can someone tell me what to fix? I need this for school like tomorrow so pls help ASAP.
thanks in advance!!!”
When looking at this question and comparing it to the standards that Raymond established in his essay, this strikes me as the catastrophic opposite of what he stood for. The are two important things to note about this question that make it so bad - tone and vagueness. The first problem is inherently problematic as is - most of the peers you are asking to help you on StackOverflow are professional to some degree. If you’re asking them questions like you’re in a Roblox server, then it is almost certain that you’re not going to get taken seriously. However, the second problem is arguably even more problematic. Even if the tone of your question is off, if you are at least asking something and make your self understood even in spite of bad tone, there is a chance that someone can actually answer your question. By being vague about the problem, the code, and what you’re looking to get fixed, then nobody can actually help you solve whatever you’re looking to get solved, defeating the whole purpose of asking a question to begin with.