Stack Overflow is known for being the one of the best resources for developers to get answers to their questions. It truly is a treasure trove of information where you're guaranteed to get an answer. But I find asking a question can be a little trying at times and this is coming from someone like myself who has been a Stack Overflow user for around 11 years.
I wrote my last Stack Overflow question (now deleted) middle of last year with the feeling of ineptitude after within a matter of 15 minutes my question was hit with downvotes with no clear explanation. As I stated above, I'm not a Stack Overflow novice and understand how to ask a question and adhere by its strict guidelines.
I don't think downvoting has any correlation with what users historically faced where there were reports of the platforms toxic nature. I can see Stack Overflow has made active steps to be more welcoming and inclusive to developers of all experience levels so they won't experience what I previously called "Question Assassination", where a question is posted and some (if not all) of the following could be experienced:
- Downvoting to oblivion
- Comments linking to "How to ask a question"
- Marked as low-quality
- Comments with a hint of condescending attitude referencing the inadequacy of the question
There have been less of these negative interactions over the years and the Stack Overflow community seemed to have turned a corner. But there are still cases of "trigger-happy" downvoting that still runs rife.
On a personal level, I've received downvotes from questions where I didn’t fully grasp some of the core concepts of what I was asking. - Something that can happen to anyone who is learning something new. You would think this is what a Q&A platform is for. For some well-seasoned Stack Overflow contributors, there seems to be an expectation for a set level of understanding of the question you ask, which can all be very subjective.
At times it feels like questions are downvoted before they even have a chance to properly be nurtured.
Downvoting without any form of context should not be allowed, making it compulsory to add a comment as to the reason why a question is not up to par. This in turn will provide guidance on what improvements need to be made to make the question more adequate. - As long the comment doesn't form judgement on why the question was asked in the first place. For example:
I downvoted because these "How can I do task A without using obvious language features X, Y, or Z?" questions are silly puzzles which have no place in serious programming, and essentially no value for future readers.
A comment like that would fall under my "Question Assassination" criteria. This type of criticism is not constructive to the individual asking the question.
When down votes are accumulated in such quick-fire fashion, the first inclination is to delete the question so lost reputation points can be regained and to also keep a clean track record on your profile. I have done this very thing in the past as I fear this displays ineptitude.
But maybe I should be looking at downvotes from a different angle...
I believe that developers like myself need to develop a thicker skin and not be too concerned with the number of downvotes received, instead viewing it as a learning experience in order to grow and become better. When we ask a question, we have just as much of a role to play in nurturing it to make it better from the negative responses, and given enough time, a question may make a turnaround where the number of upvotes negates the number of downvotes.
Guide To Asking A Question
Everyone needs to remember Stack Overflow is a very different type of forum, where serious time needs to be invested into writing a concise question. No stone should be left unturned when it comes to providing what has been attempted and context to what is expected from the successful execution of problem code.
Hopefully, there will be less chance in receiving negative feedback if these steps are followed.
1) Has The Question Already Been Answered?
There is a high likelihood your question to some degree has already been asked before. Stack Overflow provides a list of similar posts as you write the post title. Do not ignore these posts and give them a thorough read as they may help.
If none of the previously written posts does fit your use case, you have a basis to post your question. To ensure the question does not get marked as a duplicate, it is a good idea to refer to the questions you have already read and how your scenario differs.
2) Spelling and Grammar
Proper use of grammar should be used along with correct spelling to ensure readability and understanding to a wider audience.
Moderators will not look so kindly to a poorly formatted post. Most importantly, a badly formatted post does a disservice in getting a prompt answer to your question. Use code blocks, lists and headings for easier reading.
4) Examples, Examples, Examples
Provide as many code samples that demonstrate what you've attempted to resolve the issue. Without sufficient code samples, it's difficult for someone to assist. As stated in the "Formatting" section, ensure code blocks are used.
I come to the conclusion that asking a question on Stack Overflow is unlike any other Q&A forum where any type of question is openly accepted for what it is with minimal guidelines. I can't fault the tight grip its moderators have in attempting to retain the quality of both questions and answers. However, I do think there is a persistent issue with how a question is nurtured regardless of the quality it is perceived to be.
Stack Overflow is run by a passionate programming community of experts who set the bar high in what is expected when a question is posted and there is a lot to learn from them if done correctly - free of rudeness and demeaning responses.
As painful as it is to be downvoted, I'll try to be a little optimistic and not take it personally as it's the type of constructive criticism you won't get anywhere else and just might make you a better developer.