Get Help the Right Way

10 Sep 2020

Knowledge is power.

Knowledge is power. However, not knowing something does not make you weak. It gives you the opportunity to improve yourself and possibly empower those who try to aid you. This type of growth is not possible without being willing to ask for help. Although, just asking for help is not what is important, it is HOW you ask for help. After reading the essay “How To Ask Questions The Smart Way” by Eric Raymond, the proper way to ask a question can not only provide an accurate answer for your problem, but also encourages others to answer. Simply put, just because you ask a question, it does not necessarily mean you will get an answer. However, if you ask the question in a proper way, the chances you will get a reply and the quality of your response will improve.

Think before you speak

There are many prerequisites before even attempting to ask the question. According to Raymond, the very first step before posing a question is to do your own research beforehand. The amount of information and resources available today are so abundant that the probability of someone encountering the similar issues are high. Specifically, software engineering guides and issues are posted on multitudes of forums and discussion sites. Those who would have answered the question would be able to tell how much research you put into finding your own answer before asking the question. If your question provides enough evidence that you have attempted a solution yourself and done a fair share of searching for a solution, there should be enough information to share with potential answerers so that they me be more enticed to provide a solution. So what is the difference between a good question and a bad question?

Good Questions vs Bad Questions

Here is an example of a bad question. In this post on Stack Overflow, the user is experiencing issues using a macro to create seperate files based upon the contents of a spreadsheet. The user provides screenshots of their output and screenshots of their intended output. Also, it seems that the user is not a primary english speaker. Their request contains misuse of lowercase and uppercase letters. There is an abundance of exclamation points. The very first paragraph of the post starts with “Please help someone help me”. The user also provides a download file , which can be dangerous. The main issue with this question is that the user does not explicitly say what their desired solution is and it is left to the potential answers to decode the question. However, the user did receive an answer that provided an output that was very close to what was intended. The user then continued to push for help from the answerer, and answerer hasn’t not responded since.

Here is an example of a good question. In this post, the user creates a large randomized integer array. The array is then used within a for loop that adds all values over a particular value. When the user compares the time it takes to complete the loop with the unsorted array versus running the loop after sorting the array, they get a large time disparity. This would be considered a good question because the user posted source codes for two different languages. They also stated the logic behind their confusion, saying that “the code is summing up some independent terms, so the order should not matter”. The user provided code, their attempts to find a solution, posed the question concisely, and gave the viewers a reason why they were asking this question. The user recieved a very well written and clear answer, from another user called Mysticial, that answered why the program was encountering this phenomenon.

Conclusion

As shown in the two questions, just asking a question can get you answers. However, in the bad question example the user continued to ask bad questions and was left to figure out a solution on their own. In the good question example, the user provided enough information and posed the question in a way that an answerer could give a very detailed informational response. Therefore, it shows that if a question is given in a well thought out and concise way, the chance of a response of similar caliber will be given. In ever-evolving world of software engineering, asking questions is crucial in developing not only our own skills but the skills of others. Being able to ask good questions are key to receive that development.