In the world of technology, things are constantly changing and evolving. Coding languages are created and updated, newer, faster, and smaller technology are created every day. If one wishes to be a good software engineer, they must be able to keep up with these trends and adapt, and they must also be very knowledgeable with a sharp intuition on how to solve problems…or so one would think. While, to a certain extent, this is true, this doesn’t mean that the software engineer must be a perfect genius. Humans are imperfect beings, and it is quite unreasonable to expect one to be able to keep up with the pace of such a rapidly advancing field as technology. At the very basic level, one must simply be able to recognize that he/she needs help, and must also be able to efficiently and effectively find such help.
In an attempt to demonstrate what kinds of questions are efficient and effective and what kinds of questions are not, according to Eric Steven Raymond’s “How To Ask Questions The Smart Way”, I searched through questions on StackOverflow, and found the following: First of all, look at this question. There are many things to notice here. First of all, the questions is to the point and insightful. The code that the user is enquiring about is there in its entirety, and the section in question is highlighted separately from the entire source. In addition, the enquirer has put their own thought into trying to figure out the answer to his question before resorting to ask for help: he has already guessed that maybe the language in question was the problem instead of the code, but found out that this wasn’t true. He also provides insight into his train of thought, saying that he believes that “order should not matter.” Finally, and perhaps most importantly, the quetion is written in perfect English. In short, this question exhibits nearly everything about what a smart question should look like according to Raymond, and the answers provided reflect this. By demonstrating a desire to learn and giving other users something to chew on, he has inspired another user to write quite the lengthy and detailed response, complete with examples, pictures, and even updates.
On the other hand, take this question. There are countless things wrong with this question. It blatantly asks for help on a homework problem, is extremely short and lacking in detail, and overall just does nothing to inspire someone to even attempt to answer the question. The user asking this question has clearly put no thought or effort into trying to solve the problem on their own, and is simply trying to have someone else on the internet solve their problem for them. In addition to not receiving any answers, the person asking this question has also been downvoted; a clear sign that no one wants this question answered.
If you’re going to ask a question, you must first produce your best effort at finding the answer to that question with your own ability. If you cannot demonstrate that you’ve even taken a shot to solve the problem on your own, people will be unsympathetic and will think that you are simply trying to make them do the dirty work for you–which, to be fair, if you haven’t done your best to solve the problem first, you are. Knowing to to be consistent, concise and curious to learn more will most certainly be characteristics invaluable to one as a computer scientist.