Growing up, I often heard the saying “there’s no such thing as a stupid question”. Honestly, I never liked the saying. Yes, I understand that we need to facilitate open communication, especially in the computer science world, and cultivate an environment which is conducive to learning, but there’s a certain point where asking questions doesn’t really contribute to learning. In fact, asking “stupid” questions often destroys the learning process and makes people lazy. Now, before you go and get mad at this point of view, let me present a closer look at what “smart” and “stupid” questions are.
In the world of programming, we see a large amount of questions which are simply not asked with the intent of true learning. It isn’t so much that the question itself is “stupid”, but rather it is the way in which the person asks which makes the question ruin the learning process. Too many people simply try to get an easy answer for a problem without trying to actually understand what is going on. I know this from personal experience. While helping new computer science students, I often get frustrated by their focus on “the answer” rather than on actually learning the logic and programming skills behind the problem. Most of the time, they simply want me to give them the answer, while I sit back and think “if you would just slow down and think through the problem you would have already found your answer pretty easily”. In the world to technology and science there simply isn’t enough time for people to waste on answering questions which are not going to lead to positive learning results.
Now, I’m not bashing newbies to computer science. Honestly, I was in the same spot not too long ago. But I want to help programmers to understand how and why it is important to ask questions in a smart way and which will lead to effective learning. Everyone has to learn smarter ways to do things, especially programmers and software engineers. So, let’s look at some examples of smart versus stupid questions and gain some insight into the smart way to ask questions.
For this Stack Overflow question, the major noticeable thing is the lack of information. The user simply didn’t provide any code or details on what he or she tried previously. Big mistake! There simply isn’t enough information for anyone to help fully solve the issue. By not taking the time to research the problem beforehand and failing to demonstrate a desire to actually learn and understand what is going on, the user destroyed their opportunity to learn and showed their laziness. While someone may answer this question, it probably won’t be that helpful to the user or anyone else since there isn’t much to start with.
Good Question At StackOverflow
In this example, we see a much smarter user who is asking a smart question. First, he details the steps he has taken to define the problem and expresses an understanding of what is going on with his code. After explaining in detail what his code is designed to do and expressing some of the ideas he tried to solve the problem, the user provides a short, to-the-point question about how to solve the issue. By including his code, it is easy to see what he is trying to do and other programmers can look for errors that he may have missed. Also, the user’s explanation of the problem and documented attempts to solve it show that he wants to learn and understand, not just simply “get the answer”. This question may also be able to help others with similar problems because other users can compare their issues with those outlined in the question.
So, you might finally be asking “how do I start asking smart questions?”. First, take some time to think about your question. Do your research and look for information online that may already provide an answer. Second, make sure you understand how your code/program works and conduct tests to determine exactly what the issues are. Third, formulate your question in a way that is clear, concise, and demonstrates your desire to actually learn rather than just get an answer and move on. Finally, (I am only half-joking here) just don’t ask stupid questions. It’s simple, but hard. Asking smart questions takes time and effort, but the rewards are definitely worth it.
Learning to ask smart questions is a process. It takes practice, just like anything else in life. In fact, I’m still working on making my questions smarter. However, if you follow these general guidelines and learn from the examples outlined in this essay you will be well on your way to becoming a smart question-asker. I also highly recommend reading “How to Ask Questions the Smart Way” by Eric Raymond. Remember, there is such a thing as a stupid question - don’t ask it.