We often come across problems we do not know how to solve or we cannot remember a certain method we learned before. In these cases, most of us look up our questions online. Technology has become so advanced that once we search up our questions, the answer can be found instantly. However, sometimes our questions have not been answered or the information provided does not help us solve our issue. We often hear from our teachers or professors that we should ask any question we have, even if we think it is a dumb question. After reading Eric Steven Raymond’s article “How to Ask Questions the Smart Way”, I realized that there are better ways to develop and ask questions.
There are many forum sites that are available for everyone to ask any technical questions they may have. Many experts are available to answer your questions on this site, but if you ask a “bad” question, you could be considered a “loser.” However we should not be afraid to ask our questions and Raymond’s article provides some criteria and guidelines that can help us develop better questions.
He broke up the criteria into two categories, “before you ask” and “when you ask”. Before we ask our questions, we should try to see if the question has already been answered on the web, forum site, a manual or a FAQ. We could also try to ask a skilled friend or colleague to see if they can help us or offer insight. When we ask our questions, there are some guidelines we should keep in mind. We should not post our question to a forum where it’s off topic, post an elementary question to a forum where advanced technical questions are expected, or vice-versa, do not cross-post, or send someone who is not responsible for answering your question a personal email.
To make sure other experts or developers do not just scroll past your question, you should come up with a meaningful title/header. It should be clear, precise, and not contain anything unnecessary. You should take your time reading any FAQs or something you found on the web because it is easy to miss the small information you need. Take your time googling and make sure you read and try to understand your problem before approaching others. You want to show that you are willing to put in the work and are not just looking for the answer. Look for pointers and hints, not someone to just spoon-feed the answer to you.
After searching through a forum site called, “Stack Overflow,” I found some examples of good and bad questions that helped me understand what I should and should not do.
This post is a bad question and the wrong approach to solve the problem. This user’s question violates multiple aspects of Raymond’s criteria. A few warning signs can already be seen in the title of this post. The title is, “Run this Javascript Code and Send Me the Output.” Already from the title, we can tell that the user did not put much thinking into their problem. The user says they “NEED” someone to run their code and that they are unable to run it and see the output themselves. This can show that they do not know how to use IDE or online compilers that could run their program. We can see in the comments that someone ran it using an online compiler and was able to get an output. Given we do not know the user’s circumstances, but as we can also see in the comments, the code he provided was actually written in Java and not Javascript, which shows that they do not know what they are doing. Another similar post is another user asking for code in C#, but they do not show any parts or signs that they attempted to code the problem themselves and make it seem like they just want to easily get the answer. This post even violated the Stack Overflow guidelines and was closed down. One comment even asked the user to provide some code that they did to show what was not working and what the user has tried so far.
This post provides an example of a user who asked a good question. The title of the post already clearly addresses the precise problem the user needs to solve and is only asking for pointers. The user wants to know how to remove a specific item from an array. They even provided what kind of function they are looking for. We can tell that this is a good question because they are not asking for answers to their whole code and are just looking for an equivalent piece of code of array.remove(number)
The developers who responded provided many different ways and methods the user could approach this problem, which shows that this was a smart question. Compared to the not-so-smart questions, this user got a lot of high quality feedback.
In conclusion, sometimes asking questions in a more smart and efficient way can bring about better results. However, this does not mean we should be afraid to ask our questions. This means that we should invest more time into trying to figure out our issues first and asking people around us before approaching higher level developers or experts. If you know how to successfully communicate your questions and/or ideas it will be more beneficial for you. Not only in school or our workplace, but we can apply this to our daily lives and in relationships with other people.