As technology advances and moves forward, there will always be new and upcoming technical questions that arise with it, especially in the field of Computer Science and Software Engineering. With this mind, the importance of effective communication, knowing how to ask questions and requesting help is something that all students and graduates must be good at in order to save other people’s time and reach a solution effectively for their own problems.
Although it is good practice to ask questions whenever you’re stuck or need help, simply “asking a question” sometimes isn’t enough. In the context of programming, debugging, or trying to figure out something, it is crucial that smart questions are developed in a way that is specific, concise, and with an attitude that reflects willingness to participate in the solution of the problem at hand. In Eric Raymond’s guidelines on “How to Ask Questions The Smart Way”, he mentions that asking smart, thought-provoking questions will not only allow the person who may potentially answer your question more insight but also understand the context of the question. This is particularly useful for both parties, because a solution can be reached earlier if both parties understand the problem thoroughly.
An instance of smart and bad questions can be observed to better understand what makes a question “smart”. For example, here is a good question on Stack Overflow : Stack Overflow
This question in particular, displays the characteristics of a smart question because the developer clearly details what he is trying to achieve and where things went wrong. He nicely includes some code that he has tried and leaves the question open ended for an answer/feedback with no ambiguity or lack of context. The question is simple and digestible for any reader.
A bad question on the other hand like this on Stack Overflow is not very helpful to the potential answerer because of many reasons, first of which is the content of the question. The developer asks a question that seems like it could be answered with a bit of research or looking through a textbook. In addition to this, the developer doesn’t allow the question to be answered in one particular way because it is very broad. Finally, the developer makes the mistake of asking multiple questions, which can be good sometimes but in this case, it doesn’t help at all and makes the question less compelling to answer.