Improving How to Ask Questions Smartly

04 Sep 2023

Asking Questions

It is perfectly normal to ask questions when we don’t know or encounter difficulties in life. However, repeatedly asking extremely simple questions may be perceived as foolish by some. Questions like “What day is it today?” or “What time is it now?” can be easily answered by checking a wristwatch or a mobile phone, but they are considered a normal part of conversation, and they are rarely seen as foolish questions. However, in the field of engineering, asking questions about something that can be easily found with research might be considered foolish. By searching for a specific issue on a browser, you can access various Q&A platforms and potentially find solutions or similar information from within those resources. Furthermore, in recent years, artificial intelligence, such as ChatGPT, has also advanced, offering the potential to resolve issues by asking questions without consuming the valuable time of skilled technicians. For engineers, it is obvious to encounter various challenges in the future, and enhancing the ability to research solutions for these issues is also crucial.

The following two links are examples of simple questions that I found on Stack Overflow. Based on Eric Raymond’s ‘How To Ask Questions The Smart Way,’ consideration will be given to whether these two questions are smart or not.

Example Question

First, regarding the question “Can anyone help me with this simple code?”, the questioner has posted around 20 lines of JavaScript code. Also, the questioner presented like:


the result is: true, false, false;

it should be: true, true, false;

Can anyone help me why this is happening?

I’m just barely learning JavaScript…


According to Raymond’s article on how to ask smart questions, it is mentioned that phrases like “help me” are unnecessary, and this question’s title falls into that category. Furthermore, it fails to meet the requirement of a meaningful and specific subject headers. Similarly, Raymond stated that Grovelling may be considered meaningless, and the sentence “I’m just barely learning JavaScript…” in this question might be unnecessary as well. While it’s understandable to want to assert one’s status as a beginner when facing a problem and asking a question, it’s not particularly favorable to consider this as part of justification for asking a question. This is not about the negativity of asking foolish questions, but it is important to understand that these are areas for improvement in order to ask higher-quality questions.

On the other hand, in the second question, “Which equals operator (== vs ===) should be used in JavaScript comparisons?”, it is evident that the title is meaningful and clear. As a result, it becomes easier for other engineers with similar inquiries to find when searching on this platform. Furthermore, within the question, the questioner explicitly mentions that they are running JavaScript in the JSLint environment and provides only the essential code line. This allows the respondents to accurately understand the question’s intent and purpose, enabling them to provide valuable information. The questioner probably appears to have knowledge of the differences between each equal operator and seems to specifically seek the opinions of experienced engineers, making this question seem worthwhile to ask. Furthermore, as a personal perspective, the clarity of the title and the inclusion of multiple tags make it easier for others to discover this question. Therefore, not only for obtaining good answers but also for assisting other engineers facing similar issues, I found this to be attractive.

Conclusion

Both questions eventually received valuable and good answers. However, from the perspective of the number of responses, the less smart question had 4 answers, while the smart question had 48 answers, indicating a 12-fold difference. The number of responses doesn’t directly affect the quality of answers, but having more answers can increase the likelihood of obtaining a response that can solve problems and incorporate a variety of perspectives. Therefore, it can be said that being able to ask good questions is an important factor for becoming a better programmer in the future.