The internet has no lack of resources when you come across a problem. Forums are a great place to ask questions and recieve answers from a variety of people of varying profession and skill level. Most forums are also speciffic to particular subjects, increasing the chance of having someone provide a relative and correct answer. StackOverflow.com is a great forum for programming related questions. However, people can’t read your mind, and sometimes the question being asked does not elicit an answer that actually answers the question. If thats the case, we need to step back and ask ourselves did we ask a smart question?
A smart question is a question that is posted on an appropriate forum, for which the question’s subject, level of difficulty, and possible group of people who can answer the question, match that of the forum. Done after doing as much as possible to solve the problem such as reading the manual or doing researching if the question was asked before. The question should be headed by a relevant header that describes the problem briefly. The specific area that has the problem, and what the problem is, is a good structure for a smart question header. Including a snippet of code that is easily accessible, all the symptoms of the problem, a log of what was done so far in terms of trying to solve the problem, your specific system that is running the code, and as many relevant peices of information as possible, will make understanding the question easier. This makes it a smart question.
This particular question on stackoverflow is a good example of a smart question. The header is specific and foreshadows the question being asked in the thread. The original poster clearly states the problem, which in his case happens to be a misunderstanding of the size of the output of Pythons Memory_Profiler. A sample code is included to better describe the situation in which the problem occurs. Other than the source code, sample outputs are also included and he uses these outputs to point out that the output of the code for sys.getsizeof(a) is different than the calculated value. He then goes on to ask why this is after explaining his thought process and how it didn’t quite match. The answer chosen as correct in this thread is also an indicator that the question was asked in a smart way. The answer is clear and precise. Since there was no vagueness in the question, the poster of the question was able to fully understand what was being asked and give a full explination.
With this question on stackoverflow, there seems to be no particular problem with the header other than it being slightly vague. However, once the thread is opened, you can immediately see the question lacks details and does not provide enough information to completely understand what is being asked, and therefore does not enable others to provide a sufficient answer. Though source code is provided, “My app keeps crashing on startup” and “please check my code” are the only two relevant details in this question submitted by the original poster. The first reply to the question is a link to “how do i ask a good question?”.
After looking through stackoverflow and seeing examples of smart questions and not so smart questions. I can see that asking questions the smart way usually elicits a far better answer. The answers of smart questions were usually more informative and short, but packed with details specific to the question. In cases of not so smart questions, the answers were far more long winded, and far less specific to the question. Some weren’t even answers to the questions, some replies were more questions about the original question when a lack of details were provided. Asking a question the smart way is important from a Software Engineering standpoint because asking a question and having a quick and relative answer makes solving the problem easier and faster. Instead of recieving more questions about the problem, or recieving wrong answers. Asking a specific question with as many details as possible the first time around, will save time and effort.