Everyone has the right to ask questions whether it would be simple or complicated. Let us not forget that everyone has the right to answer your questions or not. How can we make it so that people would want to take their time to answer our questions? The answer is to ask a smart question.
As a computer science major, there were a lot of times when I had to ask questions about my work. I believe many of the questions I asked were not-so-smart questions. Why do I think this? My professor would give me a tiny hint and say “think about it.”
Smart questions are essential for smart software engineers. What is a smart question you ask? Smart questions are questions that are asked to the right people while making sure that there was an attempt to find a solution before it was asked. Asking smart questions will help you get the answers you need while possibly learning more things. Fellow smart software engineers would be more likely to use their time to go in-depth with their answers.
To learn more about what a smart question is, lets take a look at this question found in StackOverflow.
In this question, the user asks a question on why an optimization of the code will result in it not doing anything. This is an example of a smart question because the user displayed that they looked into the code before asking. His claim about the code’s readability issue provides support to my reasoning. Furthermore, he provides a great explanation for his question. He explains his professor’s statement and then makes it clear that he does not understand why it happens.
As a result of this smart question, the user received a good answer. The answer provided many references to other websites or articles that could aid the user along with an explanation from the answerer.
On the other hand, let’s look into what a not-so-smart question is. Here is an example from StackOverflow.
In this question, the user provides a problem where they must find the sum of the values from two tables. By looking at this question, you can easily see that this shouldn’t be called a question at all. To me, it looks more like a demand. Sure the user is very straightforward with what their problem is, but the user does not show that they made any attempt at solving this problem himself. It really feels like they are asking the people on StackOverflow to do their work for them. To make this a smart question, the user should have made sure they provided some evidence that they really tried their best to solve their problem. Luckily, the user was provided a straightforward answer to his question.
After learning about what a smart question is and seeing it directly from StackOverflow, my views about StackOverflow changed. Before, I thought that StackOverflow or other programming forums were just for getting free answers. You can just put your problem there and wait until someone solves it for you. Reading Raymond’s article about smart questions threw my old views into the trash and made me see that StackOverflow is truly about learning from other people or teaching other people. These discussion forums are made to discuss and learn, not to copy some solution and call it a day. In the future, it is inevitable that I would use StackOverflow for my benefit. Thanks to this experience, I will use it the smart way!