Eric Raymond’s How To Ask Questions The Smart Way provides a helpful guideline when it comes to asking technical questions. The introduction of the document provides an excellent insight into what kind of mindset makes a question good vs bad. The distinction between winners with well formulated, thought-provoking questions, and losers highlights the important distinction between making progress and wasting the time of those around you. There many helpful tips to possibly even find the answers without requiring posting to a forum in the first place (such as through a google search or through previous posts on a specific forum). Taking the time to ponder your topic and actively engaging to attempt the problem are likely to provide better/helpful results. Demanding someone else to solve a problem that you have no interest in attempting does not improve your skills as a programmer, and will only serve to hinder you.
The StackOverflow question here provides an excellent example of how not taking a moment to develop your question in a smart way can lead to inefficiencies and a waste of time for anyone involved. The OP (original poster) begins by describing the problem they are having with reading files with a particular file name. If you feel like that is vague and uninformative as to what problem the original poster is having, then you will not have any luck from visiting the post for further detail. After that brief description, a snippet of code is posted followed by the question: “Could anyone tell me where am i doing wrong!?”. As you can probably imagine the comments on the post are only as helpful as the post itself. There is constant back and forth between the OP and those in the comments who are constantly asking for more information or detail, or linking to external documentation, as OP does not provide enough detail or effort into describing what they are attempting to do. It is not until you read to the very last comment on the page that OP provides information that the project they are attempting to build is a spam filter, leading to an unrelated answer and wasted time. After 2 edits it appears OP was never able to solve the issue they were having, as they posted more snippets of code without attempting to further communicate which parts of the problem they needed assistance with. It feels as if OP was asking for other members to solve their homework problem.
Now consider the most upvoted posted on StackOverflow Why is processing a sorted array faster than processing an unsorted array? The question provided here is an example of what constitutes a “smart question”. For starters, the OP of this question is not asking for anyone to tell them where they are doing wrong. The question title itself provides a clear demonstration of the problem that OP is trying to accomplish. OP is clearly demonstrating in the post that they are trying to understand why a segment of code runs faster on sorted data vs unsorted data and provides examples of what they have attempted in order to understand the issue. As a result of OP taking the time to formulated their question in a constructive manner, they receive productive answers. The top answer provides a well-formatted insight into both the concept behind OP’s topic, and highlights which section of the code is causing the issue.
By showing that they are committed to solving their problem, OP attracted the attention of others and inspired them to work together to form a productive discussion. StackOverflow and other forums are not homework solving boards for one to reference so that they can avoid thinking. The level of effort a poster puts into solving a problem is going to be reciprocated by the commentors. If you don’t want to take the time to think through your situation, why should others? Put the effort into your research now so that you can save yourself from the hassle later.