Finding the Best Question

09 Sep 2021

The first thing I learned when using a computer for the first time was how to search on a search engine. Whenever I have a question that I do not know an answer to, I would always use a search engine to find the answer. After using the search engine for a while, I quickly learned that the more details you type into the search bar for your question, the higher the chances that the answer will show up first. Asking questions is a very important concept for software engineers. When you are coding something, most of the time your code will not run perfectly or at all on the first try. You will most likely run into some sort of error and you might not know how to solve it on your own. This is where asking questions is important. Asking your questions will not only help you solve your problem but will also help you learn about the problem so that you will know how to solve it in the future. You are also not the only one benefitting from searching up the answer; it will also help others in the future. People who might encounter a similar problem as you will find your question and get help too. Even though asking a question sounds very simple, like what Eric Raymond said in the “How to ask questions the smart way” essay, you have to ask a “smart” question to get a response that will benefit you.

The “Smart”

The first thing for a smart question that Eric Raymond talks about in his essay is having “meaning, specific subject headers”. This example on StackOverflow (click on this to access the question on StackOverFlow) uses the subject header to describe their specific problem. Their header, “Javascript doesn’t sort correctly an array including two array’s values” states clearly that there is a problem with sorting an array correctly with two array values. The clarity helps the reader to immediately recognize their problem and potentially come up with a solution afterward. Along with the subject header, this user describes their problem in a short and informative way in the post. Furthermore, they added their code and formatted it nicely with the text so that others can read it and understand the problem better. The code that they posted was their attempt to do the task but the result was not what they expected. Multiple people have responded to his post. The answer he choose was short and precise with an explanation (Schwartzian transform) and code for the problem. After seeing the solution, the user is not only interested in the solution to their problem but also wanted to learn more in-depth about the Schwartzian transform.

The “Not Smart”

The post “How to reverse number groups inside a string in javascript” on StackOverflow (click on this to access the question on StackOverflow) is an example of a “not smart” question. Other than the header, the post only consists of two sentences that give a simple example and ask for the solution for the problem. There is no other additional information about the problem. It seems like the user did not bother trying to search their problem on a search engine or even attempt the problem by themselves since they did not provide any code in the post. This question is what Eric Raymond would call a “loser” in his essay. Currently, there is only one person who replied to this post and they probably could have found the answer faster by searching the web.

Summing Everything Up

After reading Eric Raymond’s essay, I learned the requirement of how to ask a good and a bad question from a software developer’s perspective. I think it’s always a good idea to practice these requirements when you need to ask a question because you can only benefit from asking a smart question. In the modern age, with many materials and resources being readily available to the public, it’s also a good idea to search for your problem on the web because you might solve your problem before someone replies to your question. So to put it into practice, I will make sure to apply what I have learned from Eric Raymond’s essay on how to both ask and answer a question.