Asking Questions 101

10 Sep 2020

In their essay, How To Ask Questions The Smart Way, Eric S. Raymond and Rick Moen cover the dos and don’ts of asking technical questions–whether by email, mailing list, or online forum. With insight into the hacker community, steps to take prior to posing technical questions, and the “smart” way to ask a question, the essay provides a helpful guide towards asking the right questions to get answers quickly and effectively.

What is the Smart Way?

To begin, Raymond and Moen stress doing research and attempting to the solve the problem before reaching out to others for help. With the rapid growth of the hacker community and the accessibility to the Internet, chances are high that an answer to your question already exists. If you have found yourself unsuccessful in solving your problem through pre-existing forum threads, manuals, FAQs, and friends who might be able to assist, then it could be time to pose a question of your own.

Major Characteristics of Smart Questioning:

Questions asked the “smart way” should be clear, but not wordy, and provide the most insight to the situation–as to avoid unnecessary back-and-forth between the person asking the question and those providing an answer. By following these guidelines, a technical question is likely to find help from the community in an effective and efficient manner. That being said, in forgoing these steps, one can expect the opposite result in their inquiry.

The Smart vs. Not Smart Way of Questioning

While it can be easy to describe how a situation might unravel depending on the approach to questioning, here are two different posts to Stack Overflow. The first exhibits the traits and results of the “not smart way” of asking a question, while the second provides a glimpse of the efficiency of the “smart way.”

Wait–What’s Your Question?

User, TheNurb, inquired about “Grouping a map by object’s property to a new Map”, and showcase the not-so-smart approach to questioning. While the subject offers a bit of insight into the issue, it is difficult to grasp the context of the problem which, as Raymond and Moen express, would deter hackers from giving the question the time of day.

Looking into the entirety of the user’s post, finding the question being asked is also difficult to do. With ample amounts of code, the problem the user describes is easily buried and makes attempting to answer much more time-consuming. We cannot, however, discredit the user’s provision of the prior steps taken towards fixing their code and describing the code’s major goal–not just the step going wrong.

Still, as seen in the comments on the initial question, there is quite a bit of back-and-forth about the context of the code’s use and the constraints of the project. Where user, Andreas, provides a working solution to the initial inquiry, TheNurb later provides that their project is limited, and the change prescribed would not fit within the requirements of their code. Had this greater context of what TheNurb could and could not do with their code been providing from the get-go, an answer could have been reached more efficiently.

Not to mention, Andreas’ use of, “So?!? Fix it!” and “I don’t see the problem,” imply that the user offering an answer is getting quite frustrated with the multitude of questions and context appearing later in time. As Raymond and Moen note in their essay, nobody is required to answer the questions posted. If you are asking for others to go out of their way to answer your question–try not to waste their time while you are at it.

Precise and Concise

User, user1234, posted a question, “What is the Character Encoding of x509 certificates?” and, just from the subject, begins to exemplify the “smart way” of asking technical questions. The subject provides the basic inquiry of the post, along with specifics in the type of certificates. This clear introduction the user’s questions allows others decide whether they have the capacity to offer a solution to the question without opening the thread.

Within the body of their post, user1234 follows the guidelines of the “smart way” by providing the server their implementing, the goal of their project, and a link to the requirements for it. After the brief introduction, the problem is clearly described as user1234 offers specifics to the issues with their program’s defaults and the expected output. Following this, the user provides attempts they have made in re-working the code and at researching for pre-existing answers on the Internet. With providing details from their search that may further assist the issue, user1234 concludes with a precise, and concise, question–slightly more detailed than that in their subject.

The approach to asking their question the “smart way,” is rewarded in a working solution being provided within an hour. Unlike the previous post by TheNurb, user1234’s technical question and, user, Steffen Ullrich’s response, avoids the back-and-forth that occurred in TheNurb’s comments. Not only that, but Steffen Ullrich was able to provide user1234 with a solution just as concise as their own. This quick and efficient exchange showcases the advantages of questioning the “smart way.” (Though, it would have been better etiquette for user1234 to verbally acknowledge Steffen Ullrich’s solution–not just mark the question as “answered.”)

So, Are There Stupid Questions?

“Smart” is a fairly relative term, thus “stupid” is equally so. Where one person might have ample experience in an area, others might be incredibly new. Should this prevent newbies from asking basic questions? Is this grounds for experts to ignore the inquiries of those below them? Are there actually stupid questions? And will they only yield stupid answers?

To all the above, I am inclined to say, “No.”

Learning must begin somewhere. Experience and skill come with time. Usually, it begins with these “stupid” questions that seem much too simple for veterans in any field. It would be wise to remember, though, where we all started from.

Questioning is a skill–it takes time and practice, plus a bit of stumbling around and struggling to find answers. In the same way there are concepts in math you might have trouble asking for help on because you do not understand enough to get your misunderstanding across, computer science trouble can be equally confusing to navigate finding the right questions–not to mention, the right answers.

It is not that stupid questions will fail to get your results, but more so that the questions being asked may only offer select answers. Knowing the right questions to ask will take trial, error, and effort on your part, but the answers and knowledge you will gain from it are worth it.

So, while there are no stupid questions, there are ways to ask better ones.