提問(wèn)的智慧(漢化節(jié)選)
原文:https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way
此處選取其中比較有普適意義的內(nèi)容的漢化
簡(jiǎn)介
在黑客的世界里,當(dāng)你拋出一個(gè)技術(shù)問(wèn)題時(shí),最終是否能得到有用的回答,往往取決于你所提問(wèn)和追問(wèn)的方式。本指南將教你如何正確的提問(wèn)以獲得你滿意的答案。
現(xiàn)在開(kāi)源(Open Source)軟件已經(jīng)相當(dāng)盛行,您通??梢詮钠渌薪?jīng)驗(yàn)的用戶那里獲得與黑客一樣好的答案,這是件好事;和黑客相比,用戶們往往對(duì)那些新手常遇到的問(wèn)題更寬容一些。盡管如此,以我們?cè)诖送扑]的方式對(duì)待這些有經(jīng)驗(yàn)的用戶通常也是從他們那里獲得有用答案的最有效方式。
首先你應(yīng)該明白,黑客們喜愛(ài)有挑戰(zhàn)性的問(wèn)題,或者能激發(fā)他們思維的好問(wèn)題。如果我們并非如此,那我們也不會(huì)成為你想詢問(wèn)的對(duì)象。如果你給了我們一個(gè)值得反復(fù)咀嚼玩味的好問(wèn)題,我們自會(huì)對(duì)你感激不盡。好問(wèn)題是激勵(lì),是厚禮。好問(wèn)題可以提高我們的理解力,而且通常會(huì)暴露我們以前從沒(méi)意識(shí)到或者思考過(guò)的問(wèn)題。對(duì)黑客而言,“好問(wèn)題!”是誠(chéng)摯的大力稱(chēng)贊。
盡管如此,黑客們有著蔑視或傲慢面對(duì)簡(jiǎn)單問(wèn)題的壞名聲,這有時(shí)讓我們看起來(lái)對(duì)新手、無(wú)知者似乎較有敵意,但其實(shí)不是那樣的。
我們不諱言我們對(duì)那些不愿思考、或者在發(fā)問(wèn)前不做他們?cè)撟龅氖碌娜说拿镆暋D切┤耸菚r(shí)間殺手 —— 他們只想索取,從不付出,消耗我們可用在更有趣的問(wèn)題或更值得回答的人身上的時(shí)間。我們稱(chēng)這樣的人為失敗者(擼瑟)(由于歷史原因,我們有時(shí)把它拼作lusers)。
我們意識(shí)到許多人只是想使用我們寫(xiě)的軟件,他們對(duì)學(xué)習(xí)技術(shù)細(xì)節(jié)沒(méi)有興趣。對(duì)大多數(shù)人而言,電腦只是種工具,是種達(dá)到目的的手段而已。他們有自己的生活并且有更要緊的事要做。我們了解這點(diǎn),也從不指望每個(gè)人都對(duì)這些讓我們著迷的技術(shù)問(wèn)題感興趣。盡管如此,我們回答問(wèn)題的風(fēng)格是指向那些真正對(duì)此有興趣并愿意主動(dòng)參與解決問(wèn)題的人,這一點(diǎn)不會(huì)變,也不該變。如果連這都變了,我們就是在降低做自己最擅長(zhǎng)的事情上的效率。
我們(在很大程度上)是自愿的,從繁忙的生活中抽出時(shí)間來(lái)解答疑惑,而且時(shí)常被提問(wèn)淹沒(méi)。所以我們無(wú)情地濾掉一些話題,特別是拋棄那些看起來(lái)像失敗者的家伙,以便更高效地利用時(shí)間來(lái)回答贏家(winner)的問(wèn)題。
如果你厭惡我們的態(tài)度,高高在上,或過(guò)于傲慢,不妨也設(shè)身處地想想。我們并沒(méi)有要求你向我們屈服 —— 事實(shí)上,我們大多數(shù)人非常樂(lè)意與你平等地交流,只要你付出小小努力來(lái)滿足基本要求,我們就會(huì)歡迎你加入我們的文化。但讓我們幫助那些不愿意幫助自己的人是沒(méi)有效率的。無(wú)知沒(méi)有關(guān)系,但裝白癡就是不行。
所以,你不必在技術(shù)上很在行才能吸引我們的注意,但你必須表現(xiàn)出能引導(dǎo)你變得在行的特質(zhì) —— 機(jī)敏、有想法、善于觀察、樂(lè)于主動(dòng)參與解決問(wèn)題。如果你做不到這些使你與眾不同的事情,我們建議你花點(diǎn)錢(qián)找家商業(yè)公司簽個(gè)技術(shù)支持服務(wù)合同,而不是要求黑客個(gè)人無(wú)償?shù)貛椭恪?span id="s0sssss00s" class="font-size-16">
如果你決定向我們求助,當(dāng)然你也不希望被視為失敗者,更不愿成為失敗者中的一員。能立刻得到快速并有效答案的最好方法,就是像贏家那樣提問(wèn) —— 聰明、自信、有解決問(wèn)題的思路,只是偶爾在特定的問(wèn)題上需要獲得一點(diǎn)幫助。
(歡迎對(duì)本指南提出改進(jìn)意見(jià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)先做到以下事情:
1嘗試在你準(zhǔn)備提問(wèn)的論壇的舊文章中搜索答案。
2嘗試上網(wǎng)搜索以找到答案。
3嘗試閱讀手冊(cè)以找到答案。
4嘗試閱讀常見(jiàn)問(wèn)題文件(FAQ)以找到答案。
5嘗試自己檢查或試驗(yàn)以找到答案。
6向你身邊的強(qiáng)者朋友打聽(tīng)以找到答案。
7如果你是程序開(kāi)發(fā)者,請(qǐng)嘗試閱讀源代碼以找到答案。
當(dāng)你提出問(wèn)題的時(shí)候,請(qǐng)先表明你已經(jīng)做了上述的努力;這將有助于樹(shù)立你并不是一個(gè)不勞而獲且浪費(fèi)別人的時(shí)間的提問(wèn)者。如果你能一并表達(dá)在做了上述努力的過(guò)程中所學(xué)到的東西會(huì)更好,因?yàn)槲覀兏鼧?lè)于回答那些表現(xiàn)出能從答案中學(xué)習(xí)的人的問(wèn)題。
運(yùn)用某些策略,比如先用 Google 搜索你所遇到的各種錯(cuò)誤信息(搜索Google 論壇和網(wǎng)頁(yè)),這樣很可能直接就找到了能解決問(wèn)題的文件或郵件列表線索。即使沒(méi)有結(jié)果,在郵件列表或新聞組尋求幫助時(shí)加上一句我在 Google 中搜過(guò)下列句子但沒(méi)有找到什么有用的東西也是件好事,即使它只是表明了搜索引擎不能提供哪些幫助。這么做(加上搜索過(guò)的字串)也讓遇到相似問(wèn)題的其他人能被搜索引擎引導(dǎo)到你的提問(wèn)來(lái)。
別著急,不要指望幾秒鐘的 Google 搜索就能解決一個(gè)復(fù)雜的問(wèn)題。在向?qū)<仪笾?,再閱讀一下常見(jiàn)問(wèn)題文件(FAQ)、放輕松、坐得舒服一些,再花點(diǎn)時(shí)間思考一下這個(gè)問(wèn)題。相信我們,他們能從你的提問(wèn)看出你做了多少閱讀與思考,如果你是有備而來(lái),將更有可能得到解答。不要將所有問(wèn)題一股腦拋出,只因你的第一次搜索沒(méi)有找到答案(或者找到太多答案)。
準(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)。
絕不要自以為夠格得到答案,你沒(méi)有;你并沒(méi)有。畢竟你沒(méi)有為這種服務(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è)非常好的開(kāi)端。誰(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)。
●向既非熟人也沒(méi)有義務(wù)解決你問(wèn)題的人發(fā)送私人電郵。
黑客會(huì)剔除掉那些搞錯(cuò)場(chǎng)合的問(wèn)題,以保護(hù)他們溝通的渠道不被無(wú)關(guān)的東西淹沒(méi)。你不會(huì)想讓這種事發(fā)生在自己身上的。
因此,第一步是找到對(duì)的論壇。再說(shuō)一次,Google 和其它搜索引擎還是你的朋友,用它們來(lái)找到與你遭遇到困難的軟硬件問(wèn)題最相關(guān)的網(wǎng)站。通常那兒都有常見(jiàn)問(wèn)題(FAQ)、郵件列表及相關(guān)說(shuō)明文件的鏈接。如果你的努力(包括閱讀FAQ)都沒(méi)有結(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ì)受到歡迎做太樂(lè)觀的估計(jì) —— 如果你不確定,那就向別處發(fā)送,或者壓根別發(fā)。
在選擇論壇、新聞群組或郵件列表時(shí),別太相信它的名字,先看看 FAQ 或者許可書(shū)以弄清楚你的問(wèn)題是否切題。發(fā)文前先翻翻已有的話題,這樣可以讓你感受一下那里的文化。事實(shí)上,事先在新聞組或郵件列表的歷史記錄中搜索與你問(wèn)題相關(guān)的關(guān)鍵詞是個(gè)極好的主意,也許這樣就找到答案了。即使沒(méi)有,也能幫助你歸納出更好的問(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)題。
可以理解的是,老練的黑客和一些熱門(mén)軟件的作者正在接受過(guò)多的錯(cuò)發(fā)信息。就像那根最后壓垮駱駝背的稻草一樣,你的加入也有可能使情況走向極端 —— 已經(jīng)好幾次了,一些熱門(mén)軟件的作者由于涌入其私人郵箱的大量不堪忍受的無(wú)用郵件而不再提供支持。
使用有意義且描述明確的標(biāo)題
在郵件列表、新聞群組或論壇中,大約 50 字以內(nèi)的標(biāo)題是抓住資深專(zhuān)家注意力的好機(jī)會(huì)。別用喋喋不休的幫幫忙、跪求、急(更別說(shuō)救命?。。。?!這樣讓人反感的話,用這種標(biāo)題會(huì)被條件反射式地忽略)來(lái)浪費(fèi)這個(gè)機(jī)會(huì)。不要妄想用你的痛苦程度來(lái)打動(dòng)我們,而應(yīng)該是在這點(diǎn)空間中使用極簡(jiǎn)單扼要的描述方式來(lái)提出問(wèn)題。
一個(gè)好標(biāo)題范例是目標(biāo) —— 差異式的描述,許多技術(shù)支持組織就是這樣做的。在目標(biāo)部分指出是哪一個(gè)或哪一組東西有問(wèn)題,在差異部分則描述與期望的行為不一致的地方。
蠢問(wèn)題:救命?。∥业墓P記本電腦不能正常顯示了!
聰明問(wèn)題:X.org 6.8.1 的鼠標(biāo)指針會(huì)變形,某牌顯卡 MV1005 芯片組。
更聰明問(wèn)題:X.org 6.8.1 的鼠標(biāo)指針,在某牌顯卡 MV1005 芯片組環(huán)境下 - 會(huì)變形。
編寫(xiě)目標(biāo) —— 差異式描述的過(guò)程有助于你組織對(duì)問(wèn)題的細(xì)致思考。是什么被影響了? 僅僅是鼠標(biāo)指針或者還有其它圖形?只在 X.org 的 X 版中出現(xiàn)?或只是出現(xiàn)在 6.8.1 版中? 是針對(duì)某牌顯卡芯片組?或者只是其中的 MV1005 型號(hào)? 一個(gè)黑客只需瞄一眼就能夠立即明白你的環(huán)境和你遇到的問(wèn)題。
總而言之,請(qǐng)想像一下你正在一個(gè)只顯示標(biāo)題的存檔討論串(Thread)索引中查尋。讓你的標(biāo)題更好地反映問(wèn)題,可使下一個(gè)搜索類(lèi)似問(wèn)題的人能夠關(guān)注這個(gè)討論串,而不用再次提問(wèn)相同的問(wèn)題。
如果你想在回復(fù)中提出問(wèn)題,記得要修改內(nèi)容標(biāo)題,以表明你是在問(wèn)一個(gè)問(wèn)題, 一個(gè)看起來(lái)像Re: 測(cè)試或者Re: 新 bug的標(biāo)題很難引起足夠重視。另外,在不影響連貫性之下,適當(dāng)引用并刪減前文的內(nèi)容,能給新來(lái)的讀者留下線索。
對(duì)于討論串,不要直接點(diǎn)擊回復(fù)來(lái)開(kāi)始一個(gè)全新的討論串,這將限制你的觀眾。因?yàn)橛行┼]件閱讀程序,比如 mutt ,允許用戶按討論串排序并通過(guò)折疊討論串來(lái)隱藏消息,這樣做的人永遠(yuǎn)看不到你發(fā)的消息。
僅僅改變標(biāo)題還不夠。mutt 和其它一些郵件閱讀程序還會(huì)檢查郵件標(biāo)題以外的其它信息,以便為其指定討論串。所以寧可發(fā)一個(gè)全新的郵件。
在網(wǎng)頁(yè)論壇上,好的提問(wèn)方式稍有不同,因?yàn)橛懻摯c特定的信息緊密結(jié)合,并且通常在討論串外就看不到里面的內(nèi)容,故通過(guò)回復(fù)提問(wèn),而非改變標(biāo)題是可接受的。不是所有論壇都允許在回復(fù)中出現(xiàn)分離的標(biāo)題,而且這樣做了基本上沒(méi)有人會(huì)去看。不過(guò),通過(guò)回復(fù)提問(wèn),這本身就是曖昧的做法,因?yàn)樗鼈冎粫?huì)被正在查看該標(biāo)題的人讀到。所以,除非你只想在該討論串當(dāng)前活躍的人群中提問(wèn),不然還是另起爐灶比較好。
使問(wèn)題容易回復(fù)
以請(qǐng)將你的回復(fù)發(fā)送到……來(lái)結(jié)束你的問(wèn)題多半會(huì)使你得不到回答。如果你覺(jué)得花幾秒鐘在郵件客戶端設(shè)置一下回復(fù)地址都麻煩,我們也覺(jué)得花幾秒鐘思考你的問(wèn)題更麻煩。如果你的郵件程序不支持這樣做,換個(gè)好點(diǎn)的;如果是操作系統(tǒng)不支持這種郵件程序,也換個(gè)好點(diǎn)的。
在論壇,要求通過(guò)電子郵件回復(fù)是非常無(wú)禮的,除非你認(rèn)為回復(fù)的信息可能比較敏感(有人會(huì)為了某些未知的原因,只讓你而不是整個(gè)論壇知道答案)。如果你只是想在有人回復(fù)討論串時(shí)得到電子郵件提醒,可以要求網(wǎng)頁(yè)論壇發(fā)送給你。幾乎所有論壇都支持諸如追蹤此討論串、有回復(fù)時(shí)發(fā)送郵件提醒等功能。
使用清晰、正確、精準(zhǔn)且合乎語(yǔ)法的語(yǔ)句
我們從經(jīng)驗(yàn)中發(fā)現(xiàn),粗心的提問(wèn)者通常也會(huì)粗心地寫(xiě)程序與思考(我敢打包票)。回答粗心大意者的問(wèn)題很不值得,我們寧愿把時(shí)間耗在別處。
正確的拼寫(xiě)、標(biāo)點(diǎn)符號(hào)和大小寫(xiě)是很重要的。一般來(lái)說(shuō),如果你覺(jué)得這樣做很麻煩,不想在乎這些,那我們也覺(jué)得麻煩,不想在乎你的提問(wèn)。花點(diǎn)額外的精力斟酌一下字句,用不著太僵硬與正式 —— 事實(shí)上,黑客文化很看重能準(zhǔn)確地使用非正式、俚語(yǔ)和幽默的語(yǔ)句。但它必須很準(zhǔn)確,而且有跡象表明你是在思考和關(guān)注問(wèn)題。
正確地拼寫(xiě)、使用標(biāo)點(diǎn)和大小寫(xiě),不要將its混淆為it's,loose搞成lose或者將discrete弄成discreet。不要全部用大寫(xiě),這會(huì)被視為無(wú)禮的大聲嚷嚷(全部小寫(xiě)也好不到哪去,因?yàn)椴灰组喿x。Alan Cox也許可以這樣做,但你不行)。
更白話的說(shuō),如果你寫(xiě)得像是個(gè)半文盲[譯注:小白],那多半得不到理睬。也不要使用即時(shí)通信中的簡(jiǎn)寫(xiě)或火星文,如將的簡(jiǎn)化為d會(huì)使你看起來(lái)像一個(gè)為了少打幾個(gè)鍵而省字的小白。更糟的是,如果像個(gè)小孩似地鬼畫(huà)符那絕對(duì)是在找死,可以肯定沒(méi)人會(huì)理你(或者最多是給你一大堆指責(zé)與挖苦)。
如果在使用非母語(yǔ)的論壇提問(wèn),你可以犯點(diǎn)拼寫(xiě)和語(yǔ)法上的小錯(cuò),但決不能在思考上馬虎(沒(méi)錯(cuò),我們通常能弄清兩者的分別)。同時(shí),除非你知道回復(fù)者使用的語(yǔ)言,否則請(qǐng)使用英語(yǔ)書(shū)寫(xiě)。繁忙的黑客一般會(huì)直接刪除用他們看不懂的語(yǔ)言寫(xiě)的消息。在網(wǎng)絡(luò)上英語(yǔ)是通用語(yǔ)言,用英語(yǔ)書(shū)寫(xiě)可以將你的問(wèn)題在尚未被閱讀就被直接刪除的可能性降到最低。
精確地描述問(wèn)題并言之有物
●仔細(xì)、清楚地描述你的問(wèn)題或 Bug 的癥狀。
●描述問(wèn)題發(fā)生的環(huán)境(機(jī)器配置、操作系統(tǒng)、應(yīng)用程序、以及相關(guān)的信息),提供經(jīng)銷(xiāo)商的發(fā)行版和版本號(hào)(如:Fedora Core 4、Slackware 9.1等)。
●描述在提問(wèn)前你是怎樣去研究和理解這個(gè)問(wèn)題的。
●描述在提問(wèn)前為確定問(wèn)題而采取的診斷步驟。
●描述最近做過(guò)什么可能相關(guān)的硬件或軟件變更。
●盡可能地提供一個(gè)可以重現(xiàn)這個(gè)問(wèn)題的可控環(huán)境的方法。
盡量去揣測(cè)一個(gè)黑客會(huì)怎樣反問(wèn)你,在你提問(wèn)之前預(yù)先將黑客們可能提出的問(wèn)題回答一遍。
以上幾點(diǎn)中,當(dāng)你報(bào)告的是你認(rèn)為可能在代碼中的問(wèn)題時(shí),給黑客一個(gè)可以重現(xiàn)你的問(wèn)題的環(huán)境尤其重要。當(dāng)你這么做時(shí),你得到有效的回答的機(jī)會(huì)和速度都會(huì)大大的提升。
Simon Tatham寫(xiě)過(guò)一篇名為《如何有效的報(bào)告 Bug》的出色文章。強(qiáng)力推薦你也讀一讀。
話不在多而在精
你需要提供精確有內(nèi)容的信息。這并不是要求你簡(jiǎn)單的把成堆的出錯(cuò)代碼或者資料完全轉(zhuǎn)錄到你的提問(wèn)中。如果你有龐大而復(fù)雜的測(cè)試樣例能重現(xiàn)程序掛掉的情境,盡量將它剪裁得越小越好。
這樣做的用處至少有三點(diǎn)。第一,表現(xiàn)出你為簡(jiǎn)化問(wèn)題付出了努力,這可以使你得到回答的機(jī)會(huì)增加;第二,簡(jiǎn)化問(wèn)題使你更有可能得到有用的答案;第三,在精煉你的 bug 報(bào)告的過(guò)程中,你很可能就自己找到了解決方法或權(quán)宜之計(jì)。
別動(dòng)輒聲稱(chēng)找到 Bug
當(dāng)你在使用軟件中遇到問(wèn)題,除非你非常、非常的有根據(jù),不要?jiǎng)虞m聲稱(chēng)找到了 Bug。提示:除非你能提供解決問(wèn)題的源代碼補(bǔ)丁,或者提供回歸測(cè)試來(lái)表明前一版本中行為不正確,否則你都多半不夠完全確信。這同樣適用在網(wǎng)頁(yè)和文件,如果你(聲稱(chēng))發(fā)現(xiàn)了文件的Bug,你應(yīng)該能提供相應(yīng)位置的修正或替代文件。
請(qǐng)記得,還有其他許多用戶沒(méi)遇到你發(fā)現(xiàn)的問(wèn)題,否則你在閱讀文件或搜索網(wǎng)頁(yè)時(shí)就應(yīng)該發(fā)現(xiàn)了(你在抱怨前已經(jīng)做了這些,是吧?)。這也意味著很有可能是你弄錯(cuò)了而不是軟件本身有問(wèn)題。
編寫(xiě)軟件的人總是非常辛苦地使它盡可能完美。如果你聲稱(chēng)找到了 Bug,也就是在質(zhì)疑他們的能力,即使你是對(duì)的,也有可能會(huì)冒犯到其中某部分人。當(dāng)你在標(biāo)題中嚷嚷著有Bug時(shí),這尤其嚴(yán)重。
提問(wèn)時(shí),即使你私下非常確信已經(jīng)發(fā)現(xiàn)一個(gè)真正的 Bug,最好寫(xiě)得像是你做錯(cuò)了什么。如果真的有 Bug,你會(huì)在回復(fù)中看到這點(diǎn)。這樣做的話,如果真有 Bug,維護(hù)者就會(huì)向你道歉,這總比你惹惱別人然后欠別人一個(gè)道歉要好一點(diǎn)。
低聲下氣不能代替你的功課
有些人明白他們不該粗魯或傲慢的提問(wèn)并要求得到答復(fù),但他們選擇另一個(gè)極端 —— 低聲下氣:我知道我只是個(gè)可悲的新手,一個(gè)擼瑟,但...。這既使人困擾,也沒(méi)有用,尤其是伴隨著與實(shí)際問(wèn)題含糊不清的描述時(shí)更令人反感。
別用原始靈長(zhǎng)類(lèi)動(dòng)物的把戲來(lái)浪費(fèi)你我的時(shí)間。取而代之的是,盡可能清楚地描述背景條件和你的問(wèn)題情況。這比低聲下氣更好地定位了你的位置。
有時(shí)網(wǎng)頁(yè)論壇會(huì)設(shè)有專(zhuān)為新手提問(wèn)的版面,如果你真的認(rèn)為遇到了初學(xué)者的問(wèn)題,到那去就是了,但一樣別那么低聲下氣。
描述問(wèn)題癥狀而非你的猜測(cè)
告訴黑客們你認(rèn)為問(wèn)題是怎樣造成的并沒(méi)什么幫助。(如果你的推斷如此有效,還用向別人求助嗎?),因此要確信你原原本本告訴了他們問(wèn)題的癥狀,而不是你的解釋和理論;讓黑客們來(lái)推測(cè)和診斷。如果你認(rèn)為陳述自己的猜測(cè)很重要,清楚地說(shuō)明這只是你的猜測(cè),并描述為什么它們不起作用。
蠢問(wèn)題
我在編譯內(nèi)核時(shí)接連遇到 SIG11 錯(cuò)誤,我懷疑某條飛線搭在主板的走線上了,這種情況應(yīng)該怎樣檢查最好?
聰明問(wèn)題
我的組裝電腦是 FIC-PA2007 主機(jī)板搭載 AMD K6/233 CPU(威盛 Apollo VP2 芯片組),256MB Corsair PC133 SDRAM 內(nèi)存,在編譯內(nèi)核時(shí),從開(kāi)機(jī) 20 分鐘以后就頻頻產(chǎn)生 SIG11 錯(cuò)誤,但是在頭 20 分鐘內(nèi)從沒(méi)發(fā)生過(guò)相同的問(wèn)題。重新啟動(dòng)也沒(méi)有用,但是關(guān)機(jī)一晚上就又能工作 20 分鐘。所有內(nèi)存都換過(guò)了,沒(méi)有效果。相關(guān)部分的標(biāo)準(zhǔn)編譯記錄如下…。
描述目標(biāo)而不是過(guò)程
如果你想弄清楚如何做某事(而不是報(bào)告一個(gè) Bug),在開(kāi)頭就描述你的目標(biāo),然后才陳述重現(xiàn)你所卡住的特定步驟。
經(jīng)常尋求技術(shù)幫助的人在心中有個(gè)更高層次的目標(biāo),而他們?cè)谧砸詾槟苓_(dá)到目標(biāo)的特定道路上被卡住了,然后跑來(lái)問(wèn)該怎么走,但沒(méi)有意識(shí)到這條路本身就有問(wèn)題。結(jié)果要費(fèi)很大的勁才能搞定。
蠢問(wèn)題
我怎樣才能從某繪圖程序的顏色選擇器中取得十六進(jìn)制的 RGB 值?
聰明問(wèn)題
我正試著用替換一幅圖片的色碼(color table)成自己選定的色碼,我現(xiàn)在知道的唯一方法是編輯每個(gè)色碼區(qū)塊(table slot),但卻無(wú)法從某繪圖程序的顏色選擇器取得十六進(jìn)制的 RGB 值。
第二種提問(wèn)法比較聰明,你可能得到像是建議采用另一個(gè)更合適的工具的回復(fù)。
好問(wèn)題與蠢問(wèn)題
最后,我將透過(guò)舉一些例子,來(lái)說(shuō)明怎樣聰明的提問(wèn);同一個(gè)問(wèn)題的兩種問(wèn)法被放在一起,一種是愚蠢的,另一種才是明智的。
蠢問(wèn)題:
我可以在哪兒找到關(guān)于
Foonly Flurbamatic 的資料?
這種問(wèn)法無(wú)非想得到STFW(注:Search The Facking Web)這樣的回答。
聰明問(wèn)題:
我用 Google 搜索過(guò) "Foonly Flurbamatic 2600",但是沒(méi)找到有用的結(jié)果。誰(shuí)知道上哪兒去找對(duì)這種設(shè)備編程的資料?
這個(gè)問(wèn)題已經(jīng) STFW 過(guò)了,看起來(lái)他真的遇到了麻煩。
蠢問(wèn)題:
我從 foo 項(xiàng)目找來(lái)的源碼沒(méi)法編譯。它怎么這么爛?
他覺(jué)得都是別人的錯(cuò),這個(gè)傲慢自大的提問(wèn)者。
聰明問(wèn)題:
foo 項(xiàng)目代碼在 Nulix 6.2 版下無(wú)法編譯通過(guò)。我讀過(guò)了 FAQ,但里面沒(méi)有提到跟 Nulix 有關(guān)的問(wèn)題。這是我編譯過(guò)程的記錄,我有什么做的不對(duì)的地方嗎?
提問(wèn)者已經(jīng)指明了環(huán)境,也讀過(guò)了 FAQ,還列出了錯(cuò)誤,并且他沒(méi)有把問(wèn)題的責(zé)任推到別人頭上,他的問(wèn)題值得被關(guān)注。
蠢問(wèn)題:
我的主機(jī)板有問(wèn)題了,誰(shuí)來(lái)幫我?
某黑客對(duì)這類(lèi)問(wèn)題的回答通常是:好的,還要幫你拍拍背和換尿布嗎?,然后按下刪除鍵。
聰明問(wèn)題:
我在 S2464 主機(jī)板上試過(guò)了 X 、 Y 和 Z ,但沒(méi)什么作用,我又試了 A 、 B 和 C 。請(qǐng)注意當(dāng)我嘗試 C 時(shí)的奇怪現(xiàn)象。顯然 florbish 正在 grommicking,但結(jié)果出人意料。通常在 Athlon MP 主機(jī)板上引起 grommicking 的原因是什么?有誰(shuí)知道接下來(lái)我該做些什么測(cè)試才能找出問(wèn)題?
這個(gè)家伙,從另一個(gè)角度來(lái)看,值得去回答他。他表現(xiàn)出了解決問(wèn)題的能力,而不是坐等天上掉答案。
在最后一個(gè)問(wèn)題中,注意告訴我答案和給我啟示,指出我還應(yīng)該做什么診斷工作之間微妙而又重要的區(qū)別。