How to ask questions
Here's yet another guide on how to ask questions in hacker/programmer/tech circles!
-
So you want to ask a question...
-
What to check first
-
Format
-
Don't ask to ask
-
Asking in private messages
-
What and where
-
The problem
-
The guessing problem
-
The XY problem
-
Prune the boilerplate
-
Changes
-
Being nice
-
So you were told to check this article out or received a weird response
-
No is no
-
RTFM, STFW, lmgtfy
-
Appendix
-
How to search
So you want to ask a question
Here's a comprehensive guide to asking a good question:
What to check first
First off, you want to make sure it's not a super easy question which has been answered before. To achieve that, do a search on your engine of choice first, and if you can't find anything (including in the Issue Tracker), only then
ask a question.
-
Do not, ever, under any circumstances, send anything in a word file, and avoid any office files in general. Trust me on this one, you
will be laughed or shouted at.
-
Never change log files, if you can somehow help it! Remove sensitive data if you really want to (unless you're posting in a forum or
other public channel, this is usually not required).
-
Don't put your emotions all over it. No red text, no excessive emojis (a :D at the end or something is cool, of course), no bold text
to indicate anger (bold is for important details).
-
Make the subject line descriptive, for fucks sake (bold is being used to indicate anger here, to fix it, remove the "for fucks
sake")
Don't ask to ask
Ask the actual question, do not say "I have a question, can you answer it?". This kind of question is really frowned upon, because it
will cause all sorts of difficulties if the recipient is in a different time zone, and it will clog up inboxes.
Asking in private messages
Asking in private messages (from now on, i will just say DMs) is often discouraged because, if someone else has the same problem, they won't
find the solution publicly, but if you ever do want to ask in DMs, here's how:
If you've got a message request system where you ask, make sure to check often and make sure to ask the question once you see it's accepted.
Do not always wait for a "Hello", because many people, including myself, expect the first message to come from the person who asked to DM in
the first place. (However, I will usually say "Hey there!" as a little reminder if you don't ask immediately, but not everyone does this, and
i sometimes forget.)
Now here's how to actually do it:
-
A simple greeting is enough. "Hey there!" is completely fine, I do not expect you to write extremely formally on chat platforms.
-
Though not as bad as in mail, don't ask to ask!
-
Don't follow this article precisely, because as I said, I'm not expecting an email on a chat service. If you want to follow this
article precisely but also want the chat experience, include your tag in the email!
What and where
The first thing you want to specify is what you're asking about and where it happens (in which piece of software, on what website, etc).
Specify clearly the URL to where you downloaded it, or I will infer that you're on the latest version, and that you checked this. If you
don't do either of these, you'll almost certainly get sent a link to this article.
Example:
I'm asking about [projbotv3](https://github.com/tudbut/projbotv3) (latest).
I'm on the latest Windows 10.
The problem
Now you want to write down what your problem is, and what you entered for it to happen. In some cases where it just happened upon start, make
absolutely sure you're following the previous section, and add as many details as you can for good measure. If you're running it from
command line, always add the command line parameters, and also the output of an ls or dir command if the program might interact with
files.
If you can, find a way to reproduce the problem reliably and write down the steps, and at all times, add any information that might be
relevant, even if the chance of it being relevant is low-ish.
Sometimes it is helpful to add a list of things you've done to fix the issue, but that were unsuccessful. This can help people find ways you
have not tried yet, but is not strictly necessary and I don't mind this part missing.
The guessing problem
Many people don't like you guessing, but it's not actually as bad as it seems. Guessing what the problem is can be good, as long as you
provide all the facts that speak for it, and make sure it's actually a good guess. If you have a good guess, check if it might be true by
yourself if you can, before asking the question, and make sure to mention that you tried looking for it and how you tried it, or that you
have not been able to try it.
The XY problem
Describing the actual goal is really important! Do not describe your own idea on how to fix it without mentioning the actual goal. This can
lead to a situation where there is a much better solution not involving your idea, but people thinking your idea on how to get to the goal is
actually the goal. Here's an illustration:
X <- Your goal
|\
| \
The solution -> | Y <- Your idea
| /
|/
You
Prune the boilerplate
Being nice is good, and not boilerplate, but "Is there an answer to this problem?" is unnecessary. "Can you help me?" is fine with many
people and I find it nice, but some folks will reply "Yes, I can". Of course, this is not nice, and I do not encourage it (especially because
it doesn't even help the exchange, it only makes it take longer!), but it can absolutely happen.
I personally do not mind "boilerplate" at all, and find it can actually be helpful sometimes, but if you're asking other people, this
might not always be the case.
Changes
If you're reporting a problem that recently appeared, make sure you haven't changed anythign on your system first. If you have not, check if
you have recently installed a newer version of the problematic component, and if so, mention that!
Being nice
Being nice is a really important component. It doesn't substitute for a good question and format, but it is always helpful and makes people
want to answer your question more, or just makes them feel better if they're having a bad day. Don't be excessive, that can make it feel
sarcastic, but a "Thank you" of any kind is always appreciated.
This applies to responses as well.
So you were told to check this article out or got a weird response
That probably means you messed up a question, or a response.
No is no
If you ended up here, you probably continued asking the same person after they've said "no". If you felt extra brave, you might even have
told them you would pay for a solution. This kind of thing is going to absolutely kill your likability, and is an easy way to get a
response like this, or to become a part of an article on how [not] to ask questions:
Bob:
Like do you know how to make a code that tricks the client into thinking that you are a discord staff (flags property to 1) (clientside only)
TudbuT:
no
Bob:
I will give u pc game pass
1 month
Code
Credit card
Required
TudbuT:
a) i dont use xbox live
b) learn to accept that when i answer "no" to "do you know how to ...", that means i do not know, and not that i want money to tell you
RTFM, STFW, lmgtfy
If you receive any of these, you are being told to Read The Fucking Manual, Search The Fucking Web, or someone
is saying "let me google that for you". The person who sent these is probably annoyed right now, so take a break and do what you're being
told: or STFW. If you've received a "lmgtfy", that means the person who sent it is being nice but very passive
aggressive about it, and you can probably get away with not taking a break and continuing to talk.
In any case, the best response is "Sorry".
Appendix
How to search
Template:
first try: ${software_name} ${error code or stack trace}
second try: ${software_name} ${error code or stack trace} ${OS}
third try: ${software_name} ${error code or stack trace with potentially irrelevant info removed}
forth try: ${software_name} error ${error code or stack trace}
fifth try: ${software_name} error ${error code or stack trace} ${OS}
sixth try: ${software_name} error ${error code or stack trace with potentially irrelevant info removed}
In both cases, make sure to remove any paths to local directories, your user name, or anything else unique.
If you don't find anything and have tried many variations or anything else you can think of, now is the time to ask the question.
Contact me
Discord
|
TudbuT#2624
|
E-Mail
|
discuss-questions@mail.tudbut.de
|
~TudbuT