Hans Fangohr, Computational Science
  • Computing home
  • Pages
  • Printing to pdf
  • Linux
  • Python Applications
  • LaTeX
  • ImageMagick
  • Python
  • Asking smartly
  • reStructuredText
  • Units
  • Ubuntu
  • Octave
  • Python installation
  • fonts
  • SublimeText
  • Dvorak keyboard
  • Mercurial Hg
  • Home HF
  • |
  • Computing
  • |
  • Asking smartly

1 Asking the smart question…¶

… to get a (useful) answer

[Last reviewed: June 2021 for Uebermag.]

Based on http://www.catb.org/~esr/faqs/smart-questions.html, somewhat shortened and rephrased.

Contents

  • 1 Asking the smart question…

    • 1.1 Introduction

    • 1.2 Before you ask

      • 1.2.1 Do some work yourself

      • 1.2.2 Think how to phrase the question

    • 1.3 When you ask

      • 1.3.1 Describe your problem concisely and clearly

      • 1.3.2 Questions relating to software

    • 1.4 How to ask

    • 1.5 Do not assume you are entitled to an answer

    • 1.6 Can you help as well?


1.1 Introduction¶

You have a computational problem. You would like to:

  • use a simulation tool or software library

  • write a computer program and something does not work or

  • solve some problem using a computer or

  • you’d like to achieve something (create a plot, meshfile, latex document) and you have difficulties.

Now you feel you are stuck. You want to ask someone for help? Maybe the creators of the (open source) software you intend to use, or a lecturer who has taught you in a related field, or a researcher in the area.

Presumably this is someone who you think can help you or who is an expert in the field, or a mailing list or some other type of forum where you hope somebody will read your post and reply.

Here is some advice to help you get a helpful answer.

1.2 Before you ask¶

1.2.1 Do some work yourself¶

Before asking a technical question, do the following:

  • Try to find an answer by reading the relevant literature.

  • Try to find an answer by inspection or experimentation.

  • Try to find an answer by asking a skilled friend or your supervisor.

  • If this is about software, you may:

    • Try to find an answer by reading the manual.

    • Try to find an answer by reading a FAQ.

    • Try to find an answer by browsing question asked by other people.

    • Try to find an answer by searching the Web.

When you ask your question, explain that you have done these things first; this will help establish that you’re not being a lazy sponge and wasting people’s time. Better yet, display what you have learned from doing these things.

1.2.2 Think how to phrase the question¶

Prepare your question. Think it through. Hasty-sounding questions get hasty answers, or none at all. The more you do to demonstrate that you have put thought and effort into solving your problem before seeking help, the more likely you are to actually get help.

Beware of asking the wrong question. If you ask one that is based on faulty assumptions, J. Random Hacker is quite likely to reply with a uselessly literal answer while thinking ‘’Stupid question…’’, and hoping the experience of getting what you asked for rather than what you needed will teach you a lesson. Academic V.R.E Busy might just not reply at all.

1.3 When you ask¶

1.3.1 Describe your problem concisely and clearly¶

  • Use meaningful, specific subject header to describe your query.

  • Write in clear, grammatical, correctly-spelled language (within your

    abilities).

  • Be precise and informative about your problem:

    • If your problem relates to software, state explicitly what program you are talking about, which version you are using on which OS and so on.

    • Often, you have to include a piece of source code and the exact error message you get to allow the expert to understand your problem.

    • If your problem relates to a mathematical problem, then write down the equation you want to solve and explain it well. Obviously, you would use LaTeX or some other tool if the equation is so complicated that it can’t be written clearly in ASCII.

  • Volume is not precision — try to be as concise as possible; every line your helper needs to read makes it more likely for him or her to give up.

  • Also describe what you have thought of already and why you think this is not sufficient.

  • Stick to conventions and good manners: Sign the email with your name, be polite, etc.

If you phrase your query in any way unprofessionally, it shows that you are not willing to invest enough time to present your problem well. The conclusion can only be that you are not really interested in an answer then.

1.3.2 Questions relating to software¶

For software related problems:

  • Provide a minimum program that exhibits the problem you are interested in.

    It is your task to remove unnecessary complexity from the programme, before asking others to invest their time to help you.

    You may even find the problem you want to ask about when reducing your program to this minimum version.

  • Provide the code as a file / Jupyter notebook, so that others can try to execute it, explore it, and modify it to be able to help you.

  • A screenshot, showing the program/prompt/plot/an error message, can be useful, but cannot replace providing the source code.

    If you have a lengthy error message, providing a copy and paste of this may be better (or a good addition) to a screenshot: this way the full error message can be posted, and search engineers can index it later.

1.4 How to ask¶

If you approach a group of people or an individual providing open source software, they often have a preferred way of questions being raised. This may include:

  • a mailing list

  • a project email address

  • a forum

  • (github) issues

Usually, the project owner will say on their web pages how they would like to receive requests.

It is important to respect that request.

The project owner will have reasons for their choice: for example, questions (and answers) in forums and github issues will remain visible to other users, and can thus help multiple users. Replies by email need to be repeated every time the same question comes in. The resources that most project owners and contributors do not have, is time: so even if they offer their expertise and time for free to help you, they need to balance between your support, and further development of the project (or indeed their career).

Under no circumstances contact project owners and contributors in ways they do not encourage, such as their personal email accounts etc.

1.5 Do not assume you are entitled to an answer¶

Do not assume you are entitled to an answer; in particular not when consulting an email list, forum, or emailing somebody directly.

If you hire somebody to do some work for you (through a consultancy agreement, say), this is a different story: you are then paying for the service, and are entitled to the answer.

However, as long as you are drawing on the time and expertise of others and there is no obvious benefit to them, you cannot expect to get help from them.

Your chances of getting an answer increase if you demonstrate that you have gone to great lengths

  1. to understand the problem yourself,

  2. to explain it as concisely and clearly as possible and that you have tried

  3. to make the job of the expert as easy and little time-consuming as possible.

1.6 Can you help as well?¶

Consider if you may have the skills to help others, for example users of the same software you are working with.

For software project, it is also helpful to report bugs precisely, or you could maybe offer contributions to the documentation.

The project owner will appreciate it. The other users of the project will appreciate it: they may benefit directly from your help, and you help may enable the active developers to work on bug fixes and new features (rather than replying to user queries).

Return to Top

Created with reStructuredText and Sphinx.