As I start to work on more complex projects for ICS 314, there are bound to be problems that require help from the people of the internet. In order to get good responses on how to solve these problems, I need to know how to ask smart questions. A smart question is concise, descriptive, and shows the ways I have tried to solve or research the problem. It also includes an easy way to respond, a clear goal, and courtesy. The following questions are examples of a bad question then a smart question.
This question is an example of a bad question. The user asks about where they can find a “good” Javascript API, how to use Javascript in the real world, and why is it so hard to find documentation. This question is rather vague and left open-ended which makes it harder for people trying to answer the question. A “good” resource is subjective and it is hard to get into detail when the question does not specify how they want to use Javascript in the real world. The user is also not descriptive of the resources they have used to conduct their research. They mention books and videos but do not describe which books or videos they have used. The question even includes grovelling in the beginning, saying they are frustrated with Javascript, which is unhelpful to the question. At least the user included some “please”s in there.
This question is an example of a smart question. The user asks for details about the “use strict” statement and if current browsers respond to the “use strict” string or if it is for future use. Right off the bat, the user states what software they are using and the problem they are getting with an error message. This keeps the question concise and gives background information on the problem. Then, the user states the research they have done but was still unable to fully understand the statement. This is important for a smart question because it shows that the user did try to solve the problem on their own before asking for help.
Asking smart questions is important for software engineers because efficiency is a large part of the job. Getting quality work done in a timely manner is key to becoming a good programmer. As such, it is important to get help when we are stuck with something so that we can continue moving on. However, in order to get meaningful feedback, we need to format our questions in meaningful ways. By doing so, the answer that is received will also be concise and useful which will help to quicken the completion of projects.