Skip to content

Instantly share code, notes, and snippets.

@mjlbach
Last active September 17, 2022 18:30
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save mjlbach/90589a1c8775856ba5ed2e42e1e35b0c to your computer and use it in GitHub Desktop.
Save mjlbach/90589a1c8775856ba5ed2e42e1e35b0c to your computer and use it in GitHub Desktop.
Asking effective questions

Foreword

The open source community depends on the efforts of a small group of volunteers relative to the number of users. In order to make the most of contributors' time, here is some advice for asking “good questions”. This is largely paraphrased from this article by Eric Steven Raymond and Rick Moen, with edits for brevity and tone. If you have the time (and tolerance), I strongly recommend reading that article over this one. Let's start with the procedure.

The procedure

  1. Try to find an answer by searching the archives of the issue-tracker, IRC, matrix-room, discord, forum or mailing list you plan to post to.
  2. Try to find an answer by searching the Web.
  3. Try to find an answer by reading the manual.
  4. Try to find an answer by reading a FAQ.
  5. Try to find an answer by inspection or experimentation.
  6. Try to find an answer by asking a skilled friend.
  7. If you're a programmer, try to find an answer by reading the source code.

Why you should care:

  • If you follow the above procedure, you are much more likely to develop a healthy working relationship with the open source community. There are people who consistently use this approach to asking questions, and I love helping them! I will spend hours addressing their bugs, and responding with targeted one-on-one help.
  • When you don't follow this procedure, you'll likely get chastised and told to RTFM
  • You may end up maintaining an open-source project one day, and you will be glad that you set a positive example for others when you experience the jadedness and fatigue that sets in after answering "bad" questions.

FAQ

Q: I don't have the time. I'm a student. This seems too hard. I'm not a programmer. I'm not smart enough.

A: Have more faith in yourself! The odds are the human being you are asking this question to will repeat the above procedure. If you don't do it, that time will instead come from someone else who is following the exact same procedure. That person is likely busy fixing bugs for the software you are currently using. Please have empathy for your fellow human being.

Q: I found something that looks like the answer, but I don’t understand it.

A: That's ok! Ideally, you should repeat the above procedure for each thing you don't understand, and you will learn a lot! In some cases, you will eventually hit a roadblock. I've spent hours recursively searching manuals until I found the answer I was looking for. If you spend more than 4 hours researching a given question, I would say it's time to concisely summarize the state of your knowledge and use a help channel.

@juanlanus
Copy link

juanlanus commented May 7, 2021

Keep in mind that the questions you ask will sit here forever.
Whenever you apply for a job, the recruiters will comb the developer's social networks and will get impressed by the high quality of your questions.
Especially how they are helpful cor the community, because this is what they will expect you to do if you ever join their community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment