There will come a time in your life where no matter what you do, you just can’t seem to find a solution to a problem. You have asked your friends, searched on Google, searched on specific websites relating to the topic, read manuals, and still cannot seem to find any information on it or do not understand the things you have found online. The only option left is to ask strangers for some help. For programmers, this is where websites like Stack Overflow comes along.
Stack Overflow is a website where people ask questions about anything to do with programming. Other people in the community take the time to answer these questions or give out advises to guide users in the right path to finding the solution. Although Stack Overflow is there to help anyone who has a question, the types of questions a person asks will determine how great of an answer they will receive, if they receive any at all.
Programmers on stack overflow are extremely busy people, but they still take the time to answer questions because they want to help others to become great programmers. Since they are taking time out of their busy schedule and putting effort into sharing their knowledge with the community, you should also put in time and effort into asking a “smart question”.
A smart question is a detailed question that is very clear on what exactly the problem is. It is very important to be precise and informative about the problem. You should describe what the problem is exactly, the environment it happened in, the research you did and what you took from it, and the steps you took to try solve the problem. You should show them the problem instead of just vaguely asking for their help and saying so and so is not working. This helps save time for both you and the person answering the question so they do not have to reply with another question asking for more detail. Asking smart questions is very important for software engineers because then they will be provided with very thorough and informative answers.
How you ask questions, reflect on the type of person you are. Asking a vague question on how to fix something and why it is not working is a dumb question. Even if you did previous research and could not find the answer, this will make you seem lazy and just want the easy way out by having others provide you the answer without you putting in some effort first. These types of questions will generally not be answered or will be provided with an answer that is not satisying.
Click here to see an example of a smart quesion on stack overflow. This user has clearly stated what the problem is, showed examples of how she tried fixing it, the problems/errors that showed up, and places she has browsed. People replied with different techniques the user could use, which approach is less efficient, and links to where she could find more information about her topic.
Now, Click here to see a dumb question and look at the response. The responder hit her with the “RTFM”. The type of answer definitely reflected on the type of question she asked.
Through this experiment of searching for smart and dumb questions on stack overflow, I have seen the different types of answers depending on different types of questions. If you put in effort, so will the person on the other side of the screen. If you don’t put in effort… don’t expect much back in return. Just remember, “What you give is what you get.”
Eric Raymond does a great job in explaining what a smart question is and provides guidelines on how to acheive effective interations with the open source community. He includes examples of what kinds of questions you should and should not be asking and gives us an insight of what people who answers questions are thinking when they see a smart or dumb question. After reading his essay, you will soon enough be a pro at asking well thought out smart questions! I highly recommend reading his very interesting and informative essay How To Ask Questions The Smart Way.