Asking for and Giving Help

By  on  

As you can probably imagine, I'm very used to giving help. Believe it or not, I ask for help quite a bit too. My years of development experience and asking for help have taught me quite a few lessons, lessons I'm dying to share with all of you. Here are my general thoughts on asking, giving help, as ways you can improve both sides of the process.

Asking for Help: Give Details!

There's absolutely nothing more infuriating than someone not providing enough detail about a given issue. Before you approach anyone for help, provide any or all of the following pieces of information:

  • What are you expecting to happen?
  • What are you seeing happening?
  • What are you seeing within the console? Any error messages firing?
  • What browser, browser version, and OS are you using?
  • What version of Moo / jQuery / or any external library are you using?
  • What's different between a working example and your test page?
  • What have you tried to adjust to fix the issue?
  • Is there a URL available so others can see the issue and debug it?
  • Where else have you searched for an answer? Google? IRC? Forms? Documentation? MDN?

These pieces of information are absolutely invaluable to anyone you'd like to help you.

Asking for Help: Research First!

How often have you had someone ask you a question which the first search result of Google could tell you? Consistently asking others a question that Google can answer in the first result will brand you as an annoyance. The urgency with which you ask a question is relative to the urgency of the situation, but if you can take the time to do research yourself, do it and a lot of it.

Echo: Don't Ask The Same Questions Twice

Asking the same questions repeatedly will make you invisible; i.e., no one will pay attention to your questions. One of the reasons I started this blog was to keep it as a reference for running into the same issues in the future. I'm not saying you need to start a blog, but I am saying that you need to find a method for archiving questions you've asked and answers to receive.

Giving Help: Be Patient

If every time you ask a question you act as though it's a "code red" situation, you'll again find yourself to be an annoyance. Also realize that doing so is unfair to your colleagues. If you can ask for help with plenty of time to spare, you're more likely to be greeted with a positive attitude from those you're asking to help you. Also realize that your colleagues have their own problems and they may not get back to you right away.

Give Back: You Get What You Give

Help should be very much like BitTorrent peers: the desired 1:1 ratio. Simply sponging off of others isn't acceptable; in order to receive help, you should also be actively helping others, be it you colleagues, IRC users, forum posters, etc. Building relationships in the community is the best way to build a consistent help pipeline.

THE GOLDEN F'IN RULE OF HELP!

Before you send the message asking for help, re-read your message and ask your self this: can the person I'm asking for help from respond with more questions? If they can, answer them before you send the message. Why? Because of this: the secret to effectively asking for help is giving the other person so much information about the problem and how you've tried to resolve it that they cannot possibly ask a question you could have answered before you sent the help request! Why? Because that's a wasted interaction, and wasted interactions increase the time in problem resolution for both parties.

Those are my rules and advice for asking for help. As you can probably imagine, I'm asked for help on IRC and email almost hourly. I've also led projects where many parties were involved, and knowing the golden f'in rule above has lead to quicker answers and less stress for everyone. If you have rules to add, please share them, as better help requesting and providing will make us all better developers!

Recent Features

  • By
    How to Create a RetroPie on Raspberry Pi – Graphical Guide

    Today we get to play amazing games on our super powered game consoles, PCs, VR headsets, and even mobile devices.  While I enjoy playing new games these days, I do long for the retro gaming systems I had when I was a kid: the original Nintendo...

  • By
    Page Visibility API

    One event that's always been lacking within the document is a signal for when the user is looking at a given tab, or another tab. When does the user switch off our site to look at something else? When do they come back?

Incredible Demos

  • By
    Making the Firefox Logo from HTML

    When each new t-shirt means staving off laundry for yet another day, swag quickly becomes the most coveted perk at any tech company. Mozilla WebDev had pretty much everything going for it: brilliant people, interesting problems, awesome office. Everything except a t-shirt. That had to change. The basic...

  • By
    Create a Dojo Lightbox with dojox.image.Lightbox

    One of the reasons I love the Dojo Toolkit is that it seems to have everything.  No scouring for a plugin from this site and then another plugin from that site to build my application.  Buried within the expansive dojox namespace of Dojo is

Discussion

  1. Brian

    RTFM. ‘Nuff said.

  2. Great advice as always David.

    And I echo Christopher’s sentiments.

  3. I couldn’t agree more on the Golden F’in Rule. Simply re-reading your question before asking will make sure you are truly getting your question across in a way that everyone will understand.

  4. Chris

    I get a lot of useful questions on my blog which help me to think about what I’ve written and how things can be done better, and also which help point out errors or things which have since changed with newer dependent libraries’ versions.

    And then I often get questions like “what happens if I do it this way?” My response for this sort of question is usually to ask why they don’t try themselves.

  5. I couldn’t agree more. I answer a lot of questions and write tutorials as well, and I lose track of how many times someone has asked me why some code like this is slow:

    for (i = 0; i < 1000; i++) {
    $('#message').append(i);
    }

  6. Monnie

    Very good advice. I’m kind of a newbie to web developing, and I’m learning quickly that there are lots of ways to ask the same question.

  7. Patrick Sturge

    How can I print the contents of an Lightface.iframe using a button “Print”?

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!