Reflect_On_Smart_Questions

31 Aug 2018

Asking question is the thing that we do everyday in our life. Whenever we encounter some troubles or problems, we will ask question for help. As a software engineer, our job is related to communication and coding. Communication plays an important role, thus how to ask a smart technique question is a useful skill that software engineers require to have.

Through read the questions from StackOverFlow, I find a question that fufill the precepts for smart questions(https://stackoverflow.com/questions/51771206/is-java-util-random-really-that-random-how-can-i-generate-52-factorial-possi). The title of this question is “Is java.util.Random really that random? How can I generate 52! (factorial) possible sequences?” and the description is “I’ve been using Random (java.util.Random) to shuffle a deck of 52 cards. There are 52! (8.0658175e+67) possibilities. Yet, I’ve found out that the seed for java.util.Random is a long, which is much smaller at 2^64 (1.8446744e+19).From here, I’m suspicious whether java.util.Random is really that random; is it actually capable of generating all 52! possibilities? If not, how can I reliably generate a better random sequence that can produce all 52! possibilities?”. This question fits the characteristics of smart question, first, the question is clear so people know what he is asking about, second, the author is not simply asking for an answer, in the description, author showed the his work process and he wants other people to point out his errors or to to agree with him. As Eric Raymond said in his essay, “Good questions help us develop our understanding, and often reveal problems we might not have noticed or thought about otherwise. Among hackers, “Good question!” is a strong and sincere compliment.”(Raymond E., How To Ask Questions The Smart Way, 2014). A good question should encourage people to notice the problems that they never seen and it should be challenge so it can help us to develop our understanding. There are 7 answers for this question and they all provide efficient help and show the details of working processes. We could see that this question leads to efficient help.

I also find a question that is not smart way.(https://stackoverflow.com/questions/52213721/how-to-create-a-grid-of-images-using-masonry). The title of the question is “How to create a grid of images using Masonry?”, and the description is “I am still a beginner at web development so I need some help implementing Masonry. How can I apply Masonry to multiple images to create a photo grid similar to Tumblr’s design? Is there a way to do this with just HTML and CSS?”. This question does not count as “smart problem” because it is a question that could find answer through web and it is about basic information. There is only one answer of this question. So I think this question does not encourage people to think deeply. Thus it is not smart question.

Overall, I find out that smart question should lead people to think and to discussion. It also should be challenge so that people will have interest to solve it. And it better be the problem that people never notice about.