Smart Questions, Happy Replies

05 Sep 2023

Power of OpenSource

As programmers and computer scientists, there will always be questions and problems that we can’t solve on our own. It is one of the main reasons that the World Wide Web was created, for people to be able to ask questions, and get answers from experts that know how to solve them. One online resource that many of us has heard of, and may have even used is StackOverFlow, or StackExchange. It is an online community where users can post questions they have about programming, or problems/errors they run into while programming. There are hundreds or even thousands of posts that are created every day, so it is crucial for you to know how to format your questions properly, for it to be a smart question, in order to get a smart answer.

The good

When asking questions, it is important to provide other users enough information to understand if they can help with your problem. In this example post I found on StackOverFlow, the user includes the the problem they are facing, or the goal they are trying to reach, which the user supplies as “Allowing insecure HTTPS connection for Java JDK 11 HttpClient”. Notice in the subject line, they also include the configuration or software they need help solving the problem on, this is to better allow other users to recreate the problem, or have the correct software to help reach the goal.

In the actual post, it is crucial to show other users that you have tried to solve the issue yourself, either by looking through existing online resources, or even searching through the StackOverFlow webpage for existing posts of a similar issue. This post starts off by saying that they had tried an old solution that worked for them previously, however was then superseded by the new JDK 11 API. They then provided a snippet of their code, as well as the errors they get once they run the code in two different configurations. Finally, they put a summary of their findings after doing some debugging on their own, where they were able to find a lead that might be a solution. This process of showing that you’ve at least done some research and work on your own to try and solve the problem not only shows that you aren’t just here for free answers, but also allows the people trying to help you to eliminate options that you’ve already tried. This results in showing competency, as well as saving everyone’s time in solving the problem. The top answer under the post was able to give several solutions to the problem, and most of them provided snippets of code examples they can use to solve the problem.

Link to Smart Question.

The bad

On the other hand, there are millions of users on StackOverFlow, and not everyone knows how to ask smart questions, some may just be desperate for an easy answer for a homework assignment. In this other example I was able to find, although the user does satisfy some of the criteria for asking smart questions, he does fall short on some. The subject line was decently worded, as it contained the problem they are having, as well as the language they are seeing the problem in, in this case it is “Selection sort in Golang”. On first glance, this question screams “homework assignment for a data structures class”, and after reading the contents of the post, it does fit into that category. The user simply provides a reworded version of the question prompt they have on their assignment, with a snippet of the code they have, along with the problem they are having. At least they know the problem they are experiencing, where the code only orders the last element in the array as opposed to ordering the whole array. However, there are no mentions about any debugging they have done themselves, or any research they have done on the internet to look for an answer. They simply posted a homework assignment, and asked for other people to do most of the work for them. When I picked this post, there wasn’t any answers, but there was one comment that was kind enough to help them out. They provided some hints on where the error could be, however at the very end of their comment, they said, “Guessing this is your school work, I do not offer the direct answer”. This time, someone was being nice to the original poster, but you never know when someone might just comment STFW or other lines along those lines, as these type of questions not only waste your time, but also the people reading the post itself.

Link to Bad Question.

Lessons learned

Reading the “How to ask questions the smart way” essay by Eric Raymond as well as doing this exercise not only reinforced the idea of not wasting other people’s time, it also taught me that on the internet, you are not entitled to an answer. When asking questions, we should be grateful that someone took time out of their day to help us on a problem that we are experiencing. The least we can do it thank them, and appreciate them for their time. Another thing that I learned was to not take everything said on the internet so seriously, some are just words on the screen, something that you should just forget about.