Back to top

How to ask questions

Here's yet another guide on how to ask questions in hacker/programmer/tech circles!
  1. So you want to ask a question...
    1. What to check first
    2. Format
    3. Don't ask to ask
    4. Asking in private messages
    5. What and where
    6. The problem
    7. The guessing problem
    8. The XY problem
    9. Prune the boilerplate
    10. Changes
    11. Being nice
  2. So you were told to check this article out or received a weird response
    1. No is no
    2. RTFM, STFW, lmgtfy
  3. Appendix
    1. 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.

Format

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:

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