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
    Create a CSS Cube

    CSS cubes really showcase what CSS has become over the years, evolving from simple color and dimension directives to a language capable of creating deep, creative visuals.  Add animation and you've got something really neat.  Unfortunately each CSS cube tutorial I've read is a bit...

  • By
    Facebook Open Graph META Tags

    It's no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook "Like" and "Recommend" widgets on every website.  One...

Incredible Demos

Discussion

  1. Christophor S. Wilson

    Thanks David,

    This needs to be at the top of every forum :O)

  2. Brian

    RTFM. ‘Nuff said.

  3. Great advice as always David.

    And I echo Christopher’s sentiments.

  4. 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.

  5. 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.

  6. 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);
    }

  7. 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.

  8. 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!