How to ask intelligent questions

Smart technical people (aka Hackers) have likely dedicated thousands, tens of thousands, or hundreds of thousands of hours of their lives learning, understanding, and generally figuring out how things work. If you find yourself asking for help, I'd suggest approaching it like you would approach asking advice from someone like Tony Hawk on how to do a kick-flip (I apologize for folks who don't know who Tony Hawk or Ryan Scheckler are and further apologize if you don't know what a kick-flip is... you really should get out more. I further apologize for suggesting that programming a computer is in any way as difficult as performing a kick-flip, I've skateboarded since I was...like 13 and still cannot pull one off without doing a no-comply, it's just a useful metaphor that non-technical folks might be able to understand.

To illustrate some approaches:

BAD "Tony, I've never even stood on a skateboard before, but I REALLY want to learn. I've got a spare 5 minutes, could you teach me how to do a kick-flip? oh and could you give me a free skateboard? I don't have one yet and you get them for free so I figure you wouldn't mind giving one to me. By the way, I wouldn't bother you, but Ryan Scheckler seems too busy to help me."

BETTER "Tony, I never land my kick-flips, the board seems to land on it's side, any tips?"

MORE BETTER "Tony, I've been skating for 5 years and for some reason I land my kick-flips on the side of the board. I looked up some tips online and saw your video on youtube, and I think the problem is I'm not flicking my foot hard enough. I've considered getting a different pair of shoes... I brought my board with me, if I showed you could you give me some advice?"

OK, hopefully everybody understand the problems with approach #1. You're asking a professional to teach you something that has taken him decades to learn and perfect and dilute it into a 5 minute lesson (for free). You're unprepared and unequipped to even begin to solve the problem... this is like people who want hackers to troubleshoot their "broken computer" while sitting at the bar after work (while the computer is at home). You haven't even TRIED to solve the problem yourself... this means (to many) you don't even possess the dedication or resolve to even TRY. This is kinda like when someone has a problem and local hacker tries to help and the person requesting assistance decides to go out for coffee. Approach #1 in the hacker community will either: Not get any reponse, or get the equivalent of "FSCK OFF!".

Approach number two is better because it shows dedication, preparation, and makes no assumptions about how much time/effort could or should be put into it. An appropriate response to #2 would be "Practice Harder". Approach #2 is likely to get terse responses, but you won't likely hear any expletives.

Approach number three is most likely to elicit the best response. You've done your homework, you're dedicated, you're prepared, you've got a solution you aren't sure of... rock on! If a hacker doesn't give helpful advice in #3 remember: You're still asking for free advice...I'd personally expect to PAY for personal skateboarding training from a professional skateboarder -- get it, PROFESSIONAL, like, that's how they put food on the table. Free advice from a professional is known as "a favor" and should be treated as such...

For folks who have been in the open source community for a length of time, there is an old article explaining how to ask questions the smart way. While I think that writeup is spot on, I think it's a bit inaccessible. Listen, getting computers to do what you want is very difficult work and VERY challenging (if it wasn't, the job wouldn't pay so well and hackers wouldn't be in such high demand). Yes, I realize it isn't as rare as skateboarding talent, but hopefully the metaphor helps explain why many hackers seem to NOT be helpful... it's not THEM, it's YOU!

I apologize in advance for anyone who is easily offended.

Honestly I don't care if you're offended, but I figure I'd put a token apology in because people who are easily offended are often shallow enough to be placated by a token apology.

Comments

Mike Mainguy said…
Actually, now that I reread it, maybe the title should have been "How to ask for help politely"...

Popular posts from this blog

Push versus pull deployment models

the myth of asynchronous JDBC

MACH TEN Addendum: for companies wanting to use MACH platforms