Be Smart To Be Smarter.

24 Jan 2019

A famous proverb goes: Better to ask the way than go astray. It says we need to ask when need to, or the consequence becomes bad. Yet, there are some people who do ask, AND go astray. Well, it does sound a pity that someone needs help and asks for help, but he gets lost anyways. However, this is common on the Internet, and is really relevant to us as programmers.

One might say; thanks to the Internet, we can find anything on the Internet, and that’s the virtue of this field. Online resource is abundant. We have plenty of free online tutorials. Although that seems convenient, sometimes you might face trouble and chances are that you cannot easily find source that is specific to your situation. Why? It is because there are plenty of programming languages with different release versions, and so are operating systems. What about the compiler? Furthermore, even your IDE software can mess up with your code. Everybody works on a different environment, thus the variety of situation you face becomes too complicated and specific. This is exactly why your question can be unique and specific, thus making it hard for you to find a detailed solution that works for you.

Lesson learned? Your question is special. Therefore, when you ask a question, you need to be good at describing your situation well. But how?

Thankfully, an American software developer, Eric Steven Raymond, gives you guidelines about how to be good at asking questions: “How To Ask Questions The Smart Way.” Based on advice provided, I found a “smart” question, and “not smart” question on Stack Overflow that both help demonstrate Eric’s point.

Here is an example of a “smart” question: How to install JAVA 8 on Mac. The question describes how the person tries to install a new release version of JAVA, but it is not properly installed in the correct location by the installer as the person wants. First of all, the header is precise, and descriptive; as soon as you read the header, you can know that the person is trying to install JAVA 8, not just any JAVA, on Mac. Then on the body of the question, the person goes even further. All the versions of the programming language, version, IDE software, and operating system are clearly shown. The person describes how s/he tried couple of commands but all failed. The question is clear about how the installer puts the file wherever and how that is problematic. At the end, we can again see what the person really wants to know and how the problem can be solved. As a result, the answer provides a good solution. All the following comments show how the question is time-sensitive thus everybody is referring to the version of softwares they are talking about.

Unfortunately but expectedly, some questions are asked in a “not smart way.” I hope this could be a good example of such: Constructors giving me an headache Java Basically, the body of the question looks like someone just copied and pasted a homework assignment. To begin with, copy-and-pasting the assignment does not help acquire any knowledge. Then, instantly, you can notice how the header is NOT helping us understand the nature of the problem. On the contrary, the header even confuses you, because the question is not that relevant to constructors. The tone of the language seems a little bit rude and arrogant. It skips the first element of the assignment list and what the person wants to be done is pretty unclear. The version of Java is not shown. It looks like the person wants help but with what? What is help in this case? As a result, the answer is just a code, without no explanation. I am not to blame on the answer, because the question itself is unclear. Copy-and-pasting, attitude, and vagueness lead to this question being rated so low, and I agree with that.

It might sound tough that you have to be good at asking questions. However, it is a skill that we have to develop, and it really helps you make the Internet the strongest tool ever to acquire infinite knowledge. It connects you with immense number of experienced developers in the whole world. All you need to do is ask, but in a “smart” way.