Perhaps one of the first important lessons that a student could learn in elementary school is that there are no such things as bad or dumb questions. This is true, to some degree. All questions are good inherently, but the perceived status of the question, be it good or bad, depends on the overall context. Take the heading question of this paragraph, “Why do my feet smell if they don’t have a nose?” If you were to ask this question to children or comedians, then it is likely that they would respond with their answer and say that this question is a good question. However, to the serious-minded adult or people who don’t understand jokes, then this question is the perfect example of a bad question. In this essence, let us apply this logic to the REAL questions. Specifically, questions that we ask online for our programming needs. What kind of context determines if a technical question is perceived as good or bad?
We will be referencing the article, “How to Ask Questions the Smart Way” by Eric Steven Raymond, to determine what makes a good technical question and what makes a bad question. In Raymond’s eyes, one way a question is good is when the question is unique. This means that, before asking, the question remains unanswered, even after searching the very last pages of a google search, reading any necessary documentations or manuals, or when your parents are just as stumped as you. Another way a question is good is when it describes the process, problems, and tools involved that led to the asking of the question. One final way a question is good is that it reads good. No spelling or grammatical errors, precise, and it does not sound like the asker is in desperate need of an answer. Take a look at this question on StackOverflow: An example of a good question, referred to as the first question
Notice how this question embodies the specified qualities of a good question? Coincidence? I think not. As a result of the question being good, it has been rated over 8000 points, with a high number of points as an indication of a good question. Now take a look at this question: An example of a bad question, referred to as the second question
Notice how this question is the opposite of the good question qualities? It fails the first good question quality because the question is not unique anymore. Both are similar because they ask about questionable operators, but the first question was posted and answered much earlier than the second question. This shows that the asker of the second question did not do enough searching around to find an answer. The second question sort-of fails the second good question quality because it does not fully describe the process, problems, or tools involved. Sure it mentions that the operator in-question was found in a book, and sure that he is asking what does this operator do, but what compiler was the asker using at the time? Different compilers compile code differently, so that should have been specified before the question was asked. While the second question does not fail the third good question quality, should the title have been “PLS HALP ME I HAZ proBLme,” the question would have been outright ignored due to spelling and grammatical errors, and that it sounds like the asker is a child and is desperate. As a result of the question being bad, its points-rating is in the negatives, with a low number of points as an indication of a bad question.
Were you wonder what the answer was to both of those questions? If so, then I will oblige. The “operators” that both questions speak of are actually not official operators, but, rather, a combination of a decrement operator and an inequality operator. “–>” decrements the left side variable, then uses the value before decrementation to compare it to right side with a “greater than” inequality. “<–” checks if the left side is less than the decrement of the right side variable (using the decremented value and not its original value). This paragraph is sponsored by VSCode and GitHub Desktop.
Good question, mister heading-of-the-paragraph! The mother of all questions and sounding like a single letter, “Why?” Simply put, software engineers must ask questions in a good way to increase their chances of getting an answer that invokes thoughtfulness, which enlightens both the asker and the answerer. Asking a question in a bad way means that the asker is only asking it for themselves, and is perceived as a complete waste-of-time to the answerer, which decreases the chances of that question getting a thoughtful answer. Bad questions that do get an answer are typically straight-up answers, to which neither the asker nor the answerer learns anything.