Someone sent me an email this morning thanking me for answering his questions over the years. It happened to be someone whose name always makes me perk up, because even though he nearly always asks questions and rarely answers, he nearly always asks really GOOD questions.
If you're not addicted to answering questions on USENET, then this may not have occurred to you, but there are certain people who mostly or entirely ask questions, yet are still welcome names to me when they pop up.
So, even though the subject has been gone over in length, I thought I'd publish _my_ guidelines for what makes a good question to me, and why I appreciate seeing them. I'm about to push "send" and I'm not entirely happy with what I've written -- but what the heck, it's drooled out of my cerebrum, through my fingertips and onto my editor screen, and I don't want to just delete it now. So here goes:1: Ask questions that can be answered:
"How much string do I need to bind up a 50-pound bale of alfalfa?" is a useful question, compared to "how much string do I need for a bale?"
Mostly, asking a question that can be answered means supplying enough information to the experts so that they can give you a meaningful answer. Counter-examples would be things like:
"Should I use and IIR filter or an FIR filter" (this doesn't anything about the available processing power, or about performance constraints that may put more weight on one filter or another -- it's like asking if a motorcycle is better than a car).
"What emitter resistor should I use with a 2N3904?" (without knowing the circuit it's in, any answer would be meaningless).
"Is H-infinity control the best design approach?" (without knowing how much information you have about your plant, whether it's strongly nonlinear, how much it'll vary in practice, and a host of other factors, there's no way to tell).2: Ask for guidance, not for your work to be done for you:
"My boss wants me to implement a left-handed franowitz by Tuesday. Please respond with schematics and code." Personally, I'm happy to do the work that your boss needs done -- as long as I'm under contract to him, and as long as I get paid.
"Given a triangle with sides of lengths 8, 9 and 10, what is the area? Find an answer without using integration." I am absolutely, positively, not going to do your homework for you. "I'm having trouble finding the area of a triangle given the lengths of the sides, can you suggest an approach?" will get you lots of help. Barfing out homework problems and insisting on solutions won't.
Note that I (and many others) will NOT do your school work for you, even for money. I've had one person approach me about work that appeared legitimate, then turned out to be doing the core work for a graduate degree. I was not amused, except for the faint ironic humor of having him stop emailing me anything at all when I informed him that I'd be happy to get under contract if I had written authorization from his thesis advisor, and could he please supply me with contact details?
The reason that we won't do this is twofold. First, we're not rats. Second, even if our consciences had been surgically removed, most really competent engineers don't like working for incompetent managers, and intensely dislike working for incompetent managers who cheat. If you can't do your technical homework at all, then you probably aren't cut out for engineering. If you know this, and you try to get it done for you, then you'll only be fit for management, and then you'll only be the kind of manager with a reverse-midas touch who turns everything he touches into raw sewage.3: Ask for specific answers
"I need to design a filter in the z domain. How do I do it?" You might think "take three years of signal processing courses at an accredited engineering school" or "read this pile of books" followed by "then do what comes naturally" is a facetious answer -- but it's not that far off track. Some questions just have answers that are book-length or longer, and you're not going to get an answer in a newsgroup posting.
When that happens you either need to narrow your question down, or go away and start studying. Incidentally, one good way to narrow down your question is to respond with "clearly I need to narrow down my question -- what do I need to tell you?"4: Don't get too obscure/don't ask us to do too much work
Asking some specific question about a hearing-aid processor, or asking a question about equation 73 in some obscure scientific paper generally means -- unless you're very lucky -- two things: one, that no one knows the answer, and two, that figuring out the answer will take an inordinate amount of time.
If you can phrase the question in more general terms, then you'll bring it more in line with guideline 1.5: Work with us
If you ask a question and someone comes back with a request for clarification, be polite and informative. Don't get all bent out of shape. Don't assume that everyone is against you -- we don't know who the hell you are, we're only judging by the questions you ask and your responses to our posts.
Sometimes you'll ask a question and it'll turn out to be entirely the wrong thing to ask ("how do I patch a hole in a tire", for instance, may have the answer FOR YOUR SITUATION to "stop driving over the spike strip"). I do this myself, and it can be frustrating to be told that I'm asking the wrong thing -- but on the other hand, finding out that I don't need $500 worth of electronics or machine tools that can be solved with a Popsicle stick and a whack with a big hammer really is to my benefit.6: Stay engaged
This will get lost in the smoke, but one of the more frustrating USENET phenomena is when someone whose never posted asks a question, gets a bunch of responses on the order of "that's interesting, tell us these exact particulars", and then never responds.
We're working for you, but we're not working for money. We're working for satisfaction -- even coming back on and saying "thanks for your effort, guys, I found the answer somewhere else" will give us more satisfaction than not saying anything.