原中文網址http://www.virtualmonkeys.net/archives/2003_10.php (好像也不是第一出處) Copyright (C) 2001 by Eric S. Raymond原中文网址http://www.virtualmonkeys.net/archives/2003_10.php (好像也不是第一出处) Copyright (C) 2001 by Eric S. Raymond
中文版Copyleft 2001 by DHGrand(nOBODY/Ginux)中文版Copyleft 2001 by DHGrand(nOBODY/Ginux)
英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html
感謝Eric 的耐心指點和同意,本文才得以完成並發佈,本指南英文版版權為Eric Steven Raymond 所有,中文版版權由DHGrand[nOBODY/Ginux] 所有。感谢Eric的耐心指点和同意,本文才得以完成并发布,本指南英文版版权为Eric Steven Raymond所有,中文版版权由DHGrand[nOBODY/Ginux]所有。
在黑客世界,當提出一個技術問題時,你能得到怎樣的回答?在黑客世界,当提出一个技术问题时,你能得到怎样的回答?
這取決於挖出答案的難度,同樣取決於你提問的方法。这取决于挖出答案的难度,同样取决于你提问的方法。
本指南旨在幫助你提高發問技巧,以獲取你最想要的答案。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。
首先你必須明白,黑客們只偏愛艱巨的任務,或者能激發他們思維的好問題。首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。
如若不然,我們還來幹嗎?如若不然,我们还来干吗? 如果你有值得我們反復咀嚼玩味的好問題,如果你有值得我们反复咀嚼玩味的好问题,
我們自會對你感激不盡。我们自会对你感激不尽。 好問題是激勵,是厚禮,可以提高我們的理解力,好问题是激励,是厚礼,可以提高我们的理解力,
而且通常會暴露我們以前從沒意識到或者思考過的問題。而且通常会暴露我们以前从没意识到或者思考过的问题。
對黑客而言,“問得好!”是發自內心的大力稱讚。对黑客而言,“问得好!”是发自内心的大力称赞。
儘管黑客們有蔑視簡單問題和不友善的壞名聲,有時看起來似乎我們對新手,尽管黑客们有蔑视简单问题和不友善的坏名声,有时看起来似乎我们对新手,
對知識貧乏者懷有敵意,但其實不是那樣的。对知识贫乏者怀有敌意,但其实不是那样的。
我們不想掩飾對這樣一些人的蔑視–他們不願思考,我们不想掩饰对这样一些人的蔑视–他们不愿思考,
或者在發問前不去完成他們應該做的事。或者在发问前不去完成他们应该做的事。
這種人只會謀殺時間–他們只願索取,從不付出,無端消耗我們的時間,这种人只会谋杀时间–他们只愿索取,从不付出,无端消耗我们的时间,
而我們本可以把時間用在更有趣的問題或者更值得回答的人身上。而我们本可以把时间用在更有趣的问题或者更值得回答的人身上。
我們稱這樣的人為“失敗者”(由於歷史原因,我們有時把它拼作“lusers”)。我们称这样的人为“失败者”(由于历史原因,我们有时把它拼作“lusers”)。
我們在很大程度上屬於志願者,從繁忙的生活中抽出時間來解惑答疑,我们在很大程度上属于志愿者,从繁忙的生活中抽出时间来解惑答疑,
而且時常被提問淹沒。而且时常被提问淹没。 所以我們無情的濾掉一些話題,所以我们无情的滤掉一些话题,
特別是拋棄那些看起來象失敗者的傢伙,以便更高效的利用時間來回答勝利者的問題。特别是抛弃那些看起来象失败者的家伙,以便更高效的利用时间来回答胜利者的问题。
如果你覺得我們過於傲慢的態度讓你不爽,讓你委屈,不妨設身處地想想。如果你觉得我们过于傲慢的态度让你不爽,让你委屈,不妨设身处地想想。
我們並沒有要求你向我們屈服–事實上,我們中的大多數人最喜歡公平交易不過了,我们并没有要求你向我们屈服–事实上,我们中的大多数人最喜欢公平交易不过了,
只要你付出小小努力來滿足最起碼的要求,我們就會歡迎你加入到我們的文化中來?但讓我們幫助那些不願意幫助自己的人是沒有意義的。只要你付出小小努力来满足最起码的要求,我们就会欢迎你加入到我们的文化中来?但让我们帮助那些不愿意帮助自己的人是没有意义的。
如果你不能接受這種“歧視”,我們建議你花點錢找家商業公司簽個術支援協議得了,別向黑客乞求如果你決定向我們求助,當然不希望被視為失敗者,更不願成為失敗者中的一員。如果你不能接受这种“歧视”,我们建议你花点钱找家商业公司签个术支援协议得了,别向黑客乞求如果你决定向我们求助,当然不希望被视为失败者,更不愿成为失败者中的一员。 立刻得到有效答案的最好方法,就是象勝利者那樣提問—— 聰明、自信、有解決問題的思路,只是偶爾在特定的問題上需要獲得一點幫助。立刻得到有效答案的最好方法,就是象胜利者那样提问——聪明、自信、有解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。
(歡迎對本指南提出改進意見。任何建議請E-mail至esr@thyrsus.com, (欢迎对本指南提出改进意见。任何建议请E-mail至esr@thyrsus.com,
然而請注意,本文並非網路禮節的通用指南,我通常會拒絕無助於在技術論壇得到有用答案的建議。然而请注意,本文并非网路礼节的通用指南,我通常会拒绝无助于在技术论坛得到有用答案的建议。 ) (當然,如果你寫中文,最好還是寄DHGrand@hotmail.com;-) ) (当然,如果你写中文,最好还是寄DHGrand@hotmail.com;-)
= 提問之前= =提问之前=
在通過電郵、新聞組或者聊天室提出技術問題前,檢查你有沒有做到:在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到:
1. 通讀手冊(Manual),試著自己找答案。 1.通读手册(Manual),试着自己找答案。
2. 在FAQ 找答案(一份維護得好的FAQ可以包羅萬象:)。 2.在FAQ找答案(一份维护得好的FAQ可以包罗万象:)。
3. 在網上搜索(個人推薦google~~~)。 3.在网上搜索(个人推荐google~~~)。
4. 向你身邊精於此道的朋友打聽。 4.向你身边精于此道的朋友打听。
當你提出問題的時候,首先要說明在此之前你幹了些什麼;当你提出问题的时候,首先要说明在此之前你干了些什么;
這將有助於樹立你的形象:你不是一個妄圖不勞而獲的乞討者,不願浪費別人的時間。这将有助于树立你的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。
如果提問者能從答案中學到東西,我們更樂於回答他的問題。如果提问者能从答案中学到东西,我们更乐于回答他的问题。
周全的思考,準備好你的問題,草率的發問只能得到草率的回答,周全的思考,准备好你的问题,草率的发问只能得到草率的回答,
或者根本得不到任何答案。或者根本得不到任何答案。 越表現出在尋求幫助前為解決問題付出的努力,越表现出在寻求帮助前为解决问题付出的努力,
你越能得到實質性的幫助。你越能得到实质性的帮助。
小心別問錯了問題。小心别问错了问题。 如果你的問題基於錯誤的假設,普通黑客(J. Random Hacker)如果你的问题基于错误的假设,普通黑客(J. Random Hacker)
通常會用無意義的字面解釋來答復你,心想著“蠢問題…”,通常会用无意义的字面解释来答复你,心想着“蠢问题…”,
希望著你會從問題的回答(而非你想得到的答案)中汲取教訓。希望着你会从问题的回答(而非你想得到的答案)中汲取教训。
決不要自以為夠資格得到答案,你沒這種資格。决不要自以为够资格得到答案,你没这种资格。 畢竟你沒有為這種服務支付任何報酬。毕竟你没有为这种服务支付任何报酬。
你要自己去“掙”回一個答案,靠提出一個有內涵的,有趣的,你要自己去“挣”回一个答案,靠提出一个有内涵的,有趣的,
有思維激勵作用的問題–一個對社區的經驗有潛在貢獻的問題,有思维激励作用的问题–一个对社区的经验有潜在贡献的问题,
而不僅僅是被動的從他人處索要知識–去掙到這個答案。而不仅仅是被动的从他人处索要知识–去挣到这个答案。
另一方面,表明你願意在找答案的過程中做點什麼,是一個非常好的開端。另一方面,表明你愿意在找答案的过程中做点什么,是一个非常好的开端。
“誰能給點提示?”、“我這個例子缺了什麼?”以及“我應該檢查什麼地方?” “谁能给点提示?”、“我这个例子缺了什么?”以及“我应该检查什么地方?”
比“請把確切的過程貼出來”更容易得到答復。比“请把确切的过程贴出来”更容易得到答复。 因為你顯得只要有人指點正確的方向,因为你显得只要有人指点正确的方向,
你就有完成它的能力和決心。你就有完成它的能力和决心。
= 怎樣提問= =怎样提问=
- 謹慎選擇論壇小心選擇提問的場合。 -谨慎选择论坛小心选择提问的场合。 如果象下面描述的那樣,你很可能被忽略掉或者被看作失敗者:如果象下面描述的那样,你很可能被忽略掉或者被看作失败者:
1. 在風馬牛不相及的論壇貼出你的問題 1.在风马牛不相及的论坛贴出你的问题
2. 在探討高級技巧的論壇張貼非常初級的問題;反之亦然 2.在探讨高级技巧的论坛张贴非常初级的问题;反之亦然
3. 在太多的不同新聞組交叉張貼 3.在太多的不同新闻组交叉张贴
- 用辭貼切,語法正確,拼寫無誤我們從經驗中發現,粗心的寫作者通常也是馬虎的思考者(我敢打包票)。 -用辞贴切,语法正确,拼写无误我们从经验中发现,粗心的写作者通常也是马虎的思考者(我敢打包票)。
回答粗心大意者的問題很不值得,我們寧願把時間耗在別處。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。
正確的拼寫,標點符號和大小寫很重要。正确的拼写,标点符号和大小写很重要。
更一般的說,如果你的提問寫得象個半文盲,你很有可能被忽視。更一般的说,如果你的提问写得象个半文盲,你很有可能被忽视。
如果你在使用非母語的論壇提問,你可以犯點拼寫和語法上的小錯如果你在使用非母语的论坛提问,你可以犯点拼写和语法上的小错
–但決不能在思考上馬虎(沒錯,我們能弄清兩者的分別) –但决不能在思考上马虎(没错,我们能弄清两者的分别)
- 使用含義豐富,描述準確的標題在郵件列表或者新聞組中,大約50字以內的主題標題是抓住資深專家注意力的黃金時機。 -使用含义丰富,描述准确的标题在邮件列表或者新闻组中,大约50字以内的主题标题是抓住资深专家注意力的黄金时机。
別用喋喋不休的“幫幫忙”(更別說“救命啊!!!!!”這樣讓人反感的話)别用喋喋不休的“帮帮忙”(更别说“救命啊!!!!!”这样让人反感的话)
來浪費這個機會。来浪费这个机会。 不要妄想用你的痛苦程度來打動我們, 別用空格代替問題的描述,不要妄想用你的痛苦程度来打动我们,别用空格代替问题的描述,
哪怕是極其簡短的描述。哪怕是极其简短的描述。
蠢問題: 救命啊!蠢问题:救命啊! 我的膝上機不能正常顯示了!我的膝上机不能正常显示了!
聰明問題: XFree86 4.1下滑鼠游標變形,Fooware MV1005的顯示晶片。聪明问题: XFree86 4.1下滑鼠游标变形,Fooware MV1005的显示晶片。
如果你在回復中提出問題,記得要修改內容標題,表明面有一個問題。如果你在回复中提出问题,记得要修改内容标题,表明面有一个问题。
一個看起來象“Re:測試”或者“Re:新bug”的問題很難引起足夠重視。一个看起来象“Re:测试”或者“Re:新bug”的问题很难引起足够重视。
另外,引用並刪減前文的內容,給新來的讀者留下線索。另外,引用并删减前文的内容,给新来的读者留下线索。
- 精確描述,信息量大 -精确描述,信息量大
1. 謹慎明確的描述症狀。 1.谨慎明确的描述症状。
2. 提供問題發生的環境(機器配置、作業系統、應用程式以及別的什麼)。 2.提供问题发生的环境(机器配置、作业系统、应用程式以及别的什么)。
3. 說明你在提問前是怎樣去研究和理解這個問題的。 3.说明你在提问前是怎样去研究和理解这个问题的。
4. 說明你在提問前採取了什麼步驟去解決它。 4.说明你在提问前采取了什么步骤去解决它。
5. 羅列最近做過什麼可能有影響的硬體、軟體變更。 5.罗列最近做过什么可能有影响的硬体、软体变更。
儘量想像一個黑客會怎樣反問你,在提問的時候預先給他答案。尽量想像一个黑客会怎样反问你,在提问的时候预先给他答案。
Simon Tatham寫過一篇名為《如何有效的報告Bug》的出色短文。 Simon Tatham写过一篇名为《如何有效的报告Bug》的出色短文。 強力推薦你也讀一讀。强力推荐你也读一读。
- 話不在多你需要提供精確有效的資訊。 -话不在多你需要提供精确有效的资讯。 這並不是要求你簡單的把成噸的出錯代碼或者資料完全轉儲摘錄到你的提問中。这并不是要求你简单的把成吨的出错代码或者资料完全转储摘录到你的提问中。 如果你有龐大而複雜的測試條件,如果你有庞大而复杂的测试条件,
儘量把它剪裁得越小越好。尽量把它剪裁得越小越好。 這樣做的用處至少有三點。这样做的用处至少有三点。
第一,表現出你為簡化問題付出了努力,這可以使你得到回答的機會增加;第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加;
第二,簡化問題使你得到有用答案的機會增加;第二,简化问题使你得到有用答案的机会增加;
第三,在提煉你的bug報告的過第三,在提炼你的bug报告的过
- 只說症狀,不說猜想告訴黑客們你認為問題是怎樣引起的沒什麼幫助。 -只说症状,不说猜想告诉黑客们你认为问题是怎样引起的没什么帮助。
(如果你的推斷如此有效,還用向別人求助嗎?), (如果你的推断如此有效,还用向别人求助吗?),
因此要確信你原原本本告訴了他們問題的症狀,不要加進你自己的理解和推論。因此要确信你原原本本告诉了他们问题的症状,不要加进你自己的理解和推论。
讓黑客們來診斷吧。让黑客们来诊断吧。
蠢問題: 我在內核編譯中一次又一次遇到SIG11錯誤,蠢问题:我在内核编译中一次又一次遇到SIG11错误,
我懷疑某條飛線搭在主板的走線上了,這種情況應該怎樣檢查最好?我怀疑某条飞线搭在主板的走线上了,这种情况应该怎样检查最好?
聰明問題: 我自製的一套K6/233系統,主板是FIC-PA2007 (VIA Apollo VP2晶片組),聪明问题:我自制的一套K6/233系统,主板是FIC-PA2007 (VIA Apollo VP2晶片组),
256MB Corsair PC133 SDRAM,在內核編譯中頻頻產生SIG11錯誤, 256MB Corsair PC133 SDRAM,在内核编译中频频产生SIG11错误,
從開機20分鐘以後就有這種情況,開機前20分鐘內從沒發生過。从开机20分钟以后就有这种情况,开机前20分钟内从没发生过。
重啟也沒有用,但是關機一晚上就又能工作20分鐘。重启也没有用,但是关机一晚上就又能工作20分钟。 所有記憶體都換過了,沒有效果。所有记忆体都换过了,没有效果。
相關部分的典型編譯記錄如下…。相关部分的典型编译记录如下…。
- 按時間順序列出症狀對找出問題最有幫助的線索,往往就是問題發生前的一系列操作, -按时间顺序列出症状对找出问题最有帮助的线索,往往就是问题发生前的一系列操作,
因此,你的說明應該包含操作步驟,以及電腦的反應,直到問題產生。因此,你的说明应该包含操作步骤,以及电脑的反应,直到问题产生。
如果你的說明很長(超過四個段落),在開頭簡述問題會有所幫助,如果你的说明很长(超过四个段落),在开头简述问题会有所帮助,
接下來按時間順序詳述。接下来按时间顺序详述。 這樣黑客們就知道該在你的說明中找什麼。这样黑客们就知道该在你的说明中找什么。
- 明白你想問什麼漫無邊際的提問近乎無休無止的時間黑洞。 -明白你想问什么漫无边际的提问近乎无休无止的时间黑洞。 最能給你有用答案的人也正是最忙的人(他們忙是因為要親自完成大部分工作)。最能给你有用答案的人也正是最忙的人(他们忙是因为要亲自完成大部分工作)。 這樣的人對無節制的時間黑洞不太感冒,这样的人对无节制的时间黑洞不太感冒,
因此也可以說他們對漫無邊際的提問不大感冒。因此也可以说他们对漫无边际的提问不大感冒。
如果你明確表述需要回答者做什麼(提供建議,發送一段代碼,檢查你的補丁或是別的)如果你明确表述需要回答者做什么(提供建议,发送一段代码,检查你的补丁或是别的)
,就最有可能得到有用的答案。 ,就最有可能得到有用的答案。
這會定出一個時間和精力的上限,便於回答者集中精力來幫你这会定出一个时间和精力的上限,便于回答者集中精力来帮你
A這很湊效。 A这很凑效。 要理解專家們生活的世界,要把專業技能想像為充裕的資源,要理解专家们生活的世界,要把专业技能想像为充裕的资源,
而回復的時間則是貧乏的資源。而回复的时间则是贫乏的资源。 解決你的問題需要的時間越少,解决你的问题需要的时间越少,
越能從忙碌的專家口中掏出答案。越能从忙碌的专家口中掏出答案。
因此,優化問題的結構,儘量減少專家們解決它所需要的時間,因此,优化问题的结构,尽量减少专家们解决它所需要的时间,
會有很大的幫助–這通常和簡化問題有所區別。会有很大的帮助–这通常和简化问题有所区别。
因此,問“我想更好的理解X,能給點提示嗎?”通常比問“你能解釋一下X嗎?更好。因此,问“我想更好的理解X,能给点提示吗?”通常比问“你能解释一下X吗?更好。
如果你的代碼不能工作,問問它有什麼地方不對,比要求別人替你修改要明智得多。如果你的代码不能工作,问问它有什么地方不对,比要求别人替你修改要明智得多。
- 別問應該自己解決的問題黑客們總是善於分辨哪些問題應該由你自己解決;因為我們中的大多數都曾自己解決這類問題。 -别问应该自己解决的问题黑客们总是善于分辨哪些问题应该由你自己解决;因为我们中的大多数都曾自己解决这类问题。 同樣,這些問題得由你來搞定,你會從中學到東西。同样,这些问题得由你来搞定,你会从中学到东西。
你可以要求給點提示,但別要求得到完整的解決方案。你可以要求给点提示,但别要求得到完整的解决方案。
- 去除無意義的疑問別用無意義的話結束提問,例如“有人能幫我嗎?”或者“有答案嗎?”。 -去除无意义的疑问别用无意义的话结束提问,例如“有人能帮我吗?”或者“有答案吗?”。
首先:如果你對問題的描述不很合適,這樣問更是畫蛇添足。首先:如果你对问题的描述不很合适,这样问更是画蛇添足。
其次:由於這樣問是畫蛇添足,黑客們會很厭煩你–而且通常會用邏輯上正確的回答來表示他們的蔑視,例如:“沒錯,有人能幫你”或者“不,沒答案”。其次:由于这样问是画蛇添足,黑客们会很厌烦你–而且通常会用逻辑上正确的回答来表示他们的蔑视,例如:“没错,有人能帮你”或者“不,没答案”。
- 謙遜絕沒有害處,而且常幫大忙彬彬有禮,多用“請”和“先道個謝了”。 -谦逊绝没有害处,而且常帮大忙彬彬有礼,多用“请”和“先道个谢了”。
讓大家都知道你對他們花費時間義務提供幫助心存感激。让大家都知道你对他们花费时间义务提供帮助心存感激。
然而,如果你有很多問題無法解決,禮貌將會增加你得到有用答案的機會。然而,如果你有很多问题无法解决,礼貌将会增加你得到有用答案的机会。
(我們注意到,自從本指南發佈後,從資深黑客處得到的唯一嚴重缺陷反饋, (我们注意到,自从本指南发布后,从资深黑客处得到的唯一严重缺陷反馈,
就是對預先道謝這一條。就是对预先道谢这一条。 一些黑客覺得“先謝了”的言外之意是過後就不會再感謝任何人了。一些黑客觉得“先谢了”的言外之意是过后就不会再感谢任何人了。 我們的建議是:都道謝。我们的建议是:都道谢。 )
- 問題解決後,加個簡短說明問題解決後,向所有幫助過你的人發個說明,讓他們知道問題是怎樣解決的, -问题解决后,加个简短说明问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,
並再一次向他們表示感謝。并再一次向他们表示感谢。 如果問題在新聞組或者郵件列表中引起了廣泛關注,如果问题在新闻组或者邮件列表中引起了广泛关注,
應該在那貼一個補充說明。应该在那贴一个补充说明。 補充說明不必很長或是很深入;簡單的一句“你好,原來是網線出了問題!补充说明不必很长或是很深入;简单的一句“你好,原来是网线出了问题!
謝謝大家–Bill”比什麼也不說要強。事實上,除非結論真的很有技術含量,谢谢大家–Bill”比什么也不说要强。事实上,除非结论真的很有技术含量,
否則簡短可愛的小結比長篇學術論文更好。否则简短可爱的小结比长篇学术论文更好。 說明問題是怎樣解決的,但大可不必將解決問題的過程復述一遍。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。
除了表示禮貌和反饋資訊以外,這種補充有助於他人在郵件列表/新聞組/論壇中搜索對你有過幫助的完整解決方案,這可能對他們也很有用。除了表示礼貌和反馈资讯以外,这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。 最後(至少?),最后(至少?),
這種補充有助於所有提供過幫助的人從中得到滿足感。这种补充有助于所有提供过帮助的人从中得到满足感。
如果你自己不是老手或者黑客,那就相信我們,這種感覺對於那些你向他們求助的導師或者專家而言,是非常重要的。如果你自己不是老手或者黑客,那就相信我们,这种感觉对于那些你向他们求助的导师或者专家而言,是非常重要的。 問題久拖未決會讓人灰心;问题久拖未决会让人灰心;
黑客們渴望看到問題被解決。黑客们渴望看到问题被解决。 好人有好報,滿足他們的渴望,好人有好报,满足他们的渴望,
你會在下次貼出新問題時嘗到甜頭。你会在下次贴出新问题时尝到甜头。
- 還是不懂如果你不是很理解答案,別立刻要求對方解釋。 -还是不懂如果你不是很理解答案,别立刻要求对方解释。
象你以前試著自己解決問題時那樣(利用手冊,FAQ,網路,身邊的高手),象你以前试着自己解决问题时那样(利用手册,FAQ,网路,身边的高手),
去理解它。去理解它。 如果你真的需要對方解釋,記得表現出你已經學鴗F點什麼。如果你真的需要对方解释,记得表现出你已经学鴗F点什么。 比方說,如果我回答你:“看來似乎是zEntry被阻塞了;比方说,如果我回答你:“看来似乎是zEntry被阻塞了;
你應該先清除它。你应该先清除它。 ”,然後:一個很糟的後續問題:“zEntry是什麼? ”,然后:一个很糟的后续问题:“zEntry是什么? ”
聰明的問法應該是這樣:“哦~~~我看過幫助了但是只有-z和-p兩個參數中提到了zEntry而且還都沒有清楚的解釋:<你是指這兩個中的哪一個嗎?聪明的问法应该是这样:“哦~~~我看过帮助了但是只有-z和-p两个参数中提到了zEntry而且还都没有清楚的解释:<你是指这两个中的哪一个吗?
還是我看漏了什麼?还是我看漏了什么? ”
=三思而後問= =三思而后问=
以下是幾個經典蠢問題,以及黑客在拒絕回答時的心中所想:以下是几个经典蠢问题,以及黑客在拒绝回答时的心中所想:
問題:我能在哪找到X程式?问题:我能在哪找到X程式?
問題:我的程式/配置/SQL申明沒有用問題:我的Windows有問題,你能幫我嗎?问题:我的程式/配置/SQL申明没有用问题:我的Windows有问题,你能帮我吗?
問題:我在安裝Linux(或者X)時有問題,你能幫我嗎?问题:我在安装Linux(或者X)时有问题,你能帮我吗?
問題:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢?问题:我怎么才能破解root帐号/窃取OP特权/读别人的邮件呢?
提問:我能在哪找到X程式?提问:我能在哪找到X程式?
回答:就在我找到它的地方啊蠢貨–搜索引擎的那一頭。回答:就在我找到它的地方啊蠢货–搜索引擎的那一头。 天?!天?! 還有人不會用Google嗎?还有人不会用Google吗?
提問:我的程式(配置、SQL申明)沒有用回答:這不算是問題吧,我對找出你的真正問題沒興趣–如果要我問你二十個問題才找得出來的話–我有更有意思的事要做呢。提问:我的程式(配置、SQL申明)没有用回答:这不算是问题吧,我对找出你的真正问题没兴趣–如果要我问你二十个问题才找得出来的话–我有更有意思的事要做呢。
在看到這類問題的時候,我的反應通常不外如下三種在看到这类问题的时候,我的反应通常不外如下三种
1. 你還有什麼要補充的嗎? 1.你还有什么要补充的吗?
2. 真糟糕,希望你能搞定。 2.真糟糕,希望你能搞定。
3. 這跟我有什麼鳥相關? 3.这跟我有什么鸟相关?
提問:我的Windows有問題,你能幫我嗎?提问:我的Windows有问题,你能帮我吗?
回答:能啊,扔掉萎軟的垃圾,換Linux吧。回答:能啊,扔掉萎软的垃圾,换Linux吧。
提問:我在安裝Linux(或者X)時有問題,你能幫我嗎?提问:我在安装Linux(或者X)时有问题,你能帮我吗?
回答:不能,我只有親自在你的電腦上動手才能找到毛病。回答:不能,我只有亲自在你的电脑上动手才能找到毛病。
還是去找你當地的Linux用戶組尋求手把手的指導吧(你能在這兒找到用戶組的清單)。还是去找你当地的Linux用户组寻求手把手的指导吧(你能在这儿找到用户组的清单)。
提問:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢?提问:我怎么才能破解root帐号/窃取OP特权/读别人的邮件呢?
回答:想要這樣做,說明你是個卑鄙小人;想找個黑客幫你,說明你是個白癡!回答:想要这样做,说明你是个卑鄙小人;想找个黑客帮你,说明你是个白痴!
= 好問題,壞問題= =好问题,坏问题=
最後,我舉一些例子來說明,怎樣聰明的提問;最后,我举一些例子来说明,怎样聪明的提问;
同一個問題的兩種問法被放在一起,一種是愚蠢的,另一種才是明智的。同一个问题的两种问法被放在一起,一种是愚蠢的,另一种才是明智的。
蠢問題:我可以在哪兒找到關於Foonly Flurbamatic的資料?蠢问题:我可以在哪儿找到关于Foonly Flurbamatic的资料?
// 這種問法無非想得到“STFW”這樣的回答。 //这种问法无非想得到“STFW”这样的回答。
聰明問題:我用Google搜索過“Foonly Flurbamatic 2600”,聪明问题:我用Google搜索过“Foonly Flurbamatic 2600”,
但是沒找到有用的結果。但是没找到有用的结果。 誰知道上哪兒去找對這種設備編程的資料?谁知道上哪儿去找对这种设备编程的资料?
// 這個問題已經STFW過了,看起來他真的遇到了麻煩。 //这个问题已经STFW过了,看起来他真的遇到了麻烦。
蠢問題:我從FOO項目找來的源碼沒法編譯。蠢问题:我从FOO项目找来的源码没法编译。 它怎麼這麼爛?它怎么这么烂?
// 他覺得都是別人的錯,這個傲慢自大的傢伙 //他觉得都是别人的错,这个傲慢自大的家伙
聰明問題:FOO專案代碼在Nulix 6.2版下無法編譯通過。聪明问题:FOO专案代码在Nulix 6.2版下无法编译通过。
我讀過了FAQ,但面沒有提到跟Nulix有關的問題。我读过了FAQ,但面没有提到跟Nulix有关的问题。
這是我編譯過程的記錄,我有什麼做得不對的地方嗎?这是我编译过程的记录,我有什么做得不对的地方吗?
// 他講明瞭環境,也讀過了FAQ,還指明了錯誤, //他讲明了环境,也读过了FAQ,还指明了错误,
並且他沒有把問題的責任推到別人頭上,這個傢伙值得留意。并且他没有把问题的责任推到别人头上,这个家伙值得留意。
蠢問題:我的主板有問題了,誰來幫我?蠢问题:我的主板有问题了,谁来帮我?
// 普通黑客對這類問題的回答通常是:“好的,還要幫你拍拍背和換尿布嗎?” //普通黑客对这类问题的回答通常是:“好的,还要帮你拍拍背和换尿布吗?”
,然後按下刪除鍵。 ,然后按下删除键。
聰明問題:我在S2464主板上試過了X、Y和Z,但沒什麼作用,聪明问题:我在S2464主板上试过了X、Y和Z,但没什么作用,
我又試了A、B和C。我又试了A、B和C。 請注意當我嘗試C時的奇怪現象。请注意当我尝试C时的奇怪现象。 顯然邊帶傳輸中出現了收縮,显然边带传输中出现了收缩,
但結果出人意料。但结果出人意料。 在多處理器主板上引起邊帶洩漏的通常原因是什麼?在多处理器主板上引起边带泄漏的通常原因是什么?
誰有好主意接下來我該做些什麼測試才能找出問題?谁有好主意接下来我该做些什么测试才能找出问题?
// 這個傢伙,從另一個角度來看,值得去回答他。 //这个家伙,从另一个角度来看,值得去回答他。 他表現出了解決問題的能力,他表现出了解决问题的能力,
而不是坐等天上掉答案。而不是坐等天上掉答案。
在最後一個問題中,注意“告訴我答案”和“給我啟示,指出我還應該做什麼診斷工作”在最后一个问题中,注意“告诉我答案”和“给我启示,指出我还应该做什么诊断工作”
之間微妙而又重要的區別。之间微妙而又重要的区别。
事實上,後一個問題源自於2001年8月在Linux內核郵件列表上的一個真實的提問。事实上,后一个问题源自于2001年8月在Linux内核邮件列表上的一个真实的提问。
我(Eric)就是那個提出問題的人。我(Eric)就是那个提出问题的人。 我在Tyan S2464主板上觀察到了這種無法解釋的鎖定現象,列表成員們提供了解決那一問題的重要資訊。我在Tyan S2464主板上观察到了这种无法解释的锁定现象,列表成员们提供了解决那一问题的重要资讯。
通過我的提問方法,我給了大家值得玩味的東西;我讓人們很容易參與並且被吸引進來。通过我的提问方法,我给了大家值得玩味的东西;我让人们很容易参与并且被吸引进来。
我顯示了自己具備和他們同等的能力,邀請他們與我共同探討。我显示了自己具备和他们同等的能力,邀请他们与我共同探讨。
我告訴他們我所走過的彎路,以避免他們再浪費時間,這是一種對他人時間價值的尊重。我告诉他们我所走过的弯路,以避免他们再浪费时间,这是一种对他人时间价值的尊重。
後來,當我向每個人表示感謝,並且讚賞這套程式(指郵件列表中的討論后来,当我向每个人表示感谢,并且赞赏这套程式(指邮件列表中的讨论
–譯者注)運作得非常出色的時候,一個Linux內核?件列(lkml)成員表示,問題得到解決並非由於我是這個列表中的“名人”, –译者注)运作得非常出色的时候,一个Linux内核?件列(lkml)成员表示,问题得到解决并非由于我是这个列表中的“名人”,
而是因為我用了正確的方式來提問。而是因为我用了正确的方式来提问。
我們黑客從某種角度來說是擁有豐富知識但缺乏人情味的傢伙;我相信他是對的,如果我象個乞討者那樣提問,不論我是誰,一定會惹惱某些人或者被他們忽視。我们黑客从某种角度来说是拥有丰富知识但缺乏人情味的家伙;我相信他是对的,如果我象个乞讨者那样提问,不论我是谁,一定会惹恼某些人或者被他们忽视。 他建議我記下這件事,給編寫這個指南的人一些指導。他建议我记下这件事,给编写这个指南的人一些指导。
= 找不到答案怎麼辦= =找不到答案怎么办=
如果仍得不到答案,請不要以為我們覺得無法幫助你。如果仍得不到答案,请不要以为我们觉得无法帮助你。
有時只是看到你問題的人不知道答案罷了。有时只是看到你问题的人不知道答案罢了。 沒有回應不代表你被忽視,没有回应不代表你被忽视,
雖然不可否認這種差別很難區分。虽然不可否认这种差别很难区分。
總的說來,簡單的重複張貼問題是個很糟的想法。总的说来,简单的重复张贴问题是个很糟的想法。 這將被視為無意義的喧鬧。这将被视为无意义的喧闹。
你可以通過其他渠道獲得幫助,這些渠道通常更適合初學者的需要。你可以通过其他渠道获得帮助,这些渠道通常更适合初学者的需要。
有許多網上的以及本地的用戶組,由狂熱的軟體愛好者(即使他們可能從沒親自寫過任何軟體)組成。有许多网上的以及本地的用户组,由狂热的软体爱好者(即使他们可能从没亲自写过任何软体)组成。 通常人們組建這樣的團體來互相幫助並幫助新手。通常人们组建这样的团体来互相帮助并帮助新手。
另外,你可以向很多商業公司尋求幫助,不論公司大還是小(Red Hat 和LinuxCare 就是兩個最常見的例子)。另外,你可以向很多商业公司寻求帮助,不论公司大还是小(Red Hat和LinuxCare就是两个最常见的例子)。
別為要付費才能獲得幫助而感到沮喪!别为要付费才能获得帮助而感到沮丧! 畢竟,假使你的汽車發動機汽缸密封圈爆掉了–完全可能如此–你還得把它送到修車鋪,並且為維修付費。毕竟,假使你的汽车发动机汽缸密封圈爆掉了–完全可能如此–你还得把它送到修车铺,并且为维修付费。
就算軟體沒花費你一分錢,你也不能強求技術支援總是免費的。就算软体没花费你一分钱,你也不能强求技术支援总是免费的。
對大眾化的軟體,就象Linux之類而言,每個開發者至少會有上萬名用戶。对大众化的软体,就象Linux之类而言,每个开发者至少会有上万名用户。
根本不可能由一個人來處理來自上萬名用戶的求助電話。根本不可能由一个人来处理来自上万名用户的求助电话。
要知道,即使你要為幫助付費,同你必須購買同�軟體相比,要知道,即使你要为帮助付费,同你必须购买同 � 软体相比,
你所付出的也是微不足道的(通常封閉源代碼軟體的技術支援費用比開放源代碼軟體要高得多,且內容也不那麼豐富)。你所付出的也是微不足道的(通常封闭源代码软体的技术支援费用比开放源代码软体要高得多,且内容也不那么丰富)。
RTFM和STFW:別煩我啦 RTFM和STFW:别烦我啦
有一個古老而神聖的傳統:如果你收到“RTFM (Read The Fucking Manual)”的回復,回答者認為你應該去讀TMD手冊。有一个古老而神圣的传统:如果你收到“RTFM (Read The Fucking Manual)”的回复,回答者认为你应该去读TMD手册。 當然,基本上他是對的,你應該讀一讀。当然,基本上他是对的,你应该读一读。
RTFM有一個年輕的親戚。 RTFM有一个年轻的亲戚。 如果答案是“STFW (Search The Fucking Web)”,回答者認為你應該到TMD的網上去搜索。如果答案是“STFW (Search The Fucking Web)”,回答者认为你应该到TMD的网上去搜索。 基本上,他也是對的,你就去找吧。基本上,他也是对的,你就去找吧。
通常,用這兩句之一回答你的人會給你一份包含你需要內容的手冊或者一個網址,通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,
而且他們打這些字的時候正在閱讀著。而且他们打这些字的时候正在阅读着。
這些答復意味著回答者認為(1). 你需要的資訊非常容易獲得;这些答复意味着回答者认为(1).你需要的资讯非常容易获得;
(2). 你自己去搜索這些資訊比灌給你能讓你學到更多。 (2).你自己去搜索这些资讯比灌给你能让你学到更多。
別為這個而不爽;依照黑客的標準,他沒有對你的要求視而不見,已經能大致能表示對你的關注。别为这个而不爽;依照黑客的标准,他没有对你的要求视而不见,已经能大致能表示对你的关注。 你應該對他祖母般的慈祥表示感謝。你应该对他祖母般的慈祥表示感谢。
提问是一门艺术,需要充分的思考、技巧和练习,你不能帮助别人理解你的问题,就别想让别人帮助你。好的提问才能得到预期的答案。lifehacker.com的一篇文章谈到如何在问问题时,无论被问的人是上司、同事、朋友,还是google,注意哪些方面才能尽最大可能得到你所需要的帮助
问题要确定、具体
模糊、问不到点子上的问题别人无法回答。是什么东西不工作了?现象和结果是什么?出什么样的错误?具体的情况是怎样的?问别人之前先问自己一遍,把这些想清楚了再问别人,节省大家的时间。
提问之前自己先研究调查一下
问别人之前最好自己先找找答案。对于显而易见的问题,不调查一下就随便去问很招人讨厌,尤其是在一些论坛里。至少你应该先看看用户手册,搜一搜google再去麻烦别人。搜不到再去问别人,可以告诉别人“我查过手册,但是没有”或者“我搜了google,但是没有找到”,至少你努力过,别人帮助你的几率也会大很多。
问正确的人
有时候抓到一个人恨不得什么问题都问他,就好像在论坛里乱发帖子问问题,对别人有时候也是一种困扰。找到正确的人,去正确的地方,你的问题才有可能得到回答,放过其他可怜的群众吧。
让被问的人觉得值得回答你的问题
“你做的这个软件根本不工作!我都快疯了!马上帮我解决这个问题!”
你可能是快疯了,可是如果把你的这种情绪传达给别人,未必有什么正面影响。
“你好,我对你的软件很有兴趣,正准备在我的blog里宣传一下,可是我碰到了一些问题。。。”
这样别人多半有兴趣帮你解决问题,并且很愿意和你这样一个热心的测试人员合作。
by Gina Trapani
In order to find the answer you’re looking for, you have to ask the right question. No, I didn’t just pull that out of a fortune cookie. Asking good questions is an essential skill that takes mindfulness, strategy and practice. The bottom line is: few people will help a person who doesn’t help herself.
Back story: Last week while Adam was on vacation I processed all the Lifehacker.com reader email, between 75 and 100 legitimate messages a day, a duty we usually split. (Ok, Adam does pretty much all of it.) Most of the messages we receive – besides tips – are questions about existing posts, cries for computing help and readers wondering where they can find information about X, Y or Z. We limit the time we spend on email, so I found myself only answering the questions that were clear, specific, friendly, motivating, interesting and something the reader could not have found if s/he’d simply done the research (i.e., asked Google.)
In short, only good questions got answers.
So next time you’re formulating a question for someone – be it your boss, co-worker, Google, random stranger on the internets, or your Mom – keep these guidelines in mind to maximize your chances at getting the help you need.
Be specific.
“I tried to use your script and it didn’t work. What am I doing wrong?”
This type of question is impossible to answer because it’s too vague. What didn’t work? What was the output? Was there an error? What was it? What happened exactly? If you need help, help the askee help you. Don’t ask unless you can make your question clear – it’ll save both of you a lot of back and forth.
Do your research.
“Do you know how someone might keep a to do list in a plain text file, like todo.txt?”
If it’s obvious that you haven’t put any elbow grease into researching your question yourself, folks are a lot less likely to help you – especially on mailing lists. Make sure you do a good faith run through the user guide and search the web before you waste other people’s bandwidth on an issue you can solve yourself.
There are times when web search won’t help because you don’t know the right terms that others have used to describe the concept. In those cases, say up front, “My Google skills failed me” or “I searched a few different combinations of foo and bar, with no success” or “I called customer service and they couldn’t help either.”
Show that you at least tried. Just remember that busy smart people will only volunteer their time if you show that you’re not just trying to con others into doing free research work for you.
Ask the right person.
“When I tried to do X on example.com I get this error. How come?”
When you find a helpful resource, your natural inclination is to ask them questions about everything. But, asking anyone other than someone AT example.com about an error there just doesn’t make sense.
Make sure you’re asking the right folks for the information you need. This goes triple for departments at the office and friends. Develop your own personal “board of experts” – or join a Q&A community like the excellent Ask MetaFilter. Then, when you have a question, after you’ve done your research and come up short, consider who in your life is best equipped to answer it with ease. Spare everyone else.
Make it worth the askee’s while.
“I can’t get your program to work and it’s driving me crazy!!! Help me ASAP I have a deadline!!!”
When you’re tired and frustrated and wrapped up in your own needs, it can be hard to step outside yourself and think about others. But the best way to get someone to help you out of the goodness of their heart is to offer them something in return.
“Hi, I want to use your software because it looks really interesting, and I’d like to write it up on my web site. But I’m having this problem which doesn’t seem to be documented. Can you help me work it out?”
In that case, the askee has two motivations: the first is free publicity, and the second is the chance to work with a cooperative, calm tester to debug a problem and complete the software’s documentation.
A favorite childhood story of mine, Stone Soup, is an excellent example of motivating others to help in action. Wikipedia says one of the key takeaways of the tale is:
If you want to get people to do something, don’t tell them how desperately they are needed. Don’t try to appeal to their sympathy and kindness. Instead, create the impression that you are giving them the opportunity to be part of your success.
Any questions? Let us know in the comments or to tips at lifehacker.com.
Gina Trapani, the editor of Lifehacker, asks and answers with varying degrees of success. Her semi-weekly feature, Geek to Live, appears every Wednesday and Friday on Lifehacker. Subscribe to the Geek to Live feed to get new installments in your newsreader