In one of my rabbit hole adventures on the internet, I stumbled across an article written by Eric Steven Raymond called How To Ask Questions The Smart Way. Turns out, I haven't been asking efficiently on StackOverflow and I get flak and downvotes for that. Just like reporting a bug, there's also a smart, efficient way to ask questions on the web (and avoid weird comments).
This article will be one of my first in a commentary format. Which means, I'll copy some text from the site and I'll make my comments here. I won't even go through the whole article. Just the ones I find usable in general between programmers and other professions. It's my own space, and... yeah, well, it's just like my own opinion, man. There will be more posts of this format to follow. When I feel like writing up. Ha.
This guide will teach you how to ask questions in a way more likely to get you a satisfactory answer.
Truth be told, not everyone on the internet is smart. Or in real life in general. And sometimes, we seem dumb because we ask a question. And we seem even dumber when we ask a dumb question. Asking questions is a huge part of life. That's how we learn. If we took a bit of time to carefully construct an inquiry, we might learn even faster. And get less confused with answers. Right?
What we are, unapologetically, is hostile to people who seem to be unwilling to think or to do their own homework before asking questions.
Hehe.To be honest, there are times I didn't do my homework and did the lazy thing: posted on a forum without trying. Becoming an experienced user, this is actually annoying to see. So to prevent any hostility, read up and learn how to ask the smart way.
While it isn't necessary to already be technically competent to get attention from us, it is necessary to demonstrate the kind of attitude that leads to competence — alert, thoughtful, observant, willing to be an active partner in developing a solution.
Hits home. People would be more helpful towards you if you take your part. If you formulate your questions well. If you did your own research. If you tried.
Before asking a technical question, do the following:
- Try to find an answer by searching the archives of the forum or mailing list you plan to post to.
- Try to find an answer by searching the Web.
- Try to find an answer by reading the manual.
- Try to find an answer by reading a FAQ.
- Try to find an answer by inspection or experimentation.
- Try to find an answer by asking a skilled friend.
- If you're a programmer, try to find an answer by reading the source code.
Seriously. 7 steps. SEVEN. It's impossible you could still have a dumb question after doing all of those. If you industriously tried each one, you would most likely find what you're looking for between steps 4 to 7. Be part of the answer, put some effort in it.
However, I usually do 7 before number 6 though. Internal before external. Because if my friends were like me and I asked them, they'd ask back if I checked the code. Hehe. Some friends.
I'd also like to elaborate on step 5. This is like reporting a bug. What scenarios did you try? What were the results of each scenario? Can you deduce to a factor that's affecting the outcome? Include the results in your question and "display what you have learned from doing these things. We like answering questions for people who have demonstrated they can learn from the answers."
Never assume you are entitled to an answer. You are not; you aren't, after all, paying for the service.
This. People go on forums and expect an answer. It's a free forum. We're freeloaders. There are rare generous souls who give us help but don't expect it. Your hopes of having your question answered, however, would be higher if the question was well crafted.
Hackers blow off questions that are inappropriately targeted in order to try to protect their communications channels from being drowned in irrelevance.
So choose the venue of your inquiries well. If you are unsure, do a bit more research about that or ask a friend about where.
There is an ancient and hallowed tradition: if you get a reply that reads “RTFM”, the person who sent it thinks you should have Read The Fucking Manual. He or she is almost certainly right. Go read it. RTFM has a younger relative. If you get a reply that reads “STFW”, the person who sent it thinks you should have Searched The Fucking Web. He or she is almost certainly right. Go search it.
See my amazing flowchart above.
Much of what looks like rudeness in hacker circles is not intended to give offense. Rather, it's the product of the direct, cut-through-the-bullshit communications style that is natural to people who are more concerned about solving problems than making others feel warm and fuzzy.
Richard Needham said that people who are brutally honest get more satisfaction out of the brutality than out of the honesty. And sometimes, I think it applies here. Not all, but I'm sure there are some who just enjoy shutting newbies down in a way that will make them shy away from asking in the same forum ever again. But...
When you perceive rudeness, try to react calmly. If someone is really acting out, it is very likely a senior person on the list or newsgroup or forum will call him or her on it.
When this happens, the worst thing you can do is whine about the experience, claim to have been verbally assaulted, demand apologies, scream, hold your breath, threaten lawsuits, complain to people's employers, leave the toilet seat up, etc. Instead, here's what you do: Get over it. It's normal.
So just maintain being courteous and polite. See if the reply makes any sense and if there's any value in it despite the negativity. Try not to be onion-skinned and be easily butthurt.