Smart Cookies and Questions

08 Sep 2022

What makes YOU smart?

What is the definition of smart? Is it defined by how well you can do on an exam? How quickly you can solve a Rubik’s cube? Actually, the definition of “smart” may vary depending on the context of the situation. In software engineering, for example, asking “smart” questions can prove to be extremely important not only for your benefit but also for the benefit of those you are posing the question to. But the question still stands—how do we define “smart” in the context of software engineering?

An essay by Eric Raymond, titled “How to Ask Questions the Smart Way”, provides one perspective of what asking a smart question entails. To put it simply, effective communication is key. This will allow those who are trying to assist you to have a clear picture of the situation. Posting a question that is poorly explained, long-winded, or uses a demanding tone will by no means give people the desire to want to answer. Having a well constructed query, on the other hand, will give you a better chance of getting replies that are well thought out and that will prove useful to you without further elaboration.

The consequences of being smart

To better illustrate the differences between a smart question and one that is not so smart, let us compare two different questions posted to Stack Overflow. First, let us discuss an example of a bad question. Upon first looking at the page’s title, “Incomplete type is not allowed (c++ VSCODE),” it might seem like this question might not be so bad after all, as it clearly states a specific issue. However, a brief scroll down quickly indicates otherwise. They indicate that they have created an array using a container class, but they do not know why an “incomplete type is not allowed” error is being returned. The biggest issue is that the user has posted their code snippet as an image as opposed to actual text, making it very difficult for anyone wanting to edit or debug their program. This is because the code will have to be manually typed into an IDE, as opposed to a quick copy and paste. Furthermore, the user provides very minimal explanation as to what the purpose of their code is. As a result, this user got very few responses and had their post downvoted. Multiple comments also pointed out the code image issue. This question’s poor construction was clearly reflected in the quality of the answers it received and ultimately led to it being closed by moderators.

In contrast, let us now analyze an example of a smart question posted to Stack Overflow. The user asks for help about how to delete a Git branch locally and remotely. What instantly stands out to me is the clear title, written with good grammar and punctuation. There is no doubt about the topic of the question, and its title makes it easy to find for others with the same issue. The content of the question body is succinctly written and formatted, and the user also takes the time to show the steps they took to remedy the problem. Unlike the previous example, they also make use of a code block, making it easy for any potential viewers to copy and paste the code into their own IDE. Consequently, this user saw much better responses to their question. The comments contain many helpful, detailed responses, and the page has become one of the most upvoted on Stack Overflow. This has allowed it to reach a much wider audience and has probably provided useful assistance to many other users who had the same question.

How can I be smarter?

Conducting this analysis of “smart” vs. “not so smart” questions has allowed me to gain a greater appreciation for the importance of crafting a well thought out question, especially on public forums such as Stack Overflow. In the future, I will do my best to keep my questions as brief as possible; however, I will also ensure that I am thoroughly explaining the end goal, in addition to my process of attempting to solve the problem. Furthermore, the importance of good tone is more obvious than ever—it is vital to never be demanding of a person who is taking time out of their day to help others out!