
Throughout my life, many professors and teachers have started class by saying, “There’s no such thing as a stupid question.” This was a phrase I heard constantly from my professor last semester. He was teaching a notoriously difficult computer science course—a significant step up from previous classes—and he wasn’t shy about telling us the material would be challenging. To make us feel more comfortable asking for help, he would regularly repeat, “There are no stupid questions.” While I generally agree with the sentiment, I’ve come to believe that it’s important to take a moment to think before asking. It’s not that stupid questions exist, but smart questions are far more valuable.
One reason people perceive some questions may be seen as “stupid” is that they could easily be answered with just a bit of effort. For example, asking something that’s already written on the syllabus or whiteboard suggests the person hasn’t even tried. Before asking a question, it’s important to first make a genuine effort to solve the problem on your own. Not only does this encourage independent thinking, but it also leads to deeper understanding. However, when you’ve tried and still can’t figure it out, that’s when to ask a smart question.
Smart questions often require some type of plan beforehand in order to effectively communicate the problem you are trying to solve and your current thoughts about the issue. The first and likely most important step is to choose the right place to ask your question. Finding the right place or person to ask your question ensures your question reaches people who can actually help. Next, provide a clear description of the issue you are trying to solve and the end goal. It is important to be precise and descriptive, but be sure to be concise in wording. Too much detail at first can be a burden or distract from the main goal.
A great example of a smart question can be found in this Stack Overflow post, where the user asked: “Why is processing a sorted array faster than processing an unsorted array?” They not only explained the issue, but also included sample code and their own thinking about what might be wrong. The question was concise, well-structured, and showed that the user had already done some investigation. As a result, the responses were thoughtful and insightful.
On the other hand, this question is an example of a poorly formed one. The title, “Android sometimes force kills application,” is vague and doesn’t indicate what they think the issue might be. While they did describe how to reproduce the issue, they failed to provide enough meaningful context, which is evident by multiple commenters asking for more information. Without a clear question and relevant details, the answers were inconsistent and no conclusion was reached.
For software engineers, asking smart questions is crucial to learning and growing. Asking smart questions to peers, mentors, and online communities will support growth in both the skills and knowledge needed to become a better software developer. When asking smart questions,
Asking smart questions for software engineers is the start of learning.