Sunday, August 2, 2009

How to ask questions

Questions follow the Anna Karenina principle, which comes from the opening of Anna Karenina:

Happy families are all alike; every unhappy family is unhappy in its own way.


Like families, good questions are all the same, and bad questions are bad for many different reasons. Some kinds of bad questions really irritate me.

Leading Questions: These look like questions, but they're really just asking for confirmation of a piece of information. People ask them a lot when they think they know the answer, or they think that providing possible answers makes them look smart.
Bad: "Is this the gas cap?"
Bad: "Is the gas cap on the right or the left"
Good: "Where's the gas cap?"
(Actually, if someone is terrible at communicating information and you just need to get them to spit something out, you might have to resort to leading questions.)

Questions Asked to Make the Asker Look Good: General categories include inappropriately advanced or detailed questions, leading questions where the asker knows the answer, and questions which are actually statements. God knows you get plenty of these in a college setting, and they piss me off to no end.
Don't be this douche: "Is that similar to the behavior in Apache 1.2, where malformed cgi scripts could cause runaway memory usage?"
Me: "Shut it, motherfucker! This is CS 3!"

There is another type of question that lots of people don't like, and those are questions that you can answer yourself. I think this mostly only applies on the internet. After all, you're already on the net, so why not google it. But in real life, it's still probably a good idea to ask yourself the following, "Am I asking for data, or analysis?" If it's data you're after, check the web. The web is chock full of that shit: elimination half-lives of prescription drugs, dates of historical events, how to write a comment in c++, the nutritional contents of a bowl of cheerios, etc. But if it's analysis you want, go for it. Go ahead and ask your doctor for ideas for a healthy breakfast, or your programmer friends about which style of comments they prefer in python.

Good questions are motivated by curiosity, reveal ignorance, and are open ended. It's only one sentence, but I think it pretty much sums up most good questions.

You would think curiosity would be obvious, since questions that nobody cares about don't get asked, but think about questions that people ask to make themselves look good; they don't actually care about the answer.

Revealing ignorance is scary, but don't try to avoid it. The more ignorance you reveal, and the faster you reveal it, the faster the helpful, smart people around you will help you fill in the gaps.

Asking an open ended question means not supplying possible answers along with the questions, and fully putting yourself in the hands of the person you're asking. If you can, use question-word questions that start with "why", "how", and "what", as opposed to yes/no questions.

I'll also say that the fastest way to impress me is to ask an honest, open ended question that shows that you're not worried about looking stupid. If a pretty girl walked up to me and said, "Why can't I dereference a void*?" I would probably just throw in the towel right there and propose to her.

No comments: