【網(wǎng)絡(luò)】提問(wèn)的智慧(1)
本文為轉(zhuǎn)載內(nèi)容:
How To Ask Questions The Smart Way
Copyright ? 2001,2006,2014 Eric S. Raymond, Rick Moen
本指南英文版版權(quán)為 Eric S. Raymond, Rick Moen 所有。
原文網(wǎng)址:http://www.catb.org/~esr/faqs/smart-questions.html

聲明
許多項(xiàng)目在他們網(wǎng)站的幫助文檔中鏈接了本指南。這很好,這正是我們想要的用途。但如果你是該項(xiàng)目管理員并試圖創(chuàng)建指向本指南的超鏈接,請(qǐng)?jiān)诔溄痈浇娘@著位置注明:
本指南不提供此項(xiàng)目的實(shí)際支持服務(wù)!
我們已經(jīng)深刻領(lǐng)教到缺少上述聲明所帶來(lái)的痛苦:我們將不停地被那些認(rèn)為發(fā)布這本指南就意味著有責(zé)任解決世上所有技術(shù)問(wèn)題的傻瓜苦苦糾纏。
如果你因?qū)で竽承椭喿x本指南,并在離開時(shí)還覺得可以從本文作者這里得到直接幫助,那你就是我們之前說(shuō)的那些傻瓜之一。別問(wèn)我們問(wèn)題,我們只會(huì)忽略你。我們?cè)谶@本指南中想教你如何從那些真正懂得你所遇到的軟件或硬件問(wèn)題的人處取得協(xié)助,而 99% 的情況下那不會(huì)是我們。除非你確定本指南的作者之一剛好是你所遇到的問(wèn)題領(lǐng)域的專家,否則請(qǐng)不要打擾我們,這樣大家都會(huì)開心一點(diǎn)。

簡(jiǎn)介
在黑客的世界里,當(dāng)你拋出一個(gè)技術(shù)問(wèn)題時(shí),最終是否能得到有用的回答,往往取決于你所提問(wèn)和追問(wèn)的方式。本指南將教你如何正確地提問(wèn)以獲得你滿意的答案。
現(xiàn)在開源(Open Source)軟件已經(jīng)相當(dāng)盛行,您通??梢詮钠渌薪?jīng)驗(yàn)的用戶那里獲得與黑客一樣好的答案,這是件好事;和黑客相比,用戶們往往對(duì)那些新手常遇到的問(wèn)題更寬容一些。盡管如此,以我們?cè)诖送扑]的方式對(duì)待這些有經(jīng)驗(yàn)的用戶通常也是從他們那里獲得有用答案的最有效方式。
首先你應(yīng)該明白,黑客們喜愛有挑戰(zhàn)性的問(wèn)題,或者能激發(fā)他們思維的好問(wèn)題。如果我們并非如此,那我們也不會(huì)成為你想詢問(wèn)的對(duì)象。如果你給了我們一個(gè)值得反復(fù)咀嚼玩味的好問(wèn)題,我們自會(huì)對(duì)你感激不盡。好問(wèn)題是激勵(lì),是厚禮。好問(wèn)題可以提高我們的理解力,而且通常會(huì)暴露我們以前從沒意識(shí)到或者思考過(guò)的問(wèn)題。對(duì)黑客而言,“好問(wèn)題!”是誠(chéng)摯的大力稱贊。
盡管如此,黑客們有著蔑視或傲慢面對(duì)簡(jiǎn)單問(wèn)題的壞名聲,這有時(shí)讓我們看起來(lái)對(duì)新手、無(wú)知者似乎較有敵意,但其實(shí)不是那樣的。
我們不諱言我們對(duì)那些不愿思考、或者在發(fā)問(wèn)前不做他們?cè)撟龅氖碌娜说拿镆暋D切┤耸菚r(shí)間殺手 —— 他們只想索取,從不付出,消耗我們可用在更有趣的問(wèn)題或更值得回答的人身上的時(shí)間。我們稱這樣的人為 失敗者(擼瑟)
(由于歷史原因,我們有時(shí)把它拼作 lusers
)。
我們意識(shí)到許多人只是想使用我們寫的軟件,他們對(duì)學(xué)習(xí)技術(shù)細(xì)節(jié)沒有興趣。對(duì)大多數(shù)人而言,電腦只是種工具,是種達(dá)到目的的手段而已。他們有自己的生活并且有更要緊的事要做。我們認(rèn)可這點(diǎn),也從不指望每個(gè)人都對(duì)這些讓我們著迷的技術(shù)問(wèn)題感興趣。盡管如此,我們只為那些真正有興趣并愿意積極參與問(wèn)題解決的人調(diào)整回答問(wèn)題的風(fēng)格。這點(diǎn)不會(huì)變,也不該變:否則,我們就是在最擅長(zhǎng)的事情上降低效率。
我們(在很大程度上)是自愿的,從繁忙的生活中抽出時(shí)間來(lái)解答疑惑,而且時(shí)常被提問(wèn)淹沒。所以我們無(wú)情地濾掉一些話題,特別是拋棄那些看起來(lái)像失敗者的家伙,以便更高效地利用時(shí)間來(lái)回答贏家(winner)
的問(wèn)題。
如果你厭惡我們的態(tài)度,高高在上,或過(guò)于傲慢,不妨也設(shè)身處地想想。我們并沒有要求你向我們屈服 —— 事實(shí)上,我們大多數(shù)人非常樂意與你平等地交流,只要你付出小小努力來(lái)滿足基本要求,我們就會(huì)歡迎你加入我們的文化。但讓我們幫助那些不愿意幫助自己的人是沒有效率的。無(wú)知沒有關(guān)系,但裝白癡就是不行。
所以,你不必在技術(shù)上很在行才能吸引我們的注意,但你必須表現(xiàn)出能引導(dǎo)你變得在行的特質(zhì) —— 機(jī)敏、有想法、善于觀察、樂于主動(dòng)參與解決問(wèn)題。如果你做不到這些使你與眾不同的事情,我們建議你花點(diǎn)錢找家商業(yè)公司簽個(gè)技術(shù)支持服務(wù)合同,而不是要求黑客個(gè)人無(wú)償?shù)貛椭恪?/p>
如果你決定向我們求助,當(dāng)然你也不希望被視為失敗者,更不愿成為失敗者中的一員。能立刻得到快速并有效答案的最好方法,就是像贏家那樣提問(wèn) —— 聰明、自信、有解決問(wèn)題的思路,只是偶爾在特定的問(wèn)題上需要獲得一點(diǎn)幫助。
(歡迎對(duì)本指南提出改進(jìn)意見。你可以把你的建議發(fā)送至 esr@thyrsus.com 或 respond-auto@linuxmafia.com。然而請(qǐng)注意,本文并非網(wǎng)絡(luò)禮節(jié)的通用指南,而我們通常會(huì)拒絕無(wú)助于在技術(shù)論壇得到有用答案的建議)。

在提問(wèn)之前
在你準(zhǔn)備要通過(guò)電子郵件、新聞群組或者聊天室提出技術(shù)問(wèn)題前,請(qǐng)先做到以下事情:
嘗試在你準(zhǔn)備提問(wèn)的論壇的舊文章中搜索答案。
嘗試上網(wǎng)搜索以找到答案。
嘗試閱讀手冊(cè)以找到答案。
嘗試閱讀常見問(wèn)題文件(FAQ)以找到答案。
嘗試自己檢查或試驗(yàn)以找到答案。
向你身邊的強(qiáng)者朋友打聽以找到答案。
如果你是程序開發(fā)者,請(qǐng)嘗試閱讀源代碼以找到答案。
當(dāng)你提出問(wèn)題的時(shí)候,請(qǐng)先表明你已經(jīng)做了上述的努力;這將有助于樹立你并不是一個(gè)不勞而獲且浪費(fèi)別人的時(shí)間的提問(wèn)者。如果你能一并表達(dá)在做了上述努力的過(guò)程中所學(xué)到的東西會(huì)更好,因?yàn)槲覀兏鼧酚诨卮鹉切┍憩F(xiàn)出能從答案中學(xué)習(xí)的人的問(wèn)題。
運(yùn)用某些策略,比如先用 Google 搜索你所遇到的各種錯(cuò)誤信息(搜索 Google 論壇和網(wǎng)頁(yè)),這樣很可能直接就找到了能解決問(wèn)題的文件或郵件列表線索。即使沒有結(jié)果,在郵件列表或新聞組尋求幫助時(shí)加上一句 我在 Google 中搜過(guò)下列句子但沒有找到什么有用的東西
也是件好事,即使它只是表明了搜索引擎不能提供哪些幫助。這么做(加上搜索過(guò)的字串)也讓遇到相似問(wèn)題的其他人能被搜索引擎引導(dǎo)到你的提問(wèn)來(lái)。
別著急,不要指望幾秒鐘的 Google 搜索就能解決一個(gè)復(fù)雜的問(wèn)題。在向?qū)<仪笾?,再閱讀一下常見問(wèn)題文件(FAQ)、放輕松、坐得舒服一些,再花點(diǎn)時(shí)間思考一下這個(gè)問(wèn)題。相信我們,他們能從你的提問(wèn)看出你做了多少閱讀與思考,如果你是有備而來(lái),將更有可能得到解答。不要將所有問(wèn)題一股腦拋出,只因你的第一次搜索沒有找到答案(或者找到太多答案)。
準(zhǔn)備好你的問(wèn)題,再將問(wèn)題仔細(xì)地思考過(guò)一遍,因?yàn)椴萋实陌l(fā)問(wèn)只能得到草率的回答,或者根本得不到任何答案。越是能表現(xiàn)出在尋求幫助前你為解決問(wèn)題所付出的努力,你越有可能得到實(shí)質(zhì)性的幫助。
小心別問(wèn)錯(cuò)了問(wèn)題。如果你的問(wèn)題基于錯(cuò)誤的假設(shè),某個(gè)普通黑客(J. Random Hacker)多半會(huì)一邊在心里想著蠢問(wèn)題…
,一邊用無(wú)意義的字面解釋來(lái)答復(fù)你,希望著你會(huì)從問(wèn)題的回答(而非你想得到的答案)中汲取教訓(xùn)。
絕不要自以為夠格得到答案,你沒有;你并沒有。畢竟你沒有為這種服務(wù)支付任何報(bào)酬。你將會(huì)是自己去掙到一個(gè)答案,靠提出有內(nèi)涵的、有趣的、有思維激勵(lì)作用的問(wèn)題 —— 一個(gè)有潛力能貢獻(xiàn)社區(qū)經(jīng)驗(yàn)的問(wèn)題,而不僅僅是被動(dòng)地從他人處索取知識(shí)。
另一方面,表明你愿意在找答案的過(guò)程中做點(diǎn)什么是一個(gè)非常好的開端。誰(shuí)能給點(diǎn)提示?
、我的這個(gè)例子里缺了什么?
以及我應(yīng)該檢查什么地方
比請(qǐng)把我需要的確切的過(guò)程貼出來(lái)
更容易得到答復(fù)。因?yàn)槟惚憩F(xiàn)出只要有人能指?jìng)€(gè)正確方向,你就有完成它的能力和決心。

當(dāng)你提問(wèn)時(shí)

慎選提問(wèn)的論壇
小心選擇你要提問(wèn)的場(chǎng)合。如果你做了下述的事情,你很可能被忽略掉或者被看作失敗者:
在與主題不合的論壇上貼出你的問(wèn)題。
在探討進(jìn)階技術(shù)問(wèn)題的論壇張貼非常初級(jí)的問(wèn)題;反之亦然。
在太多的不同新聞群組上重復(fù)轉(zhuǎn)貼同樣的問(wèn)題(cross-post)。
向既非熟人也沒有義務(wù)解決你問(wèn)題的人發(fā)送私人電郵。
黑客會(huì)剔除掉那些搞錯(cuò)場(chǎng)合的問(wèn)題,以保護(hù)他們溝通的渠道不被無(wú)關(guān)的東西淹沒。你不會(huì)想讓這種事發(fā)生在自己身上的。
因此,第一步是找到對(duì)的論壇。再說(shuō)一次,Google 和其它搜索引擎還是你的朋友,用它們來(lái)找到與你遭遇到困難的軟硬件問(wèn)題最相關(guān)的網(wǎng)站。通常那兒都有常見問(wèn)題(FAQ)、郵件列表及相關(guān)說(shuō)明文件的鏈接。如果你的努力(包括閱讀 FAQ)都沒有結(jié)果,網(wǎng)站上也許還有報(bào)告 Bug(Bug-reporting)的流程或鏈接,如果是這樣,鏈過(guò)去看看。
向陌生的人或論壇發(fā)送郵件最可能是風(fēng)險(xiǎn)最大的事情。舉例來(lái)說(shuō),別假設(shè)一個(gè)提供豐富內(nèi)容的網(wǎng)頁(yè)的作者會(huì)想充當(dāng)你的免費(fèi)顧問(wèn)。不要對(duì)你的問(wèn)題是否會(huì)受到歡迎做太樂觀的估計(jì) —— 如果你不確定,那就向別處發(fā)送,或者壓根別發(fā)。
在選擇論壇、新聞群組或郵件列表時(shí),別太相信它的名字,先看看 FAQ 或者許可書以弄清楚你的問(wèn)題是否切題。發(fā)文前先翻翻已有的話題,這樣可以讓你感受一下那里的文化。事實(shí)上,事先在新聞組或郵件列表的歷史記錄中搜索與你問(wèn)題相關(guān)的關(guān)鍵詞是個(gè)極好的主意,也許這樣就找到答案了。即使沒有,也能幫助你歸納出更好的問(wèn)題。
別像機(jī)關(guān)槍似的一次“掃射”所有的幫助渠道,這就像大喊大叫一樣會(huì)使人不快。要一個(gè)一個(gè)地來(lái)。
搞清楚你的主題!最典型的錯(cuò)誤之一是在某種致力于跨平臺(tái)可移植的語(yǔ)言、套件或工具的論壇中提關(guān)于 Unix 或 Windows 操作系統(tǒng)程序界面的問(wèn)題。如果你不明白為什么這是大錯(cuò),最好在搞清楚這之間差異之前什么也別問(wèn)。
一般來(lái)說(shuō),在仔細(xì)挑選的公共論壇中提問(wèn),會(huì)比在私有論壇中提同樣的問(wèn)題更容易得到有用的回答。有幾個(gè)理由可以支持這點(diǎn),一是看潛在的回復(fù)者有多少,二是看觀眾有多少。黑客較愿意回答那些能幫助到許多人的問(wèn)題。
可以理解的是,老練的黑客和一些熱門軟件的作者正在接受過(guò)多的錯(cuò)發(fā)信息。就像那根最后壓垮駱駝背的稻草一樣,你的加入也有可能使情況走向極端 —— 已經(jīng)好幾次了,一些熱門軟件的作者由于涌入其私人郵箱的大量不堪忍受的無(wú)用郵件而不再提供支持。
Stack Overflow
搜索,然后在 Stack Exchange 問(wèn)。
近年來(lái),Stack Exchange 社區(qū)已經(jīng)成為回答技術(shù)及其他問(wèn)題的主要渠道,尤其是那些開放源碼的項(xiàng)目。
因?yàn)?Google 索引是即時(shí)的,在看 Stack Exchange 之前先在 Google 搜索。有很高的幾率某人已經(jīng)問(wèn)了一個(gè)類似的問(wèn)題,而且 Stack Exchange 網(wǎng)站們往往會(huì)是搜索結(jié)果中最前面幾個(gè)。如果你在 Google 上沒有找到任何答案,你再到特定相關(guān)主題的網(wǎng)站去找。用標(biāo)簽(Tag)搜索能讓你更縮小你的搜索結(jié)果。
如果你還是找不到任何對(duì)你的問(wèn)題有用的內(nèi)容,請(qǐng)把你的問(wèn)題發(fā)在與它最相關(guān)的網(wǎng)站上。提問(wèn)的時(shí)候請(qǐng)善用格式化工具,尤其注意為代碼添加格式,并且添加相關(guān)的標(biāo)簽(特別是編程語(yǔ)言、操作系統(tǒng)或庫(kù)/包的名稱)。當(dāng)有人要求你提供更多相關(guān)信息時(shí),請(qǐng)編輯你的貼子來(lái)補(bǔ)充它們[譯注:而不是發(fā)一個(gè)回帖或回答!]。如果你覺得一個(gè)答案對(duì)你有幫助,點(diǎn)擊向上的箭頭來(lái)為它投票;如果一個(gè)答案提供了問(wèn)題的正確解決方案,點(diǎn)擊投票按鈕下方的對(duì)勾來(lái)將它標(biāo)記為正解。
Stack Exchange 已經(jīng)成長(zhǎng)到超過(guò)一百個(gè)網(wǎng)站,以下是最常用的幾個(gè)站:
Super User 是問(wèn)一些通用的電腦問(wèn)題,如果你的問(wèn)題跟代碼或是寫程序無(wú)關(guān),只是一些網(wǎng)絡(luò)連線之類的,請(qǐng)到這里。
Stack Overflow 是問(wèn)寫程序有關(guān)的問(wèn)題。
Server Fault 是問(wèn)服務(wù)器和網(wǎng)管相關(guān)的問(wèn)題。
網(wǎng)站和 IRC 論壇
本地的用戶群組(user group),或者你所用的 Linux 發(fā)行版本也許正在宣傳他們的網(wǎng)頁(yè)論壇或 IRC 頻道,并提供新手幫助(在一些非英語(yǔ)國(guó)家,新手論壇很可能還是郵件列表),這些都是開始提問(wèn)的好地方,特別是當(dāng)你覺得遇到的也許只是相對(duì)簡(jiǎn)單或者很普通的問(wèn)題時(shí)。有廣告贊助的 IRC 頻道是公開歡迎提問(wèn)的地方,通??梢约磿r(shí)得到回應(yīng)。
事實(shí)上,如果程序出的問(wèn)題只發(fā)生在特定 Linux 發(fā)行版提供的版本(這很常見),最好先去該發(fā)行版的論壇或郵件列表中提問(wèn),再到程序本身的論壇或郵件列表提問(wèn)。(否則)該項(xiàng)目的黑客可能僅僅回復(fù)“使用我們的版本”。
在任何論壇發(fā)文以前,先確認(rèn)一下有沒有搜索功能。如果有,就試著搜索一下問(wèn)題的幾個(gè)關(guān)鍵詞,也許這會(huì)有幫助。如果在此之前你已做過(guò)通用的網(wǎng)頁(yè)搜索(你也該這樣做),還是再搜索一下論壇,搜索引擎有可能沒來(lái)得及索引此論壇的全部?jī)?nèi)容。
通過(guò)論壇或 IRC 頻道來(lái)提供用戶支持服務(wù)有增長(zhǎng)的趨勢(shì),電子郵件則大多為項(xiàng)目開發(fā)者間的交流而保留。所以最好先在論壇或 IRC 中尋求與該項(xiàng)目相關(guān)的協(xié)助。
在使用 IRC 的時(shí)候,首先最好不要發(fā)布很長(zhǎng)的問(wèn)題描述,有些人稱之為頻道洪水。最好通過(guò)一句話的問(wèn)題描述來(lái)開始聊天。
第二步,使用項(xiàng)目郵件列表
當(dāng)某個(gè)項(xiàng)目提供開發(fā)者郵件列表時(shí),要向列表而不是其中的個(gè)別成員提問(wèn),即使你確信他能最好地回答你的問(wèn)題。查一查項(xiàng)目的文件和首頁(yè),找到項(xiàng)目的郵件列表并使用它。有幾個(gè)很好的理由支持我們采用這種辦法:
任何好到需要向個(gè)別開發(fā)者提出的問(wèn)題,也將對(duì)整個(gè)項(xiàng)目群組有益。反之,如果你認(rèn)為自己的問(wèn)題對(duì)整個(gè)項(xiàng)目群組來(lái)說(shuō)太愚蠢,那這也不能成為騷擾個(gè)別開發(fā)者的理由。
向列表提問(wèn)可以分散開發(fā)者的負(fù)擔(dān),個(gè)別開發(fā)者(尤其是項(xiàng)目領(lǐng)導(dǎo)人)也許太忙以至于沒法回答你的問(wèn)題。
大多數(shù)郵件列表都會(huì)被存檔,那些被存檔的內(nèi)容將被搜索引擎索引。如果你向列表提問(wèn)并得到解答,將來(lái)其他人可以通過(guò)網(wǎng)頁(yè)搜索找到你的問(wèn)題和答案,也就不用再次發(fā)問(wèn)了。
如果某些問(wèn)題經(jīng)常被問(wèn)到,開發(fā)者可以利用此信息來(lái)改進(jìn)說(shuō)明文件或軟件本身,以使其更清楚。如果只是私下提問(wèn),就沒有人能看到最常見問(wèn)題的完整場(chǎng)景。
如果一個(gè)項(xiàng)目既有“用戶”也有“開發(fā)者”(或“黑客”)郵件列表或論壇,而你又不會(huì)動(dòng)到那些源代碼,那么就向“用戶”列表或論壇提問(wèn)。不要假設(shè)自己會(huì)在開發(fā)者列表中受到歡迎,那些人多半會(huì)將你的提問(wèn)視為干擾他們開發(fā)的噪音。
然而,如果你確信你的問(wèn)題很特別,而且在“用戶”列表或論壇中幾天都沒有回復(fù),可以試試前往“開發(fā)者”列表或論壇發(fā)問(wèn)。建議你在張貼前最好先暗地里觀察幾天以了解那里的行事方式(事實(shí)上這是參與任何私有或半私有列表的好主意)
如果你找不到一個(gè)項(xiàng)目的郵件列表,而只能查到項(xiàng)目維護(hù)者的電子郵件地址,盡管向他發(fā)信。即使是在這種情況下,也別假設(shè)(項(xiàng)目)郵件列表不存在。在你的電子郵件中,請(qǐng)陳述你已經(jīng)試過(guò)但沒有找到合適的郵件列表,也提及你不反對(duì)將自己的郵件轉(zhuǎn)發(fā)給他人(許多人認(rèn)為,即使沒什么秘密,私人電子郵件也不應(yīng)該被公開。通過(guò)允許將你的電子郵件轉(zhuǎn)發(fā)他人,你給了相應(yīng)人員處置你郵件的選擇)。