The Art of Asking Questions

07.23.15

What is the meaning to life the universe and everything? The answer: 42. This famous gag line from The Hitchhiker's Guide to the Galaxy shows how meaningless an answer can be when put outside the context of a good question. As we progress in our tech careers, one of the most fundamental skills we will need is the skill to ask good questions. So in this blog I will break down the patterns of both good and bad questions to help identify what features will get your questions answered.


After trolling Stack Overflow for 30 minutes, I noticed that good questions are broken down into small chunks. The question is either very short to begin with, or if it's very long, the author broke the code blocks into small, digestible chunks with plenty of comments on the features of each chunk. Breaking a large problem down into smaller pieces is a bread and butter skill in tech, and often times it is quite hard to do. So doing this grunt work before you ask the question shows that you have thought through the problem quite a bit and had put in the effort to solve it by yourself. Often times when I was stuck on a coding problem, the roadblock was something simple like a certain method that I didn't know about, or a basic concept that went over my head.

I noticed that most questions that didn't get answered violates this rule. They posted gigantic pieces of code sample in their question and offered no comments to explain the code. This problem can be ameliorated by simple formatting changes. Nobody wants to scroll through pages of continuous code just to decipher what you are trying to ask. Most people find the sight of a giant code block psychologically daunting, and they might not even bother digging into it, even if the logic of your code is simple and easily understood. So if you want your question to be answered, make sure it is likely to be read at first glance.


Yeah...nobody is going to read that

The most obvious way to show that you have tried to break the question down into the smallest piece possible is to make the title of your question very specific. Although I don't know enough about programming to understand the specifics, I understand why the question with the title: "What does :provided mean in profiles.clj?" gets answered, while "Multiple Projects Visual Studio 2015 npm" doesn't. The first question's title is specific enough that people who click on the link already has some idea what the situation is going in, while the second question title is too vague to give people a reason to click it.

The ability to ask good questions, like any other skill, will improve with practice. One of the most effective way to learn is to learn through mistakes, so your question asking skills will improve overtime even if you ask some bad ones when you are starting out. But it is crucial to break down mistakes you make and isolate reasons and key takeaways, this allows you to recognize certain patterns of good and bad questions and use them as guidelines. When you analyze a question, checking it against these guidelines is a very effective tool. As long as you think about the reasons that lead to your failure, and don't repeat the same mistakes in the future, you will be on a steady track to success. As Albert Einstein once said: "Insanity is doing the same thing over and over again and expecting different results."