Asking the Right Questions

25 Jan 2018

Everyone needs help at some point, no matter what it is for, nor how simple or complex it is, everyone asks for help with something eventually. Asking questions is easy, getting the right answer in the right way is the hard part. Where you go and who you go to makes a big difference. No one wants to have their time wasted by others and usually take the quickest route that ensures this. Answering the questions of others is no different. Eric S. Raymon outlines how to ask questions in an intelligent and thoughtful manner and includes several ideas on what makes a question a good one and a smart one.

http://www.catb.org/esr/faqs/smart-questions.html

The important first step that Eric outlines is done even before you ask your question, a highly crucial and most often overlooked step that could save you and others time. Did you try to find an answer to your question on your own? Did you check multiple information sources, inspect and experiment to try and find the source of the issue, or talk to people you already know to get their input? Do all of these first before you even attempt to ask for input from others online. You could save yourself time and effort because the answer was achieved with a quick search, or a few miniutes of inspection, trial and error resolved the issue. If the above fails, then you lose nothing and gain a powerful tool asking for and getting an answer. Asking is the next step and Eric details where and how to do that in expansive detail.

Now, lets look at a question that was asked in a smart way. Detailed, thoughtful and concise, a question that makes sense and is not something that wastes anyones time.

https://stackoverflow.com/questions/48256327/how-to-aggregate-counting-distinct-items-over-a-sliding-window-in-sql-server

This is a good question, it meets most if not all of the ideas that Eric goes over. It is being asked in the right forum, it is clear in its layout and language in what is being asked for, it states the goal and provides reference for what has already been attempted or is in use and shows that the asking person has familiarity with what they want. It gives what the person currently has for their SQL code and asks for an idea on how to get the exact result that they want with an example provided of what they’re looking for. The language is clear and concise and is not pleading, begging or demanding. While the question is not full answered yet, there are several responses outling possible solutions and there is discussion about the best way to enact the best solution for the asking person. All in all an excellent example of a good, smart question.

Now lets examine a question that is not as ‘smart’ in how it was presented and one that possibly should not have been asked, or asked at a later date after the asking person tried to find a solution on their own through other sources or their own experimentation and development.

https://stackoverflow.com/questions/48453334/how-do-you-pick-what-i-want-from-the-input-file-in-c

This question isn’t a bad question or a stupid one at all, it is however not asked in a smart way. First the user starts off with the fact that they are new to C code and StackOverflow, this is not a bad thing but it is however close to a pleading tone or could be construed as such. A smarter way would be to say that they are new to it, and that they have checked tutorials and beginner sources for help and tried a few things on their own before comming to ask the question. This type of intro where they introduce their inexperience but temper it with examples of things they have tried first is more likely to get a response since getting help becomes actual help and not just doing the work for them. This leads to the next part of what this isn’s a ‘smart’ question. They are trying to read file input and select parts of it to make a specific output. They gave an example of the input and desired output and a snippet of code. The problem however is the fact that the code snippet is just a basic file I/O and shows no attempt at all at a solution. The asking person even says as much by saying that they do not know even where to start with the problem. The only response further highlights this by tyring to clarify the desired output and then asking if the asking person has an algorithm to get from start to finish. The first step that this person could have taken before asking would have been to look up information on how to parse text inputs and then using that attempt one or two solutions. Failing that they take their results and then ask for help based on that rather than asking for someone else to solve it for them completely.

Asking questions in the smart way is the best way to get a quick usuable answer and has several other benefits as well. You learn more and build community while doing so.