Not everyone is an expert in everything they do. Even some of the most revered professionals have questions. Everyone, at some point in their lives, has heard the phrase, “There are no stupid questions.” However, looking at it from the perspective of “There is Google, and probably documentation or a manual,” there are some questions that can be solved without asking. If there is a question that cannot be answered by searching it up and other means, and the only option left is to ask for help, then that question should be asked in a smart way.
According to Eric Raymond’s How to ask questions the smart way, people like to answer questions that are thought-provoking and interesting. By asking good questions, one can get good answers. According to Raymond, “People like that [people who seem to be unwilling to think or to do their own homework before asking questions] are time sinks, … We call people like this ‘losers.’” Then, how does one ask questions the smart way?
Summarizing Eric Raymond’s essay, before asking, there should have already been attempts to answer the question. For example, by searching archives or the web, reading the manual or an FAQ, inspecting and experimenting, asking a friend, or, if applicable, reading the source code. If the question still remain unsolved, then ask a question. But, still, the question must be well thought out and written in clear, grammatically correct language. When posting a question, it should be on a forum related to the question and have a meaningful subject header. The problem should be precise and informative. For example, a description of the symptoms of the problem/bug (what is happening), the environment (where it is happening–machine, operating system, etc.), what research and diagnostic steps have been done (what has been attempted but unsuccessful), and a way to reproduce the problem if possible.
An example of a question that could be improved is a question about displaying a local image in a markdown file. In this post, the developer just asks why the image is not displaying and what line of code they wrote. Looking at the answers, some people have recreated the problem and have had no problems; others are guessing what tool is used. Most of the answers are similar, that the image should be put in a relative path. This question could also probably be solved in a reasonable amount of time by experimenting or reading documentation.
An example of a thoughtful question is this post. It asks why processing a sorted array is faster than an unsorted array. In this post, the developer provides background on why the question was asked: why does the code run almost 11 times faster when the array is sorted, even if the order of the array should not matter? They also provided what code they were running and showed that they had tested it with another programming language, ruling out the language or compiler affecting the times. One of the answers stood out because not only did it answer the question with technical jargon, but it also provided a real-life example of using trains to answer the question first and then apply it to processing.
From these examples, it is clear that well-thought-out questions receive well-thought-out answer as well. Though this may not always be the case, it is more likely that questions with more detail are more likely to be answered. With ample detail, people looking to help will be able to help because they know exactly what is happening. They don’t have to guess why you are having a problem or provide solutions that work for them but not for the person asking the question.