Ask Smart

11 Sep 2025

It is never dumb to ask a question, but the way in which it is asked determines whether it is perceived as smart or dumb. In software engineering, it is especially important to ask clear, detailed questions to receive helpful feedback. In other words, the amount of thought and effort put into the question affects how it will be answered. For example, consider a software engineer needing debugging assistance who simply pastes their entire code with the question, “Can you fix this?” This lacks context about what they understand or have tried, making it difficult for others to provide useful advice. In the essay, “How To Ask Questions The Smart Way”, Eric S. Raymond explains the ways to ask “smart” questions, and things to look out for before and when you ask. One of the best places to apply these principles is on Stack Overflow, a platform where programmers of all levels collaborate and share their expertise. To better understand “smart” and “not smart” questions, I have included two questions from Stack Overflow below.

Stay smart

In this question, the user asks for an explanation of O(logn). They provide detailed context, explaining that they are learning about Big O Notation, including run times and amortized times. The user also demonstrates an understanding of linear time O(n) by providing an example function and drawing parallels to O(n2).

f(int n) {
  int i;
  for (i = 0; i < n; ++i)
    printf("%d", i);
}

To tie the question together, the user elaborates further about their understanding of logarithms with an example of log10100 = 2, and thus gets to their question regarding the meaning of O(logn) and identifying logarithmic time. This question fulfills a majority of the qualities Raymond points out in his essay, including being precise and informative, and explicit about their intention for the question. To add on, their title, “What does O(logn) mean exactly?” was clear and straight to the point. Since the user provided an abundance of information as well as their personal context, the responses were straightforward and went well beyond the scope of the question. For example, one respondent provided a general explanation of logarithmic time and then went into greater detail about all running times through real-world examples. Others even included graphs of Big-O Complexity, binary trees, and function cases. Thus, reflecting how asking questions in a “smart” way produces quality answers.

Avoid not smart

Meanwhile, the user in this question directly asks for help writing a Java program to find the second-longest word in a sentence. The nature of the question appeared to be that of a homework assignment, which is heavily discouraged by Raymond. The user included their entire code with the received outputs, but gave little context about what they had tried or the location of the issue. The title, “Write a program to find the second longest word without using array, ” contained a grammatical error and lacked precision. Furthermore, the original post reportedly had the phrase “as soon as possible,” which came across as impatient and insincere. Thus, leading to heavy downvotes and dismissive responses, including “Hire a freelancer, we are not a code factory.” Compared to the “smart” question, the responses received under this question were generally not helpful, with many pointing out either that the question lacked information or that they weren’t there to code the assignment for the user.

Ask smart, learn smart

All questions have the potential to be smart, but it all depends on how it is asked. The “smart” way was clear and informative, which gave the user favorable and helpful responses. The “not smart” question lacked context and appeared to fish for direct answers, receiving frustrated and unhelpful responses. Therefore, it’s evident that to get a proper response, your question must be detailed, explicit, and show an initiative to learn along with those assisting you. In software engineering as well as the workforce, asking thoughtful and detailed questions not only earns better feedback but also encourages collaboration and respect.