Helping the Helper

27 Sep 2017

Growing up, the importance of asking the right questions was always stressed. My father studied electrical engineering in college and currently teaches high school math and computer science. He is an extremely analytical man, always taking the same approach to problems – assess the issue, think about all possible routes to solve said issue, enact the most efficient solution. If you ever got stuck, ask for help. However, you had better ask the right question, or you wouldn’t get the answer you needed. This annoyed me to no end. Why was asking “How do I solve this triple integral?” any different than “I am having trouble on taking the third integral of this equation. Do you have any pointers to solve this issue?”? For the first question, my dad would always answer “By using calculus”, to which I would reply by stomping out of the room, furious.

As I have grown, I have transitioned to not only being the asker of questions, but also the answerer, and I finally have realized what my dad meant by asking the right question. Asking the right question decreases, or eliminates completely, all confusion of the question. The answerer doesn’t have to dig for more information, which saves on time and patience. This is especially true in computer science. There are so many individual pieces that must work together seamlessly for a program to work. Asking a very general question rarely solves a problem, unless one is purely curious about a surface level topic. Furthermore, questions areemeant to teach, and are usually answered during the “volunteer time” of the answerer, meaning the answerer isn’t obligated to answer the question, especially if the asker has not put in much effort of their own. Take the question below as an example. The subject of this code was “Make this script work”, which is extremely demanding and could be taken offensively and give no insight as to what the question is.

The question above admits that this is for a homework assignment, which is not innately bad, but is usually supposed to be done alone through critical thinking. The asker admits the code is “clunky”, which makes it harder for the answerer to edit the code as opposed to rewriting the code. Furthermore, the asker rudely states what doesn’t work. Instead of stating, “and, yes I tried this” or “the way I know is easy”, he/she should purely state they are instructed to only use a while-loop, not a for-loop, and the multiple methods they have tried and why each method has failed. Finally, the asker should have been more appreciative for any help. Due to these issues, whomever answered the questions responded in a similar manner. They called the answer “trivial and obvious”, and made the statement “I ‘ll choose not to post advice on asking people for help”.

The fear of asking the wrong question, however, shouldn’t deter someone from asking their question. When asked correctly, questions can be extremely beneficial, to not only the asker, but also the answerer and anyone who has access to see the question and answer. For example, in the question below, there are multiple strong points that the asker includes. First, they show they put in effort to solve their issue, which is a plus in the computer science question book. Second, they state quickly the issue: how to test their TCP implementation. They go into further detail of their operating system, what they want to accomplish, and expressing they are open to further options should their idea not work. Finally, the question is formatted clearly in 2 sections, describing the problem and asking the question and there little to no grammatical/spelling errors.

The asker received valuable feedback. One person asked for further clarification, but also described different outcomes based on the answers to the clarification. Another person provided an alternative source, and the final person explain in detail what could be done. As I looked throughout various questions posted on Stack Overflow, I started to analyze each question, what I though was good about each, what I didn’t like, and so on. I think a lot of asking the “right” question is based on opinion. For example, if I am answering a question, I would be more likely to answer if the asker were very polite and appreciative of help and showed they have already given the question some serious thought, even if it means a lengthier question. However, some developers prefer questions to be short and concise, which can sometimes come off as rude. I don’t think there is a single formula to develop the perfect “right” type of question. But I think that there are definitely good pointers every computer scientist should know in order to get the most informative and helpful answer to their problem.