Sharpening the Mind with Smart Questions

29 Jan 2025

Question the Questions You’re Asking

In the vast and complex space of software engineering, encountering obstacles is inevitable. Whether it comes to writing a piece of code or having issues with a version of an IDE, problems are sure to arise. For that reason, it is a crucial asset for software engineers to exercise good communication skills through asking “smart” questions to attain efficient, specific solutions to their problem. In contrast, there exists “stupid” questions which achieve the opposite: unproductive answers. Overall, it’s important to be cognizant of the types of questions that we are asking.

Asking Smart Questions

Smart questions aim to add a layer of depth to the problem at hand. For instance, a smart question may include a specific goal, the problem they have that prevents them from attaining said goal, as well as the measures they’ve taken to attempt to overcome it. All in all, you aren’t merely looking for an answer given at face value, you’re looking to understand the problem itself and what procedures can be taken to solve it. From Stack Overflow, a website for programming-related questions and answers, I’ve found an example of what could be considered a “smart” question.

Prior to formally asking, the user provided context and described the intended goal of their program. In this case, they were attempting to find a simple way to set a default CSS style for “button” that could be overridden by other classes. Furthermore, they’ve provided an example of their own implementation that achieved the goal to an extent, in which the other class only overrode a portion of the default. All things considered, the user finally asked if there was an alternate implementation that would achieve the goal.

This is a clear cut example of a “smart” question because the user included a specific goal, a measure they took in attempting to achieve the goal to express effort, and asked a specific question in regards to the context.

By following the format of a “smart” question, the user received two detailed answers that actually helped them with their problem. These solutions included technicalities of CSS and other code that could replicate the behavior of the goal.

Avoid “Stupid” Questions!

On the other hand, “stupid” questions may appear occasionally in which there is no depth or context to formally assist others in producing a productive answer.

An example of this is a “stupid” question I found on Stack Overflow.

The user doesn’t necessarily “ask” a question, it is moreso “telling” or “commanding” others on how to do an operation. In this case, the user wants a way to isolate values from a two-dimensional array in PHP. Instead of giving more details, they simply put lines of code representing a two-dimensional array then “told” users to convert that multi-dimensional array into a single-dimensional array.

This question is not reflective of “smart” questions due to the fact that it’s more “commanding” in nature which sets a bad tone. Moreover, the user provides no other details and has shown no effort into attempting the problem prior to asking.

Of course, this question was met with matching responses. Two users posted answers in which they merely pasted lines of code to do the asked operation. They provided no details for the process of finding the solution and what the code actually did to solve the problem. Funnily enough, one user even left a comment asking “Did you have an attempt to share?”, which is indicative of the lack of effort the asker had in terms of the problem.

Conclusion

All in all, the ability to ask “smart” questions is integral in communicating any problems you may encounter. Doing so facilitates productive discussions amongst peers all while producing effective solutions. This experience has of course opened my eyes. It made me reflect on what types of questions I’ve been asking and how I should format my questions in the future. As proposed by Raymond, asking “stupid” questions is like taking without giving back. In other words, the process of asking “smart” questions is a two-way street: if you put effort into attempting your problem, others will return the favor and put effort into assisting with your problem. With that proposal in mind, we can clearly see how “smart” questions are beneficial to both “asker” and “answerer.”