Asking questions the smart way is more important than asking smart questions

27 Jan 2021

You can ask questions

College professors always welcome questions from their students, as they make it a priority that students are acquiring skills and achieving learning outcomes from the class. The time they spend responding to questions is worthwhile and meaningful. In another word, instructors whose job is to answer questions will be more willing to answer questions. When we get out of the school, there are no such instructors who are responsible to answer every single question from the strangers.

Having the chance to ask questions appears to be a uniquely human trait, and a gain, one that saves us from being trapped in a pathway to success. Whereas answering a question is a cost, whether the cost is deserved depends on many factors. Despite the closed relationship between the questioner and the respondent - your mom will answer any question for you. In most cases, the respondents answer questions on their time because they may have encountered the same problems with the questioners. Sharing a similar experience is what tends to build the trust and empathy bond between people and people. Nowadays the use of open source is widespread, asking questions in a specific community is more likely to get professional responses in a reasonable time. But the thing is, every community is overwhelmed by a massive amount of questions, making it easy for some questions to be ignored. Therefore, how to successfully get someone to stop by your question is an important ability smart software engineers should master.

Asking questions the smart way is more important than asking smart questions

It is hard to distinguish between which question is smart. Skilled developers probably ask smart questions, and newbies ask questions that seem to be not that smart. But they ideally have equal chance to gather an answer, as long as the way they ask questions is smart enough. Refer to Eric Raymond: How to ask questions the smart way, I have concluded two points, regarding the strategy of asking questions. One is the question statement, and the other is the impression of the questioner.

A good question statement

A good question statement includes a clear, complete, logical expression with correct spelling and grammar. Make sure it’s obvious what you are trying to get out of the question, and ensure your statement is related to your title. Giving enough information to your potential respondents is also an integral part of the good question statement creation. Saying you are asking a programming question, telling readers how it failed, what happened in your previous attempts, what platform you were using, and what was the exception will be helpful and effective as well as making it more likely to attract views from people who can answer the question. Shortening your question to “ Why does this code compile?” or “Why does this code fail” may lead to shortened answers like “It doesn’t” or “Because it does”. It even becomes worse to let people spend time understanding what your question is and consequently decide not to spend more time writing an answer to it. A typical example of asking questions in a not smart way here: the questioner claimed “I am new with java. I having some exception while running my code”. Despite the grammar errors, according to the response below, the questioner probably did not provide the specific exception initially, resulting in responses like “ to save us trying to guess which type of exception it is or where it’s happening” and “you will need to tell us more”. Secondly, the bug seemed to be easily found, which was a typo of variable i. Although this question got answers anyway, taking a careful self-check before posting the question would be obviously more effective and smarter in this case.

A good impression

The second strategy is to create a good impression. As I mentioned above, asking for an answer is gaining from others, with no pay. An appropriate attitude is never ever useless or unnecessary. Additionally, making a good impression is not only reflected in the way you state your question but also in the efforts you have put. Asking questions in a way that implies that you have neither taken time to think about the problem nor done some research yourself is disrespectful. If you could google it, find the answer on a manual or a source site, then don’t intend to let someone else do this for you, and annoy him as a result. Stack Overflow isn’t meant to replace basic search tools, when the way you ask a question implies that there have been enough investment of effort and attempts prior to posting this question to the community, there must be someone willing to help. The question “what does use strict do in javascript and what is the reasoning behind it” can be treated as a good question, as the author clearly described his question and stated the attempts he had made to find the answer. As a result, he acquired plenty of responses, with both word explanations and example codes. All software engineers should keep in mind there’s an obvious correlation between the quality of a question and the likelihood of getting quick, helpful answers, and through this process, we will truly learn something.

Personal experience

Stack Overflow is an excellent resource, in which I can find detailed solutions to certain questions. Each time I encounter problems with coding I first use google search, and the top results returned always link me to Stack Overflow. I have been taking advantage of its tons of content and learning from others. It is friendly for both new learners and skilled developers. Indeed, most of the time the solution that I am looking for has been given in Stack Overflow, thus all I need to do is to do simple keyword searching.