In the age of the internet where there are libraries of information accessible within our fingertips, all we have to do is ask. But the truth remains when asking a question online, not all questions are created equally. Asking questions is a skill, some people are good at it and ask smart questions, while others ask very dumb questions. Generally a smart question will likely get more helpful answers than a dumb question. Learning to ask smart and good questions is a very handy skill to have, especially for programmers, because when writing lots of code, chances are that you will get stuck on something that no matter how hard you try, you can’t solve it on your own. Afterall, if you are writing hundreds of lines of code, there might be some unforeseen interactions between the code that you might not be aware of. If you ask a dumb question, then people will be less inclined to answer it than if you were to ask a smart one.
One of the most popular sites that programmers use to ask questions is StackOverflow. To get a clearer understanding of what constitutes a smart question and what constitutes a dumb question, let’s see some real questions from StackOverflow and analyze them.
Question title: How can I split a pipe-separated string into a list?
I have this string:
var(HELLO,)|var(Hello again)| var(HOW ARE YOU?)|outV(0)|outV(1)|outV(2)|END
I want to split it on the |. I don't want it to split at the white space, only at the |.
Is this possible?
There are multiple reasons why this question is a bad question. The most obvious answer is that it is a very easily Googleable question. I was able to find the answer quite easily by using the search term “string split python” and clicking on the first search result. This shows that the person that is asking the question was quite lazy and didn’t even consider other options of finding the answer on their own. The next reason is because this question has been asked and answered already by someone else. This shows again that the person who asked this question was too lazy to search to see if anyone else had asked the same question on StackOverflow and went straight to asking their question without putting any thought into the matter. The only answer that they eventually got is basically: a link to the python documentation and an example of how to use string.split(). Link to question 1.
The next question is titled “Why is processing a sorted array faster than processing an unsorted array?” The user then copy and pasted the code that he used in C++ and Java where it goes through a sorted array and a unsorted one where order shouldn’t matter and the time it took to finish the tasks. Link to question 2.
To me, this is a smarter question than the previous one. First of all, this isn’t Googleable because it mainly talks about the interaction of the code rather than what some code does or how to code something. This code also shows what the person who is asking the question did so others can copy and paste his code and experience it for themselves. When going further into details about their question, the asker is very concise; none of his words are wasted. This question has a total of 29 answers with the best one using an analogy to better frame the question and the resulting answer.
There are many things different between a smart question and a dumb one, as shown in the two examples, but I believe the main difference that can’t be overstated is that the person who asked a smart question usually put more thought into it than a person who asked a dumb question. People often forget that asking questions on the internet is the same as asking questions in real life. All it takes to turn a dumb question into a smart one is just a bit more thought.