Advertisement
Guest User

Untitled

a guest
May 29th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.85 KB | None | 0 0
  1. #Introduction
  2.  
  3. In the world of hackers, the kind of answers you get to your technical questions depends as much on the way you ask the questions as on the difficulty of developing the answer.
  4. The first thing to understand is that hackers actually like hard problems and good, thought-provoking questions about them. If we didn't, we wouldn't be here. If you give us an interesting question to chew on we'll be grateful to you; good questions are a stimulus and a gift. Good questions help us develop our understanding, and often reveal problems we might not have noticed or thought about otherwise. Among hackers, “Good question!” is a strong and sincere compliment.
  5. What we are, unapologetically, is hostile to people who seem to be unwilling to think or to do their own homework before asking questions. People like that are time sinks — they take without giving back, and they waste time we could have spent on another question more interesting and another person more worthy of an answer.
  6. We're (largely) volunteers. We take time out of busy lives to answer questions, and at times we're overwhelmed with them. So we filter ruthlessly. In particular, we throw away questions from people who appear to be losers in order to spend our question-answering time more efficiently, on winners.
  7. If you find this attitude obnoxious, condescending, or arrogant, check your assumptions. We're not asking you to genuflect to us — in fact, most of us would love nothing more than to deal with you as an equal and welcome you into our culture, if you put in the effort required to make that possible. But it's simply not efficient for us to try to help people who are not willing to help themselves. It's OK to be ignorant; it's not OK to play stupid.
  8. So, while it isn't necessary to already be technically competent to get attention from us, it is necessary to demonstrate the kind of attitude that leads to competence — alert, thoughtful, observant, willing to be an active partner in developing a solution. If you can't live with this sort of discrimination, we suggest you pay somebody for a commercial support contract instead of asking hackers to personally donate help to you.
  9. The best way to get a rapid and responsive answer is to ask it like a person with smarts, confidence, and clues who just happens to need help on one particular problem.
  10.  
  11. #Before You Ask
  12.  
  13. Before asking a technical question by e-mail, or in a newsgroup, or on a website chat board, do the following:
  14.  
  15. *Try to find an answer by searching the archives of the forum or mailing list you plan to post to.
  16.  
  17. *Try to find an answer by searching the Web.
  18.  
  19. *Try to find an answer by reading the manual.
  20.  
  21. *Try to find an answer by reading a FAQ.
  22.  
  23. *Try to find an answer by inspection or experimentation.
  24.  
  25. *If you're a programmer, try to find an answer by reading the source code.
  26.  
  27. When you ask your question, display the fact that you have done these things first; this will help establish that you're not being a lazy sponge and wasting people's time. Better yet, display what you have learned from doing these things. We like answering questions for people who have demonstrated they can learn from the answers.
  28.  
  29. Use tactics like doing a Google search on the text of whatever error message you get (searching Google groups as well as Web pages). This might well take you straight to fix documentation or a mailing list thread answering your question. Even if it doesn't, saying “I googled on the following phrase but didn't get anything that looked promising” is a good thing to do in e-mail or news postings requesting help, if only because it records what searches won't help. It will also help to direct other people with similar problems to your thread by linking the search terms to what will hopefully be your problem and resolution thread.
  30.  
  31. Take your time. Do not expect to be able to solve a complicated problem with a few seconds of Googling. Read and understand the FAQs, sit back, relax and give the problem some thought before approaching experts. Trust us, they will be able to tell from your questions how much reading and thinking you did, and will be more willing to help if you come prepared. Don't instantly fire your whole arsenal of questions just because your first search turned up no answers (or too many).
  32.  
  33. Prepare your question. Think it through. Hasty-sounding questions get hasty answers, or none at all. The more you do to demonstrate that having put thought and effort into solving your problem before seeking help, the more likely you are to actually get help.
  34.  
  35. Never assume you are entitled to an answer. You are not; you aren't, after all, paying for the service. You will earn an answer, if you earn it, by asking a substantial, interesting, and thought-provoking question — one that implicitly contributes to the experience of the community rather than merely passively demanding knowledge from others.
  36.  
  37. On the other hand, making it clear that you are able and willing to help in the process of developing the solution is a very good start. “Would someone provide a pointer?”, “What is my example missing?”, and “What site should I have checked?” are more likely to get answered than “Please post the exact procedure I should use.” because you're making it clear that you're truly willing to complete the process if someone can just point you in the right direction.
  38.  
  39. #When You Ask
  40.  
  41. Choose your forum carefully
  42. Hackers blow off questions that are inappropriately targeted in order to try to protect their communications channels from being drowned in irrelevance. You don't want this to happen to you.
  43. The first step, therefore, is to find the right forum. Again, Google and other Web-searching methods are your friend. Use them to find the project webpage most closely associated with the hardware or software giving you difficulties. Usually it will have links to a FAQ (Frequently Asked Questions) list, and to project mailing lists and their archives. These mailing lists are the final places to go for help, if your own efforts (including reading those FAQs you found) do not find you a solution. The project page may also describe a bug-reporting procedure, or have a link to one; if so, follow it.
  44. Don't shotgun-blast all the available help channels at once, that's like yelling and irritates people. Step through them softly.
  45. Understandably, skilled hackers and authors of popular software are already receiving more than their fair share of mis-targeted messages. By adding to the flood, you could in extreme cases even be the straw that breaks the camel's back — quite a few times, contributors to popular projects have withdrawn their support because collateral damage in the form of useless e-mail traffic to their personal accounts became unbearable.
  46.  
  47. #Stack Overflow
  48.  
  49. #Web and IRC forums
  50.  
  51. #Use meaningful, specific subject headers
  52.  
  53. On mailing lists, newsgroups or Web forums, the subject header is your golden opportunity to attract qualified experts' attention in around 50 characters or fewer. Don't waste it on babble like “Please help me” (let alone “PLEASE HELP ME!!!!”; messages with subjects like that get discarded by reflex). Don't try to impress us with the depth of your anguish; use the space for a super-concise problem description instead.
  54.  
  55. One good convention for subject headers, used by many tech support organizations, is “object - deviation”. The “object” part specifies what thing or group of things is having a problem, and the “deviation” part describes the deviation from expected behavior.
  56.  
  57. Stupid:
  58. HELP! Video doesn't work properly on my laptop!
  59.  
  60. Smart:
  61. X.org 6.8.1 misshapen mouse cursor, Fooware MV1005 vid. chipset
  62.  
  63. Smarter:
  64. X.org 6.8.1 mouse cursor on Fooware MV1005 vid. chipset - is misshapen
  65.  
  66. *Make it easy to reply
  67.  
  68. *Write in clear, grammatical, correctly-spelled language
  69.  
  70. We've found by experience that people who are careless and sloppy writers are usually also careless and sloppy at thinking and coding (often enough to bet on, anyway). Answering questions for careless and sloppy thinkers is not rewarding; we'd rather spend our time elsewhere.
  71.  
  72. So expressing your question clearly and well is important. If you can't be bothered to do that, we can't be bothered to pay attention. Spend the extra effort to polish your language. It doesn't have to be stiff or formal — in fact, hacker culture values informal, slangy and humorous language used with precision. But it has to be precise; there has to be some indication that you're thinking and paying attention.
  73.  
  74. Spell, punctuate, and capitalize correctly. Don't confuse “its” with “it's”, “loose” with “lose”, or “discrete” with “discreet”. Don't TYPE IN ALL CAPS; this is read as shouting and considered rude. (All-smalls is only slightly less annoying, as it's difficult to read. Alan Cox can get away with it, but you can't.)
  75.  
  76. More generally, if you write like a semi-literate boob you will very likely be ignored. So don't use instant-messaging shortcuts. Spelling "you" as "u" makes you look like a semi-literate boob to save two entire keystrokes. Worse: writing like a l33t script kiddie hax0r is the absolute kiss of death and guarantees you will receive nothing but stony silence (or, at best, a heaping helping of scorn and sarcasm) in return.
  77.  
  78. *Send questions in accessible, standard formats.
  79.  
  80. *Send plain text mail, not HTML. (It's not hard to turn off HTML.)
  81.  
  82. *Be precise and informative about your problem
  83.  
  84. *Describe the symptoms of your problem or bug carefully and clearly.
  85.  
  86. *Describe the research you did to try and understand the problem before you asked the question.
  87.  
  88. *Describe the diagnostic steps you took to try and pin down the problem yourself before you asked the question.
  89.  
  90. *Describe any possibly relevant recent changes in your computer or software configuration.
  91.  
  92. *If at all possible, provide a way to reproduce the problem in a controlled environment.
  93.  
  94. *Do the best you can to anticipate the questions a hacker will ask, and answer them in advance in your request for help.
  95.  
  96. Giving hackers the ability to reproduce the problem in a controlled environment is especially important if you are reporting something you think is a bug in code. When you do this, your odds of getting a useful answer and the speed with which you are likely to get that answer both improve tremendously.
  97.  
  98. *You need to be precise and informative.
  99.  
  100. *Describe your problem's symptoms in chronological order
  101.  
  102. *Describe the goal, not the step
  103.  
  104. If you are trying to find out how to do something (as opposed to reporting a bug), begin by describing the goal. Only then describe the particular step towards it that you are blocked on.
  105.  
  106. Often, people who need technical help have a high-level goal in mind and get stuck on what they think is one particular path towards the goal. They come for help with the step, but don't realize that the path is wrong. It can take substantial effort to get past this.
  107.  
  108. Stupid:
  109. How do I get the color-picker on the FooDraw program to take a hexadecimal RGB value?
  110.  
  111. Smart:
  112. I'm trying to replace the color table on an image with values of my choosing. Right now the only way I can see to do this is by editing each table slot, but I can't get FooDraw's color picker to take a hexadecimal RGB value.
  113.  
  114. The second version of the question is smart. It allows an answer that suggests a tool better suited to the task.
  115.  
  116. *Be explicit about your question
  117.  
  118. So it is useful to frame your question to minimize the time commitment required for an expert to field it — but this is often not the same thing as simplifying the question. Thus, for example, “Would you give me a pointer to a good explanation of X?” is usually a smarter question than “Would you explain X, please?”. If you have some malfunctioning code, it is usually smarter to ask for someone to explain what's wrong with it than it is to ask someone to fix it.
  119.  
  120. *When asking about code
  121.  
  122. *Don't post homework questions
  123.  
  124. *Be courteous.
  125.  
  126. Use “Please” and “Thanks for your attention” or “Thanks for your consideration”. Make it clear you appreciate the time people spend helping you for free.
  127.  
  128. *Follow up with a brief note on the solution
  129.  
  130. #How To Interpret Answers
  131.  
  132. *RTFM and STFW: How To Tell You've Seriously Screwed Up
  133.  
  134. There is an ancient and hallowed tradition: if you get a reply that reads “RTFM”, the person who sent it thinks you should have Read The Fucking Manual. He or she is almost certainly right. Go read it.
  135.  
  136. RTFM has a younger relative. If you get a reply that reads “STFW”, the person who sent it thinks you should have Searched The Fucking Web. He or she is almost certainly right. Go search it. (The milder version of this is when you are told “Google is your friend!”)
  137.  
  138. *If you don't understand...
  139.  
  140. If you don't understand the answer, do not immediately bounce back a demand for clarification. Use the same tools that you used to try and answer your original question (manuals, FAQs, the Web, skilled friends) to understand the answer. Then, if you still need to ask for clarification, exhibit what you have learned.
  141.  
  142. #Questions Not To Ask
  143.  
  144. Here are some classic stupid questions, and what hackers are thinking when they don't answer them.
  145.  
  146. Q: Where can I find program or resource X?
  147. A: The same place I'd find it, fool — at the other end of a web search. Ghod, doesn't everybody know how to use Google yet?
  148.  
  149. Q: How can I use X to do Y?
  150. A: If what you want is to do Y, you should ask that question without pre-supposing the use of a method that may not be appropriate. Questions of this form often indicate a person who is not merely ignorant about X, but confused about what problem Y they are solving and too fixated on the details of their particular situation. It is generally best to ignore such people until they define their problem better.
  151.  
  152. Q: How can I configure my shell prompt?
  153. A: If you're smart enough to ask this question, you're smart enough to RTFM and find out yourself.
  154.  
  155. Q: I'm having problems with my Windows machine. Can you help?
  156. A: Yes. Throw out that Microsoft trash and install an open-source operating system like Linux or BSD.
  157.  
  158. #Good and Bad Questions
  159.  
  160. Finally, I'm going to illustrate how to ask questions in a smart way by example; pairs of questions about the same problem, one asked in a stupid way and one in a smart way.
  161.  
  162. Stupid: Where can I find out stuff about the Foonly Flurbamatic?
  163. This question just begs for "STFW" as a reply.
  164.  
  165. Smart: I used Google to try to find “Foonly Flurbamatic 2600” on the Web, but I got no useful hits. Can I get a pointer to programming information on this device?
  166. This one has already STFWed, and sounds like there might be a real problem.
  167.  
  168. Stupid: I can't get the code from project foo to compile. Why is it broken?
  169. The querent assumes that somebody else screwed up. Arrogant git...
  170.  
  171. Smart: The code from project foo doesn't compile under Nulix version 6.2. I've read the FAQ, but it doesn't have anything in it about Nulix-related problems. Here's a transcript of my compilation attempt; is it something I did?
  172. The querent has specified the environment, read the FAQ, is showing the error, and is not assuming his problems are someone else's fault. This one might be worth some attention.
  173.  
  174. Stupid: I'm having problems with my motherboard. Can anybody help?
  175. J. Random Hacker's response to this is likely to be “Right. Do you need burping and diapering, too?” followed by a punch of the delete key.
  176.  
  177. Smart: I tried X, Y, and Z on the S2464 motherboard. When that didn't work, I tried A, B, and C. Note the curious symptom when I tried C. Obviously the florbish is grommicking, but the results aren't what one might expect. What are the usual causes of grommicking on Athlon MP motherboards? Anybody got ideas for more tests I can run to pin down the problem?
  178. This person, on the other hand, seems worthy of an answer. He/she has exhibited problem-solving intelligence rather than passively waiting for an answer to drop from on high.
  179.  
  180. In the last question, notice the subtle but important difference between demanding “Give me an answer” and “Please help me figure out what additional diagnostics I can run to achieve enlightenment.”
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement