Asking Mindful Questions

12 Sep 2024

Introduction

Have you ever heard someone say “There’s no such thing as a stupid question”? Eric Raymond may beg to differ, and he has some good points to support it, especially in the world of software engineering. While often you are coding on your computer, programmers, or in any profession for that matter, workers are typically part of a team and working towards a common goal. However, how are you supposed to understand what the goal is or help or get help from others if you can’t communicate correctly? You can’t. Communication is a crucial skill for everyone to have. The better you can communicate with others, the more of a chance they will be able to understand the point or even question you are trying to get across. Within this essay, we will touch upon what it is to ask a question the “smart” way and the “not so smart” way.

Smart Question

Someone may ask, what is a smart question? According to Eric Raymond, a good question will possess some of the following qualities: Being clear with what the problem is, symptoms that you are running into, some background (type of machine you are running or what platform/application), steps you’ve tried, researching and trying to understand the problem on your own, etc. I will link an example of a “smart question” from StackOverflow for you to look at.

Within this example, the person asking the question is having trouble with HTML. Specifically putting a heading (‘<h5>’) inside of a summary without messing up the arrow. Within this example, the user starts by explaining what he is trying to do and provides code along with it. They also explain why they did it that way and what happens when they try fixing it. They then finish it off by saying what they are trying to accomplish and specifically what their question is. A “smart question” indeed. Someone replied with a “smart” answer. The person answering first explained why the user was getting that problem with an example code. Then offered a solution to their code with a snippet of how it should look. The user was able to get a concise and probable answer due to the caliber of their question.

Not so Smart Question

Now to talk about not-so-smart questions. Essentially a not-so-smart question is the antithesis of a smart question. While on StackOverflow while there are many good questions, there are a handful of bad ones. Eric Raymond says that before asking any question on the forum you should do things like searching the forums for someone answering it, searching the web, reading the manual, reading a FAQ, reading source code, etc. I really bad one is when people just straight up post their whole code into the question and ask someone to help them fix it, typically someone trying to get answers to their homework problem. While I had a hard time finding a really bad question, I found one that breaks one of the rules above. The example can be seen through this link.

As you can see the user asks a very simple question about how to exit vim. They provided a snippet of what it tells them to type to exit and what happens when they do so. The user then expresses that it just appears in the object’s body. This seems like a very simple question, and probably one that could definitely be solved by typing it into a search engine like Google or even reading Vim documentation. Despite being a very novice and simple question, the user was reluctant enough to get very kind and detailed help from other people on the forum. Within the answers, you can see that people are giving step-by-step instructions, other commands to remember, and even posting diagrams that help answer the question. While this answer shows a not-so-smart question getting positive results, that is not always the case. Depending on the severity of the type of question, you may get ignored or even downvoted. Though they got their answer, it would have been better if they searched it up online or read the documentation to get the answer.

This experience taught me the importance of proper etiquette when asking programming questions online. While many experienced programmers are willing to help, it can be tempting to post every problem without first trying to solve it yourself. However, these forums are not magic solutions — they are communities of real people with busy lives. They don’t want to spend time answering questions that could easily be resolved with a quick search. Before asking for help, it’s essential to try solving the problem on your own, do some research, and be considerate of others’ time and effort. If you are going to ask a question before to ask it in a mindful way.