Smart Questions Benefit Everyone

30 Jan 2020

Eric Raymond’s essay on How to Ask Questions the Smart Way goes on about the best way to ask a programming or software question to software engineers to ensure answers that have efficiency and quality. With his steps, users who need help can ensure that they won’t become “lusers”, a witty term for those who ask dumb questions like “What is Windows 10?” or “Can someone sift through my code to find what is wrong with it?” It makes sense that questions like this is irksome and a waste of time, but do you really need to ask smart questions of you want to be a successful software engineer? How does one ask a question that won’t make them labeled a “luser?”

Coding for Dummies: To Spot A Poor Question

In this question we see a “luser” who wants to be able to print out the error from the console onto a file. Just looking at the question at hand, it already exudes laziness and lack of clarity. Looking at the header alone, it won’t attract much people to answer the question as it is ridiculously long. Eric Raymond talks about how a header should only be concise and specifies what is specifically needed. This luser, however, wrote a long run-on sentence that is confusing to understand what is wanted. This title gives no information on what coding language is used, and is overall unappealing for anyone to want to help out.

Continuing on, they further prove their laziness by throwing in their whole code with no explanation with what it is supposed to do, or what is the problem with it. It is also formatted weirdly where half of the code is in the description and the rest is in the coding block under, showing how little effort is put into this question. After looking close at the code, one can see that it is java code for putting input into a file, but this should’ve been explained by the luser. They also didn’t give an explanation of what they did to fix this problem, so it just shows that they really didn’t care to search out the answer through different means and went straight to forums to ask for help. Not only is troubleshooting your own problems before asking essential, it allows gives you valuable insight onto the problem and helps with resolving the issue yourself.

Lastly, the luser asks in the replies for the code to put the console error into a file. This comes off as extremely entitled because it comes off as they want people to make code to fix their problem. This kind of question doesn’t ask for positive input for how to approach the problem, but instead asking someone else to do it for them. It also seems like this question being asked is pointless, as stated from a reply that this code already does as intended, so why ask for a code to write the error into a file? If you intend to ask a question, make sure that there are reasons for it, or else it will come as such a goose chase. You need to have direction with your questions or else people will be confused with what you want and you’ll end up like this luser.

Now What Makes A Question Smart?

For this excellent question this person is asking how to debug a runtime stack underflow error. From the get-go, you can tell that this person has put a decent amount of effort into solving their problem on their own before inquiring with a forum. They were able to traceback where the error lies within the runtime and explained why they are having trouble with debugging the error. This really shows that this user is willing to to answer this question on their own before consulting others. The extra amount of effort increases the quality of the question asked and also prevents others from asking the same question when they search for their own answers.

Another thing that makes this question smart is that the user gives more context to the error. They showed their own troubleshooting as they talk about the parts of their code that was successful. Not only does this single the problem to one point of interest so that others can solve the question more easily, it allows others with the same or similar problems to figuring out where they went wrong and whether the answers given will be beneficial to them.

And the last point that makes this question overall great is how even though the user had their answer solved, they made updates on discoveries that could potentially help others, and left the question an open forum for others with similar problems to have a platform to find solutions. In this way, it allows for programmers to cover upon other aspects of debugging this problem so that less people would need to ask this question in the future. A smart question not only will help the user asking it, but also others who have problems that relate in a similar fashion.

The Million Dollar Question: Why is it Necessary?

Smart questions have the ability to not only give you quality answers, it will also proliferate the knowledge to others as well. It narrows the problem to its simplest form which allows for answers that will benefit the user more. And later on in the future, these smart questions will help users with the same kind of questions to get some ideas from the discussions made from them, and possibly create smart questions of their own. Overall, making smart questions is timeless, as they will help those now and later on in the future. So when you need to ask for help on a problem, make sure you create a smart question!