The Dos and Don'ts of Smart Questions

25 Jan 2024

Have you ever been stuck on a complex coding problem or bug and thought, “should I post this to the internet and see if anyone can help me with my coding errors?” From beginners to experts, all programmers face bugs that seem frustrating and seemingly impossible to fix. The temptation to simply copy and paste code into a public forum and await the solution to a complex technical problem can be strong. In most cases, this urge should be resisted. In order to best get a relevant response for your technical problem, it is best to follow a set of guidelines when posting a question. Eric Steven Raymond outlines a multitude of such guidelines in his article, “How to Ask Questions the Smart Way.” This essay will briefly summarize the point of the article, show the importance of asking smart questions, analyze examples of not smart and smart questions, and present key insights from this information.

In his article, Raymond offers advice on how to ask questions the right way. The frame he provides for such a question is the “smart” question. A smart question follows the general guidelines introduced by Raymond and is the best bet that a question will get a meaningful reply. This list is not comprehensive but here are a few pointers that he gives when asking a technical question. First off, choose the forum carefully. It is crucial that the topic being asked fits in the forum that it is posted in. Failure to follow this guideline will likely result in the question being ignored altogether or could even lead to a hostile response. Another tip is to do extensive background work into the problem with the code before posting the question. Hackers are not likely to put time and effort into a problem if the person who raised it was unwilling to put in time and effort themselves. A few other tips Raymond gives include being specific about what is being asked, describing the problem’s symptoms in chronological order, and using proper grammar.

Now that a few of the article’s pieces of advice have been summarized, a crucial question can be posed. What is the importance of asking a smart question? The significance of following these seemingly strict guidelines cannot be understated. The first benefit is the likelihood of receiving a useful response. A smart question is much more likely to draw the attention of a busy expert. It will have a descriptive title and will accurately describe the symptoms of the problem at hand. Additionally, a smart question will demonstrate that the person asking the question has spent time and effort into solving the problem before posting. The experts, or hackers as they call themselves are “unapologetically… hostile to people who seem to be unwilling to think or to do their own homework before asking questions” (Raymond). Overall, a smart question proves that the person posing the question has pondered the question themself and in the hacker’s mind is worthy of his precious time.

Examples of Smart and Not Smart Questions

In this section, we will examine one not smart question and one smart question posted to stackoverflow.

First, we will analyze the not smart question.

The user asking the question here wants to know why the array is not appending as he wishes. Verbatim, his question reads, “I cant make append work. When i try to add passengers and then print my array it just empy []” Immediately, we observe that the question violates multiple of Raymond’s principles to asking smart questions. First off, the post is not even a question. Instead, it is a statement that the program is not working and that the array is empty when it should not be. This leaves the reader to guess what exactly the user wants from his program. Raymond suggests that that when asking a question one be as specific as possible with what you are trying to accomplish, this question fails miserably in this regard. Secondly, the question is riddled with grammatical mistakes. Raymond suggests using clear, gramatical, and correct-spelling. If the user asking the question is not a native English speaker, Raymond suggests the user informs the readers of this fact. Otherwise, it seems like the user typed up a vague question and clicked “post” without a second thought. Overall, this approach is very unlikely to get a useful response. In fact, one of the responses to this question suggested that the user, “learn how to debug.” A general response was given to a general question, not exactly surprising.

Now, we will analyze the smart question.

In this example the user is asking about a problem regarding “Using OpenCV to read input from Capture Card.” Right off the bat, the grammar and title are much more professional than the not smart counterpart. Additionally, the user does a good job of detailing the problem in chronological order and including relevant and concise snippets of code at each step. He also excels at detailing the exact wording of the errors he faced as well as when those errors occured. Overall, this user is much more open to advise than the last user and even leaves open the possibility that someone could suggest a completely different solution that would work better. Finally, he wraps up with a concise question, “How can I configure OpenCV or any other AI tool to be able to read from my capture card?” This post is a great example of what a smart question looks like.

To conclude, smart questions were clear and easier to understand. They left the possibility open that a solution they had not considered was possible and were great at detailing the chronological order of problems. The not smart question was confusing and got many responses asking for further clarity. In fact, the not smart question received a nudge to the user to do his homework first. These examples demonstrated how asking a question in smart format is more effective at getting a meaningful response. So, the next time you have a coding problem that needs fixing and you think, “should I post this problem to the internet?” I highly recommended doing background research into your problem and only then posting a smart question.