提問的智慧
艾瑞克.史蒂文.雷蒙德(Eric Steven Raymond)
瑞克.莫恩(Rick Moen)
版權?2001, 2006 Eric S. Raymond, Rick Moen
修訂歷史
修訂版3.92013年4月23日esr
修正鏈接
修訂版3.82012年6月19日esr
修正鏈接
修訂版3.72010年12月6日esr
對于英語為第二語言人士的有益建議
修訂版3.72010年11月2日esr
幾種翻譯不見了
修訂版3.62008年3月19日esr
小更新及新鏈接
修訂版3.52008年1月2日esr
勘誤及一些翻譯鏈接
修訂版3.42007年3月24日esr
新章節(jié):“關于代碼的問題”
修訂版3.32006年9月29日esr
增加凱.尼格曼(Kai Niggemann)的一個好建議
修訂版3.22006年1月10日esr
加入瑞克.莫恩(Rick Moen)編寫的內(nèi)容
修訂版3.12004年10月28日esr
文檔“谷歌是你的朋友!”
修訂版3.02004年2月2日esr
主要新增在網(wǎng)頁論壇應有的禮節(jié)
原文:How To Ask Questions The Smart Way
翻譯:王剛
時間:2013年10月26日
內(nèi)容
面向新手的論壇和互聯(lián)網(wǎng)中繼聊天(IRC)通常響應最快
“讀讀該死的手冊”(RTFM)和“搜搜該死的網(wǎng)絡”(STFW):如何明白你已完全搞砸
譯文
譯文:印尼語白俄羅斯語巴西葡萄牙語簡體中文荷蘭語法語喬治亞語德語希臘語希伯來語日語波蘭語葡萄牙語羅馬尼亞語俄語西班牙語泰語如果你想復制渡处、鏡像、翻譯或引用本文登下,請參閱我的復制協(xié)議被芳。
棄權申明
許多項目的網(wǎng)站在如何取得幫助的部分鏈接了本文,這沒有關系侵状,也正是我們想要的。但如果你是該項目生成此鏈接的網(wǎng)管艇潭,請在鏈接附近顯著位置注明:我們不提供該項目的服務支持蹋凝!
我們已經(jīng)領教了沒有此說明帶來的痛苦,我們將不停地被一些白癡糾纏迄汛,他們認為既然我們發(fā)布了本文,那么我們就有責任解決世上所有的技術問題硬霍。
如果你是因為需要幫助正在閱讀本文,然后就帶著可以直接從作者那取得幫助的印象離開拜轨,那么你 就不幸成了我們所說的白癡之一橄碾。 別向 我們提問,我們不會理睬的拒垃。 我們只是在這教你如何從那些真正懂得你軟硬件問題的人那里取得幫助,但 99.9% 的時間我們不會是那些人横堡。除非你非常地確定本文的作者是你遇到問題方面的專家,請不要打攪套么,這樣大家都更開心一點。
引言
在黑客的世界里玷室,你所提技術問題的解答很大程度上取決于你提問的方式與解決此問題的難度,本文將教你如何提問才更有可能得到滿意的答復津肛。
開源程序的應用已經(jīng)很廣秸脱,你通程剑可以從其他更有經(jīng)驗的用戶而不是黑客那里得到解答。這是好事岛请,他們一般對新手常有的毛病更容忍一點。然爾僚匆,使用我們推薦的方法,象對待黑客那樣對待這些有經(jīng)驗的用戶松申,通常能最有效地得到問題的解答。
第一件需要明白的事是黑客喜歡難題和激發(fā)思考的好問題皇筛。假如不是這樣,我們也不會寫本文了拄踪。如果你能提出一個有趣的問題讓我們咀嚼玩味,我們會感激你想虎。好問題是種激勵與禮物,幫助我們發(fā)展認知,揭示沒有注意或想到的問題署浩。在黑客中,“好問題弊攘!” 是非常熱烈而真摯的贊許。
此外捣域,黑客還有遇到簡單問題就表現(xiàn)出敵視或傲慢的名聲。有時,我們看起來還對新手和愚蠢的家伙有條件反射式的無禮蜗字,但事情并不真是這樣。
我們只是毫無歉意地敵視那些提問前不愿思考级零、不做自己家庭作業(yè)的人鉴嗤。這種人就象時間無底洞──他們只知道索取,不愿意付出硬耍,他們浪費了時間,這些時間本可用于其它更有趣的問題或更值得回答的人。我們將這種人叫做 “失敗者(loser)” (由于歷史原因牛哺,我們有時將“l(fā)oser”拼寫為“l(fā)users” 。)
我們意識到許多人只是想使用我們寫的軟件椰拒,他們對學習技術細節(jié)沒有興趣。對大多數(shù)人而言,計算機只是種工具脊框,是種達到目的的手段而已。他們有自己的生活并 且有更要緊的事要做,我們承認這點烂完,也從不指望每個人都對這些讓我們著迷的技術問題感興趣祝旷。不過,我們回答問題的風格是為了適應那些真正對此有興趣并愿意主動參與解決問題的人,這一點不會變,也不該變长赞。如果連這都變了,我們就會在自己能做得最好的事情上不再那么犀利。
我們(大多數(shù))是自愿者, 從自己繁忙的生活中抽時間來回答問題近上,有時會力不從心。因此斗锭,我們會毫不留情地濾除問題,特別是那些看起來象是失敗者提的作箍,以便更有效地把回答問題的時間留給那些勝利者胞得。
如果你認為這種態(tài)度令人反感、以施惠者自居或傲慢自大屹电,請檢查你的假設阶剑,我們并未要求你屈服──事實上,假如你做了該做的努力危号,我們中的大多數(shù)將非常樂意平等地與你交流,并歡迎你接納我們的文化外莲。試圖去幫助那些不愿自救的人對我們簡直沒有效率猪半。不懂沒有關系,但愚蠢地做事不行偷线。
所以磨确,你不必在技術上很在行才能吸引我們的注意,但你 必須 表現(xiàn)出能引導你在行的姿態(tài)──機 敏声邦、有想法乏奥、善于觀察、樂于主動參與問題的解決亥曹。如果你做不到這些使你與眾不同的事情邓了,我們建議你付錢跟別人簽商業(yè)服務合同,而不是要求黑客無償幫助媳瞪。
如果你決定向我們求助驶悟,你不會想成為一名失敗者,你也不想被看成一個失敗者材失。得到快速有效回答的最好方法是使提問者看起來象個聰明痕鳍、自信和有想法的人,并且暗示只是碰巧在某一特別問題上需要幫助龙巨。
(歡迎對本文指正笼呆,可以將建議發(fā)至esr@thyrsus.com或respond-auto@linuxmafia.com。請注意旨别,本文不想成為一般性的網(wǎng)絡禮儀指南诗赌,我一般會拒絕那些與引出技術論壇中有用的回答不特別相關的建議。)
提問前
在通過電郵秸弛、新聞組或論壇提技術問題以前铭若,做以下事情:
嘗試在你準備提問論壇的歷史文檔中搜索答案
嘗試搜索互聯(lián)網(wǎng)以找到答案
嘗試閱讀手冊以找到答案
嘗試閱讀“常見問題文檔”(FAQ)以找到答案
嘗試自己檢查或試驗以找到答案
嘗試請教懂行的朋友以找到答案
如果你是程序員洪碳,嘗試閱讀源代碼以找到答案
提問時,請先表明你已做了上述事情叼屠,這將有助于建立你不是寄生蟲與浪費別人時間的印象瞳腌。最好再表述你從中 學到的東西 ,我們喜歡回答那些表現(xiàn)出能從答案中學習的人镜雨。
運用某些策略嫂侍,比如用谷歌(Google)搜索你遇到的各種錯誤提示(既搜索谷歌論壇,也搜索網(wǎng)頁)荚坞, 這樣很可能直接就找到了解決問題的文檔或郵件列表線索挑宠。即使沒有結果,在郵件列表或新聞組尋求幫助時提一句“我在谷歌中搜過下列句子但沒有找到什么有用的東西” 也是件好事颓影,至少它表明了搜索引擎不能提供哪些幫助各淀。將搜索關鍵詞與你的問題及可能的解決方案聯(lián)系起來,還有助于引導其他有類似問題的人诡挂。
別著急碎浇,不要指望幾秒鐘的谷歌搜索就能解決一個復雜的問題。讀一下常見問題文檔咆畏。在向?qū)<姨釂栔澳衔妫认蚝罂靠糠潘梢幌拢?再思考一下問題吴裤。相信我們旧找,他們能從你的提問看出你做了多少閱讀與思考,如果你是有備而來麦牺,將更有可能得到解答钮蛛。不要將所有問題一股腦拋出,只因你的第一次搜索沒有結果(或者結果太多)剖膳。
認真地思考魏颓,準備好你的問題。輕率的提問只能得到輕率的回答吱晒,或者壓根沒有甸饱。在提問時,你越是表現(xiàn)出在此前做過思考與努力去解決自己的問題仑濒,你越有可能得到真正的幫助叹话。
注意別提錯問題。如果提問基于錯誤的假設墩瞳,某黑客多半會一邊想 “愚蠢的問題……”驼壶,一邊按將錯就錯的答案回復你,并且希望這種只是得到你自己“問的問題”而非真正所需的解答喉酌,給你一個教訓热凹。
永遠不要假設你 有資格 得到解答泵喘。你沒有這種資格,畢竟你沒有為此服務付費般妙。如果你能夠提出有內(nèi)容纪铺、有趣和激勵思考的問題──那種毫無疑問能夠向社區(qū)貢獻經(jīng)驗,而不僅僅是消極地要求從別人那獲取知識的問題股冗,你將“掙到”答案霹陡。
另一方面,表明你有能力也樂意參與問題的解決是個很好的開端止状∨朊蓿“有沒有人能指個方向?”怯疤,我這還差點什么浆洗?”,“我應該查哪個網(wǎng)站集峦?”伏社,通常要比 “請給出我可以用的完整步驟”更容易得到回復,因為你表明了只要有人能指個方向塔淤,你就很樂意完成剩下的過程摘昌。
提問時
仔細挑選論壇
要對在哪提問留心,如果你做了下述事情高蜂,多半會被一筆勾銷或被看成“失敗者”:
張貼與論壇主題無關的問題
在面向高級技術問題的論壇上張貼膚淺的問題聪黎,或者反之。
在太多不同的新聞組同時張貼
給既非熟人也沒有義務解決你問題的人發(fā)送你私人的電郵
為保護通信的渠道不被無關的東西淹沒备恤,黑客會除掉那些沒有找對地方的問題稿饰,你不會想讓這種事落到自己頭上的。
因此露泊,第一步是找對論壇喉镰。谷歌和其它搜索引擎還是你的朋友,可以用它們搜索你遇到困難的軟硬件問題最相關的項目網(wǎng)站惭笑。那里通常都有項目的常見問題(FAQ)侣姆、郵件列表及文檔的鏈接。如果你的努力(包括 閱讀 FAQ)都沒有結果沉噩,這些郵件列表就是最后能取得幫助的地方捺宗。項目的網(wǎng)站也許還有報告臭蟲的流程或鏈接,如果是這樣屁擅,去看看偿凭。
向陌生的人或論壇發(fā)送郵件極有可能是在冒險。譬如派歌,不要假設一個內(nèi)容豐富的網(wǎng)頁的作者想充當你的免費顧問弯囊,不要對你的問題是否會受到歡迎做太樂觀的估計──如果你不確定痰哨,向別處發(fā)或者壓根別發(fā)。
在選擇論壇匾嘱、新聞組或郵件列表時斤斧,別太相信名字帕膜,先看看 FAQ 或者許可書以明確你的問題是否切題魂角。發(fā)貼前先翻翻已有的帖子,這樣可以讓你感受一下那里行事的方式缎脾。事實上悬垃,張貼前在新聞組或郵件列表的歷史文檔中搜索與你問題相關的關鍵詞是個極好的主意游昼,也許就找到答案了。即使沒有尝蠕,也能幫助你歸納出更好的問題烘豌。
別象機關槍似的一次性“掃射”所有的幫助渠道,這就象大喊大叫一樣會令人不快看彼,溫柔地一個一個來廊佩。
弄懂主題!最典型的錯誤之一是在某種致立于跨平臺可移植的語言靖榕、庫或工具的論壇中提關于 Unix 或 Windows 操作系統(tǒng)程序接口的問題标锄。如果你不明白為什么這是大錯,最好在搞清楚概念前什么也別問茁计。
一般來說料皇,在仔細挑選的公共論壇中提問比在私有論壇中提同樣的問題更容易得到有用的回答。有幾個道理支持這點簸淀,一是看潛在的回復者有多少瓶蝴,二是看論壇的參與者有多少毒返,黑客更愿回答能啟發(fā)多數(shù)人的問題租幕。
可以理解,老練的黑客和一些流行軟件的作者正在承受過多的不當消息拧簸。就象那根最后壓垮駱駝背的稻草一樣劲绪,你的加入也有可能使情況走向極端──已經(jīng)好幾次了,一些流行軟件的作者退出了對自己軟件的支持盆赤,因為伴隨而來的涌入其私人郵箱的垃圾郵件變得無法忍受贾富。
面向新手的論壇和互聯(lián)網(wǎng)中繼聊天(IRC)通常響應最快
本地的用戶組織或者你所用的 Linux 發(fā)行版也許正在宣傳新手取得幫助的論壇或IRC 通道(在一些非英語國家,新手論壇很可能還是郵件列表)牺六,這些地方是開始提問的好去處颤枪,特別是當你覺得遇到的也許只是相對簡單或者很普通的問題時。經(jīng)過宣傳的 IRC 通道是公開邀請?zhí)釂柕牡胤绞缂剩ǔ畏纲?梢缘玫綄崟r的回復扇住。
事實上,如果出問題的程序來自某發(fā)行版(這很常見)盗胀,最好先去該發(fā)行版的論壇或郵件列表中提問艘蹋,再到程序本身的項目論壇或郵件列表,(否則)該項目的黑客可能僅僅回復“用 我們的 代碼”票灰。
在任何論壇發(fā)貼以前女阀,先看看有沒有搜索功能。如果有屑迂,就試著用問題的幾個關鍵詞搜索一下浸策,也許就有幫助。如果在此之前你已做過全面的網(wǎng)頁搜索(你應該這樣去做)惹盼,還是再搜索一下論壇的榛,搜索引擎有可能沒來得及索引此論壇的全部內(nèi)容。
通過論壇或 IRC 通道提供項目的用戶支持有增長的趨勢逻锐,電子郵件交流則更多地為項目開發(fā)者保留夫晌。所以先在論壇或 IRC 中尋求與該項目相關的幫助。
第二步昧诱,使用項目的郵件列表
當某個項目存在開發(fā)者郵件列表時晓淀,要向列表而不是其中的個別成員提問,即使你確信他能最好地回答你的問題盏档。查一查項目的文檔和主頁凶掰,找到項目的郵件列表并使用它。采用這種辦法有幾個很好的理由:
向個別開發(fā)者提的問題(如果)足夠好蜈亩,也將對整個項目組有益懦窘。相反,如果你認為自己的問題對整個項目組來說太愚蠢稚配,這也不能成為騷擾個別開發(fā)者的理由畅涂。
向列表提問可以分散開發(fā)者的負擔,個別開發(fā)者(尤其是項目領導)也許太忙以至于沒法回答你的問題道川。
大多數(shù)郵件列表都要存檔午衰,那些存檔將被搜索引擎索引,如果你向列表提問并得到解答冒萄,將來其它人可以通過網(wǎng)頁搜索找到你的問題和答案臊岸,也就不用再次發(fā)問了。
如果某些問題經(jīng)常被問到尊流,開發(fā)者可以利用此信息改進文檔或軟件本身帅戒,以使其更清楚。如果只是私下提問崖技,就沒有人能看到最常見問題的完整場景逻住。
如果一個項目既有 “用戶” 也有“開發(fā)者”(或 “黑客”)郵件列表或論壇施流,而你又不擺弄那些代碼,向“用戶”列表或論壇提問鄙信。不要假設自己會在開發(fā)者列表中受到歡迎瞪醋,那些人多半會遭受你的噪音干擾。
然爾装诡,如果你 確信 你的問題不一般银受,而且在“用戶” 列表或論壇中幾天都沒有回復,可以試試“開發(fā)者”列表或論壇鸦采。建議你在張貼前最好先暗暗地觀察幾天,至少看看最近幾天保存的帖子,以了解那的行事方式(事實上這是參與任何私有或半私有列表的好主意)
如 果你找不到一個項目的郵件列表宾巍,而只能查到項目維護者的地址,只管向其發(fā)信渔伯。即便在這種情況下顶霞,也別假設(項目)郵件列表不存在。在你的電子郵件中陳述你 已經(jīng)試過但沒有找到合適的郵件列表锣吼,也提及你不反對將自己的郵件轉(zhuǎn)發(fā)給他人(許多人認為选浑,即使沒什么秘密,私人電子郵件也不應該被公開玄叠。通過允許將你的電子郵件轉(zhuǎn)發(fā)他人古徒,你給了相應人員處置你郵件的選擇)。
使用有意義且明確的主題
在郵件列表读恃、新聞組或論壇中隧膘,主題是你在五十個或更少的字以內(nèi)吸引有資格專家注意的黃金機會,不要用諸如 “請幫我” (更別提大寫的 “請幫我K卤埂U畛浴!西雀!”萨驶,這種主題的消息會被條件反射式地刪掉)之類的嘮叨浪費機會。不要用你痛苦的深度來打動我們蒋搜,相反篡撵,要在這點空間中使用超級簡明扼要的問題描述判莉。
使用主題的好慣例是“對象──偏差”(式的描述)豆挽,許多技術支持組織就是這樣做的。在“對象”部分指明是哪一個或哪一組東西有問題券盅,在“偏差”部分則描述與期望的行為不一致的地方帮哈。
愚蠢:
救命啊锰镀!我的筆記本視頻工作不正常娘侍!
明智:
X.org 6.8.1 扭曲鼠標光標咖刃,MV1005 型號的某顯卡芯片組
更明智:
使用 MV1005 型號的某顯卡芯片組在 X.org 6.8.1 的鼠標光標被扭曲
編寫 “對象──偏差” 式描述的過程有助于你組織對問題的細致思考。是什么被影響了憾筏?僅僅是鼠標光標或者還有其它圖形嚎杨?只在 X.org 中出現(xiàn)?或只是在其 6.8.1 版中氧腰?是針對某顯卡芯片組枫浙?或者只是其中的 MV1005 型號?一個黑客只需描一眼就能夠立即明白什么是你遇到的問題古拴,什么是你自己的問題箩帚。
更一般地,想象一下在一個只顯示主題的文檔索引中查找黄痪。讓你的主題更好地反映問題紧帕,可以使下一個搜索類似問題的人能夠在文檔中直接就找到答案的線索,而不用再次發(fā)貼提問桅打。
如果你想在回復中提問是嗜,確保改變主題以表明你是在問一個問題,一個主題象 “Re: 測試” 或者 “Re: 新臭蟲”的消息不太可能引起足夠的注意挺尾。同時叠纷,將回復中與新主題不甚相關的引用內(nèi)容盡量刪除。
對于列表消息潦嘶,不要直接點擊回復(按鈕)來開始一個全新的線索涩嚣,這將限制你的觀眾。有些郵件閱讀程序掂僵,比如 mutt航厚,允許用戶按線索排序并通過折疊線索來隱藏消息,這樣做的人永遠看不到你發(fā)的消息锰蓬。
僅僅改變主題還不夠幔睬。mutt 和其它一些郵件閱讀程序還要檢查郵件頭主題以外的其它信息,以便為其指定線索芹扭,所以寧可發(fā)一個全新的郵件麻顶。
在論壇,因為消息與特定的線索緊密結合舱卡,并且通常在線索之外不可見辅肾,好的提問方式略有不同,通過回復提問并不要緊轮锥。不 是所有論壇都允許在回復中出現(xiàn)分離的主題矫钓,而且這樣做了基本上沒有人會去看。不過,通過回復提問本身就是令人懷疑的做法新娜,因為它們只會被正在查看該線索的人讀到赵辕。所以,除非你 只想 在該線索當前活躍的人群中提問概龄,還是另起爐灶比較好还惠。
使問題容易回復
以“請向……回復”來結束問題多半會使你得不到回答。如果你覺得花幾秒鐘在郵件客戶端設置一下回復地址都麻煩私杜,我們也覺得花幾秒鐘考慮你的問題更麻煩吸重。如果你的郵件客戶端程序不支持這樣做,換個好點的歪今;如果是操作系統(tǒng)不支持所有這種郵件客戶端程序嚎幸,也換個好點的。
在論壇寄猩,要求通過電子郵件回復是完全無禮的嫉晶,除非你確信回復的信息也許是敏感的(而且有人會為了某些未知的原因,只讓你而不是整個論壇知道答案)田篇。如果你只是想在有人回復線索時得到電子郵件提醒替废,可以要求論壇發(fā)送。幾乎所有論壇都支持諸如“留意本線索”泊柬、“有回復發(fā)送郵件”等功能椎镣。
用清晰、語法兽赁、拼寫正確的語句書寫
經(jīng)驗告訴我們状答,粗心與草率的作者通常也粗心與草率地思考和編程(我敢打賭)。為這些粗心與草率的思考者回答問題沒有什么好處刀崖,我們寧可將時間花在其它地方惊科。
清楚、良好地表達你的問題非常重要亮钦。如果你覺得這樣做麻煩馆截,我們也覺得注意(你的問題)麻煩》淅颍花點額外的精力斟酌一下字句蜡娶,用不著太僵硬與正式──事實上,黑客文化很看重能準確地使用非正式映穗、俚語和幽默的語句窖张。但它 必須 很準確,而且有跡象表明你是在思考和關注問題男公。
正確地拼寫荤堪、使用標點和大小寫合陵,不要將“its”混淆為“it's”枢赔,“l(fā)oose”搞成“l(fā)ose”或者將“discrete”弄成 “discreet”澄阳。不要全部用大寫,這會被視為無禮的大聲嚷嚷 (全部小寫也好不到哪去踏拜,因為不易閱讀碎赢。Alan Cox [注:著名黑客,Linux 內(nèi)核的重要參與者] 也許可以這樣做速梗,但你不行肮塞。)
一般而言,如果你寫得象個半文盲似的傻子姻锁,多半得不到理睬枕赵。也不要使用即時通訊中的簡寫,如將“you”簡化為“u” 會使你看起來象一個為了節(jié)約二次擊鍵的半文盲式的傻子位隶。更糟的是拷窜,如果象個小孩似地鬼畫桃符那絕對是在找死,可以肯定沒人會理你(或者最多是給你一大堆指責與挖苦)涧黄。
如果在非母語論壇提問篮昧,你的拼寫與語法錯誤會得到有限的寬容,但懶惰完全不會被容忍(是的笋妥,我們通嘲米颍看得出其中的差別)。同 時春宣,除非你知道回復者使用的語言酵颁,請使用英語書寫。繁忙的黑客一般會直接刪除用他們看不懂語言寫的消息月帝。在互聯(lián)網(wǎng)上英語是工作語言材义,用英語書寫可以將你的問題不被閱讀就被直接刪除的可能性降到最低。
如果你用英語書寫但它是你的第二語言嫁赏,最好提醒潛在的回復者語言上可能的困難以便繞過這個問題其掂,比如:
英語不是我的母語,請諒解拼寫錯誤潦蝇。
如果您使用某某語言款熬,請電郵/私聊我,也許我需要您的協(xié)助翻譯我的問題攘乒。
對于這個技術術語本身我很熟悉贤牛,但對于它的一些俚語或習慣表達方式就不太明白了。
我已經(jīng)同時用某某語及英語提問则酝,如果您使用兩者之一回復殉簸,我很樂意翻譯。
使用易于讀取且標準的文件格式發(fā)送問題
如果你人為地將問題搞得難以閱讀,它多半會被忽略般卑,人們更愿讀易懂的問題武鲁,所以:
使用純文本而不是 HTML(超文本標注語言)(關閉HTML并不難)
使用 MIME(多用途互聯(lián)網(wǎng)郵件擴展)附件通常沒有問題,前提是真正有內(nèi)容(譬如附帶的源文件或補厄鸺臁)沐鼠,而不僅僅是郵件客戶端程序生成的模板(譬如只是消息內(nèi)容的拷貝)。
不要發(fā)送整段只是單行句子但多次折回的郵件(這使得回復部分內(nèi)容非常困難)叹谁。設想你的讀者是在80個字符寬的文本終端閱讀郵件饲梭,設置你的行折回點小于 80 列。
但是焰檩,也? ? 不要 用任何固定列折回數(shù)據(jù)(譬如日志文件拷貝或會話記錄)憔涉。數(shù)據(jù)應該原樣包含,使回復者確信他們看到的是與你看到的一樣的東西析苫。
在英語論壇中兜叨,不要使用'Quoted-Printable' MIME 編碼發(fā)送消息。這種編碼對于張貼非? ? ASCII 語言可能是必須的藤违,但很多郵件程序并不支持浪腐。當它們分斷時,那些文本中四處散布的 “=20”符號既難看也分散注意力顿乒,甚至有可能破壞內(nèi)容的語意议街。
永遠不要 指望黑客們閱讀使用封閉的專用格式編寫的文檔,諸如微軟公司的 Word
? ? 或 Excel 文件等璧榄。大多數(shù)黑客對此的反應就象有人將還在冒熱氣的豬糞倒在你門口時你的反應一樣特漩。即使他們能夠處理,也很厭惡這么做骨杂。
如果你從使用視窗的電腦發(fā)送電子郵件涂身,關閉問題頗多的微軟“聰明引用”功能(在“工具” -> “自動糾正選項”的“輸入時自動格式化”下去掉聰明引用的選框),以免在你的郵件中到處散布垃圾字符搓蚪。
在論壇蛤售,勿濫用“表情符號”和“HTML”功能(當它們提供時)。一兩個表情符號通常沒有問題妒潭,但花哨的彩色文本傾向于使人認為你是個無能之輩悴能。過濫地使用表情符號、色彩和字體會使你看來象個傻笑的小姑娘雳灾。這通常不是個好主意漠酿,除非你只是對性而不是有用的回復更有興趣。
如果你使用圖形用戶界面的郵件客戶端程序(如網(wǎng)景公司的 Messenger谎亩、微軟公司的 Outlook 或者其它類似的)炒嘲,注意它們的缺省配置不一定滿足這些要求宇姚。大多數(shù)這類程序有基于菜單的“查看源碼”命令,用它來檢查發(fā)送文件夾中的消息夫凸,以確保發(fā)送的是 沒有多余雜質(zhì)的純文本文件浑劳。
描述問題應準確且有內(nèi)容
仔細、清楚地描述問題的癥狀
描述問題發(fā)生的環(huán)境(主機寸痢、操作系統(tǒng)呀洲、應用程序紊选,任何相關的)啼止,提供銷售商的發(fā)行版和版本號(如:“Fedora Core 7”、“Slackware 9.1”等)
描述提問前做過的研究及其理解兵罢。
描述提問前為確定問題而采取的診斷步驟献烦。
描述最近對計算機或軟件配置的任何相關改變。
如果可能卖词,提供在可控環(huán)境下重現(xiàn)問題的方法巩那。
盡最大努力預測黑客會提到的問題,并提前備好答案此蜈。
如果你認為是代碼有問題即横,向黑客提供在可控環(huán)境下重現(xiàn)問題的方法尤其重要。當你這么做時裆赵,得到有用且及時回復的可能性將大大增加东囚。
西蒙.泰瑟姆(Simon Tatham)寫過一篇如何有效報告臭蟲的文章,我強烈推薦各位閱讀战授。
量不在多页藻,精煉則靈
你應該(寫得)精煉且有內(nèi)容,簡單地將一大堆代碼或數(shù)據(jù)羅列在求助消息中達不到目的植兰。如果你有一個很大且復雜的測試樣例讓程序崩潰份帐,嘗試將其裁剪得越小越好。
至少有三個理由支持這點楣导。第一废境,讓別人看到你在努力簡化問題使你更有可能得到回復。第二筒繁,簡化問題使你更有可能得到 有用的 回復噩凹。第三,在提純臭蟲報告的過程中膝晾,你可能自己就找到了解決辦法或權宜之計栓始。
別急于宣稱找到臭蟲
當你在一個軟件中遇到問題,除非你 非常血当、非常 的有根據(jù)幻赚,不要動輒聲稱找到了臭蟲禀忆。提示:除非你能提供解決問題的源代碼補丁,或者對前一版本的回歸測試表現(xiàn)出不正確的行為落恼,否則你都多半不夠完全確信箩退。對于網(wǎng)頁和文檔也如此,如果你(聲稱)發(fā)現(xiàn)了文檔的“臭蟲”佳谦,你應該能提供相應位置的替代文本戴涝。
記住,還有許多其它用戶并未經(jīng)歷你遇到的問題钻蔑,否則你在閱讀文檔或搜索網(wǎng)頁時就應該發(fā)現(xiàn)了(你在報怨前已經(jīng)做了這些啥刻,是吧?)咪笑。這也意味著很有可能是你弄錯了而不是軟件本身有問題可帽。
編寫軟件的人總是非常辛苦地使它盡可能完美。如果你聲稱找到了臭蟲窗怒,也就置疑了他們的能力映跟,即使你是對的,也有可能會使其中的部分人感到不快扬虚。(此外努隙,)在主題中嚷嚷“臭蟲”也是特別不老練的。
提問時辜昵,即使你私下非常確信已經(jīng)發(fā)現(xiàn)一個真正的臭蟲荸镊,最好寫得象是 你 做錯了什么。如果真的有臭蟲路鹰,你會在回復中看到這點贷洲。這樣做的話,如果真有蟲子晋柱,維護者就會向你道歉优构,這總比你弄砸了然后欠別人一個道歉要強。
低聲下氣代替不了做自己的家庭作業(yè)
有些人明白他們不應該粗魯或傲慢地行事并要求得到答復雁竞,但他們退到相反的低聲下氣的極端:“我知道我只是個可憐的新丁失仁,一個失敗者涣狗,但……”凑耻。這既使人困擾纳令,也沒有用,當伴隨著對實際問題含糊的描述時還特別令人反感进栽。
別用低級靈長類動物的辦法浪費你我的時間德挣,相反,盡可能清楚地描述背景情況和你的問題快毛,這比低聲下氣更好地擺正了你的位置格嗅。
有時番挺,論壇設有單獨的初學者提問版面,如果你真的認為遇到了膚淺的問題屯掖,到那去就是了玄柏,但一樣別低聲下氣。
描述問題癥狀而不是猜測
告 訴黑客是什么導致了問題是沒用的(如果你的診斷理論是了不起的東西贴铜,你還會向別人咨詢求助嗎粪摘?)。所以绍坝,確保只是告訴他們問題的原始癥狀徘意,而不是你的解釋 和理論,讓他們來解釋和診斷陷嘴。如果你認為陳述自己的猜測很重要映砖,應清楚地說明這只是你的猜測并描述為什么它們不起作用间坐。
愚蠢:
我在編譯內(nèi)核時接連遇到 SIG11 錯誤灾挨,懷疑主板上的某根電路絲斷了,找到它們的最好辦法是什么竹宋?
明智:
我組裝的電腦(K6/233 CPU劳澄、FIC-PA2007主板[威盛 Apollo VP2 芯片組]、Corsair PC133 SDRAM 256Mb 內(nèi)存)最近在開機 20 分鐘左右蜈七、做內(nèi)核編譯時頻繁地報 SIG11 錯秒拔,但在頭 20 分鐘內(nèi)從不出問題。重啟動不會復位時鐘飒硅,但整夜關機會砂缩。更換所有內(nèi)存未解決問題,相關的典型編譯會話日志附后三娩。
由于以上這點許多人似乎難以掌握庵芭,這里有句話可以提醒你:“所有的診斷專家都來自密蘇里州”。美國國務院的官方座右銘則是“讓我看看”(出自國會議員威勒德.D.范迪弗[Willard D. Vandiver]在1899年時的講話:“我來自一個出產(chǎn)玉米雀监、棉花双吆、牛蒡和民主黨人的國家,滔滔雄辯既不能說服我会前,也不會讓我滿意好乐。我來自密蘇里州,你必須讓我看看瓦宜∥低颍”)針對診斷者而言,這并不是懷疑临庇,而只是一種真實而有用的需求反璃,以便讓他們看到與你看到的原始證據(jù)盡可能一致的東西区转,而不是你的猜測與總結。(所以版扩,)讓我們看看废离。
按時間先后羅列問題癥狀
剛出問題之前發(fā)生的事情通常包含有解決問題最有效的線索。所以礁芦,記錄中應準確地描述你蜻韭、電腦和軟件在崩潰前都做了什么。在命令行處理的情況下柿扣,有會話日志(如運行腳本工具生成的)并引用相關的若干(如20)行記錄會非常有幫助肖方。
如果崩潰的程序有診斷選項(如-v詳述開關),試著選擇這些能在記錄中增加排錯信息的選項未状。記住俯画,“多”不等于“好”。試著選取適當?shù)呐佩e級別以便提供有用的信息而不是將閱讀者淹沒在垃圾中司草。
如果你的記錄很長(如超過四段)艰垂,在開頭簡述問題隨后按時間先后羅列詳細過程也許更有用。這樣埋虹,黑客在讀你的記錄時就知道該注意哪些內(nèi)容了猜憎。
描述目標而不是過程
如果你想弄清楚如何做某事(而不是報告一個臭蟲),在開頭就描述你的目標搔课,然后才陳述遇到問題的特定步驟胰柑。
經(jīng)常出現(xiàn)這種情況,尋求技術幫助的人在腦袋里有個更高層次的目標爬泥,他們在自以為能達到目標的特定道路上被卡住了柬讨,然后跑來問該怎么走,但沒有意識到這條路本身有問題袍啡,結果要費很大的勁才能通過踩官。
愚蠢:
我怎樣才能讓某圖形程序的顏色拾取器取得十六進制的 RGB 值?
明智:
我正試著用自己選定數(shù)值的顏色替換一幅圖片的色表葬馋,我現(xiàn)在知道的唯一方法是編輯每個表槽卖鲤,但卻無法讓某圖形程序的顏色拾取器取得十六進制的 RGB 值。
第二種提法是明智的畴嘶,它使得建議采用更合適的工具以完成任務的回復成為可能蛋逾。
別要求私下回復電郵
黑客們認為問題的解決過程應該公開、透明窗悯,此過程中如果更有才能的人注意到不完整或者不當之處区匣,最初的回復才能夠、也應該被糾正。同時亏钩,作為回復者也因為能力和學識被其它同行看到而得到某種回報莲绰。
當你要求私下回復時,此過程和回報都被中止姑丑。別這樣做蛤签,讓 回復者 來決定是否私下回答──如果他真這么做了,通常是因為他認為問題編寫太差或者太膚淺栅哀,以至于對其它人毫無意義震肮。
對這條規(guī)則存在一條有限的例外,如果你確信提問可能會引來大量雷同的回復時留拾,那么“向我發(fā)電郵戳晌,我將為論壇歸納這些回復”將是神奇的句子。試著將郵件列表或新聞組從洪水般雷同的回復中解救出來是非常有禮貌的──但你必須信守諾言痴柔。
提問應明確
漫無邊際的問題通常也被視為沒有明確限制的時間無底洞沦偎。最有可能給你有用答案的人通常也是最忙的人(假如只是因為他們承擔了太多工作的話),這些人對于沒有止境的時間無底洞極其敏感咳蔚,所以他們也傾向于討厭那些漫無邊際的問題豪嚎。
如果你明確了想讓回復者做的事(如指點方向、發(fā)送代碼屹篓、檢查補丁或其它)疙渣,你更有可能得到有用的回復。(因為)這樣可以讓他們集中精力并間接地設定了他們?yōu)閹椭阈枰ㄙM的時間和精力上限堆巧,這很好。
要想理解專家生活的世界泼菌,可以這樣設想:那里有豐富的專長資源但稀缺的響應時間谍肤。你暗中要求他們奉獻的時間越少,你越有可能從這些真正懂行也真正很忙的專家那里得到解答哗伯。
所以限定你的問題以使專家回答時需要付出的時間最少──這通常與簡化問題還不太一樣荒揣。舉個例,“請問可否指點一下哪有好一點的 X 解釋焊刹?”通常要比“請解釋一下 X”明智系任。如果你的代碼不運行了,通常請別人看看哪有問題比叫他們幫你改正更明智虐块。
關于代碼的問題
別要求他人給你出問題的代碼排錯而不提及應該從何入手俩滥。張貼幾百行的代碼,然后說一聲“它不能運行”會讓你得不到理睬贺奠。只貼幾十行代碼霜旧,然后說一句“在第七行以后,本應該顯示儡率,但實際出現(xiàn)的是”非常有可能讓你得到回復挂据。
最精確描述代碼問題的方法是提供一個能展示問題的最小測試樣例以清。什么是最小測試樣例?它是對問題的展現(xiàn)崎逃,只需要剛好能夠重現(xiàn)非預期行為的代碼即可掷倔。如何生 成一個最小測試樣例?如果你知道哪一行或哪一段代碼會產(chǎn)生問題个绍,將其復制并提供剛好夠用的外圍支撐代碼以構成一個完整的樣例(夠用是指源碼剛好能被編譯器今魔、解釋器或任何處理它的程序所接受)。如果你不能將問題縮小到特定的段落障贸,復制源碼并去除那些與問題無關的代碼段错森。你能提供的最小測試樣例越小越好(參 見量不在多,精煉則靈)篮洁。
生成一個非常小的最小測試樣例并不總是可能涩维,但盡力去做是很好的鍛練,這有可能幫助你找到需要自己解決的問題袁波。即使你找不到瓦阐,黑客們喜歡看到你努力過,這將使他們更合作篷牌。
如果你只是想讓別人幫忙審一下代碼睡蟋,在最開頭就要說出來,并且一定要提到你認為哪一部分特別需要關注以及為什么枷颊。
別張貼家庭作業(yè)式問題
黑客們善于發(fā)現(xiàn)“家庭作業(yè)”式的問題戳杀。我們中的大多數(shù)人已經(jīng)做了自己的家庭作業(yè),那是該你 做的夭苗,以便從中學到東西信卡。問一下提示沒有關系,但不是要求完整的解決方案题造。
如果你懷疑自己碰到了一個家庭作業(yè)式的問題傍菇,但仍然無法解決,試試在用戶組界赔、論壇或(作為最后一招)在項目的“用戶”郵件列表或論壇中提問丢习。盡管黑客們 會 看出來,一些老用戶也許仍會給你提示淮悼。
刪除無意義的要求
抵制這種誘惑咐低,即在求助消息末尾加上諸如“有人能幫我嗎?”或“有沒有答案敛惊?”之類在語義上毫無意義的東西渊鞋。第一,如果問題描述還不完整,這些附加的東西最多也只能是多余的锡宋。第二儡湾,因為它們是多余的,黑客們會認為這些東西煩人──就很有可能用邏輯上無誤但打發(fā)人的回復执俩,諸如“是的徐钠,你可以得到幫助”和“不,沒有給你的幫助”役首。
一般來說尝丐,避免提“是或否”類型的問題,除非你想得到“是或否”類型的回答衡奥。
不要把問題標記為“緊急”爹袁,即使對你而言的確如此
這是你的問題,不要我們的矮固。宣稱“緊急”極有可能事與愿違:大多數(shù)黑客會直接刪除這種消息失息,他們認為這是無禮和自私地企圖得到即時與特殊的關照。而且“緊急”或其它有類似含義的主題有可能觸發(fā)垃圾過濾規(guī)則档址,潛在的回復者可能永遠看不到你的問題盹兢!
有一點點局部的例外,如果你是在一些知名度很高守伸、會使黑客們激動的地方使用程序绎秒,也許值得這樣去做。在這種情況下尼摹,如果你有期限壓力见芹,也很有禮貌地提到這點,人們也許會有足夠的興趣快一點回答窘问。
當然辆童,這是非常冒險的,因為黑客們對什么是令人激動的標準多半與你的不同惠赫。譬如從國際空間站這樣張貼沒有問題,但代表感覺良好的慈善或政治原因這樣做幾乎肯定不行故黑。事實上儿咱,張貼諸如“緊急:幫我救救這個毛絨絨的小海豹!”肯定會被黑客回避或光火场晶,即使他們認為毛絨絨的小海豹很重要混埠。
如果你覺得這不可思議,再把剩下的內(nèi)容多讀幾遍诗轻,直到弄懂了再發(fā)貼也不遲钳宪。
禮貌總是有益的
禮貌一點,使用“請”和“謝謝你的關注”或者“謝謝你的關照”,讓別人明白你感謝他們無償花時間幫助你吏颖。
坦率地講搔体,這一點沒有語法正確、文字清晰半醉、準確疚俱、有內(nèi)容和避免使用專用格式重要(同時也不能替代它們)。黑客們一般寧可讀有點唐突但技術鮮明的臭蟲報告缩多,而不是那種有禮但含糊的報告呆奕。(如果這點讓你不解,記住我們是按問題能教我們什么來評價它的)
然爾衬吆,如果你已經(jīng)談清楚了技術問題梁钾,客氣一點肯定會增加你得到有用回復的機會逊抡。
(我們必須指出,本文唯一受到一些老黑客認真反對的地方是以前曾經(jīng)推薦過的“提前謝了”秦忿,一些黑客認為這隱含著事后不用再感謝任何人的暗示麦射。我們的建議是要么先說 “提前謝了”,事后 再 對回復者表示感謝灯谣,要么換種方式表達潜秋,譬如用“謝謝你的關注”或“謝謝你的關照”)。
問題解決后追加一條簡要說明
問題解決后向所有幫助過的人追加一條消息胎许,讓他們知道問題是如何解決的并再次感謝峻呛。如果問題在郵件列表或新聞組中受到廣泛關注,在那里追加此消息比較恰當辜窑。
最理想的方式是向最初提問的線索回復此消息钩述,并在主題中包含“已解決”、“已搞定”或其它同等含義的明顯標記穆碎。在人來人往的郵件列表里牙勘,一個看見線索 “問題 X”和“問題 X-已解決”的潛在回復者就明白不用再浪費時間了(除非他個人覺得“問題 X”有趣),因此可以利用此時間去解決其它問題所禀。
追加的消息用不著太長或太復雜方面,一句簡單的“你好──是網(wǎng)線壞了!謝謝大家──比爾”就比什么都沒有要強色徘。事實上恭金,除非解決問題的技術真正高深,一條簡短而親切的總結比長篇大論要好褂策。說明是什么行動解決了問題横腿,用不著重演整個排錯的故事颓屑。
對于有深度的問題,張貼排錯歷史的摘要是恰當?shù)墓⒑浮C枋鰡栴}的最終狀態(tài)揪惦,說明是什么解決了問題,在此之后 才指明可以避免的彎路搀别。應避免的彎路部分應放在正確的解決方案和其它總結材料之后丹擎,而不要將此消息搞成偵探推理小說。列出那些幫助過你的名字歇父,那樣你會交到朋友的蒂培。
除了有禮貌、有內(nèi)容以外榜苫,這種類型的追帖將幫助其他人在郵件列表护戳、新聞組或論壇文檔中搜索到真正解決你問題的方案,從而也讓他們受益垂睬。
最 后媳荒,此類追帖還讓每位參與協(xié)助的人因問題的解決而產(chǎn)生一種滿足感驹饺。如果你自己不是技術專家或黑客,相信我們鱼炒,這種感覺對于你尋求幫助的老手和專家是非常重 要的。問題敘述到最后不知所終總是令人沮喪的昔瞧,黑客們癢癢地渴望它們被解決菩佑。“撓癢癢”為你掙到的信譽將對你下次再次張貼提問非常非常的有幫助稍坯。
考慮一下怎樣才能避免他人將來也遇到類似的問題,問問自己編一份文檔或 FAQ 補丁會不會有幫助袜蚕,如果是的話就將補丁發(fā)給維護者。
在黑客中,這種良好的后繼行動實際上比傳統(tǒng)的禮貌更重要遣疯,也是你善待他人而贏得聲譽的方式凿傅,這是非常有價值的財富数苫。
如何解讀回答
“讀讀該死的手冊”(RTFM)和“搜搜該死的網(wǎng)絡”(STFW):如何明白你已完全搞砸
有一個古老而神圣的傳統(tǒng):如果你收到“讀讀該死的手冊”(RTFM) 的回復聪舒,發(fā)信人認為你應該去“讀讀該死的手冊”箱残。他或她多半是對的止吁,去讀一下吧。
“讀讀該死的手冊”(RTFM)有個年輕一點的親戚敬惦,如果你收到“搜搜該死的網(wǎng)絡”(STFW)的回復,發(fā)信人認為你應該“搜搜該死的網(wǎng)絡”宏怔。那人多半也是對的,去搜一下吧臊诊。(更溫和一點的說法是“谷歌是你的朋友斜脂!”)
在論壇,你也可能被要求去搜索論壇的文檔秽褒。事實上,有人甚至可能熱心地為你提供以前解決此問題的線索庐椒。但不要依賴這種關照,提問前應該先搜索一下文檔约谈。
通常犁钟,叫你搜索的人已經(jīng)打開了能解決你問題的手冊或網(wǎng)頁,正在一邊看一邊敲鍵盤迈勋。這些回復意味著他認為:第一,你要的信息很容易找到靡菇。第二,自已找要比別人喂到嘴里能學得更多厦凤。
你不應該覺得這樣就被冒犯了,按黑客的標準较鼓,回復者沒有不理你就是在向你表示某種尊敬,你反而應該感謝他熱切地想幫助你博烂。
如果還不明白……
如果你看不懂回答,不要馬上回復一個要求說明的消息士鸥,先試試那些最初提問時用過的相同工具(如手冊、FAQ烤礁、網(wǎng)頁肥照、懂行的朋友等)試著搞懂回答。如果還是需要說明舆绎,展現(xiàn)你已經(jīng)明白的。
譬如吕朵,假如我告訴你:“看起來象是某輸入項有問題,你需要清除它”硫嘶,接著是個不好 的回帖:“什么是某輸入項?”梧税。而這是一個 很好 的跟帖:“是的,我讀了手冊哮塞,某某輸入項只在 -z 和 -p 開關中被提到凳谦,但都沒有涉及到如何清除它們,你指的是哪一個還是我弄錯了什么尸执?”
對待無禮
很多黑客圈子中看似無禮的行為并不是存心冒犯眠屎。相反肆饶,它是直接了當驯镊、一針見血式的交流風格,這種風格對于更關注解決問題而不是使別人感覺舒服而混亂的人是很自然的板惑。
如果你覺得被冒犯了偎快,試著平靜地反應。如果有人真的做了過格的事晒夹,郵件列表、新聞組或論壇中的前輩多半會招呼他喷好。如果這 沒有 發(fā)生而你卻光火了,那么你發(fā)火對象的言語可能在黑客社區(qū)中看起來是正常的,而你 將被視為有錯的一方效览,這將傷害到你獲取信息或幫助的機會。
另一方面丐枉,你會偶而真的碰到無禮和無聊的言行。與上述相反矛洞,對真正的冒犯者狠狠地打擊、用犀利的語言將其駁得體無完膚 都是可以接受的沼本。然爾抽兆,在行事之前一定要非常非常的有根據(jù)祝辣。糾正無禮的言論與開始一場毫無意義的口水戰(zhàn)僅一線之隔切油,黑客們自己莽撞地越線的情況并不鮮見。如果你是新手或外來者稚伍,避開這種莽撞的機會并不高个曙。如果你想得到的是信息而不是消磨時光那槽,這時最好不要把手放在鍵盤上以免冒險骚灸。
(有些人斷言很多黑客都有輕度的自閉癥或阿斯伯格綜合癥甚牲,缺少用于潤滑人類社會“正常”交往所需的腦電路劫笙。這既可能是真也可能是假填大。如果你自己不是黑客,興許你認為我們腦袋有問題還能幫助你應付我們的古怪行為。只管這么干好了磷蜀,我們不在乎。我們喜歡 現(xiàn)在這個樣子妓灌,并且一般都對病號標記有站得住腳的懷疑。)
在下一節(jié)圃验,我們會談到另一個問題澳窑,當 你 行為不當時會受到的“冒犯”栈暇。
別象失敗者那樣反應
在黑客社區(qū)的論壇中有那么幾次你可能會搞砸──以本文描述或類似的方式煎源。你會被示眾是如何搞砸的手销,也許言語中還會帶點顏色。
這種事發(fā)生以后兽埃,你能做的最糟糕的事莫過于哀嚎你的遭遇、宣稱被口頭攻擊冕房、要求道歉、高聲尖叫详拙、憋悶氣饶辙、威脅訴諸法律斑粱、向其雇主報怨则北、忘了關馬桶蓋等等。相反涌矢,你該這樣去做:
熬過去娜庇,這很正常搜立。事實上谨究,它是有益健康與恰當?shù)摹?/p>
社區(qū)的標準不會自己維持畦娄,它們是通過參與者積極而公開 地執(zhí)行來維持的铸豁。不要哭嚎所有的批評都應該通過私下的郵件傳送耗跛,這不是事情運作的方式。當有人評論你的一個說法有誤或者提出不同看法時惠猿,堅持聲稱受到個人攻擊也毫無益處姜凄,這些都是失敗者的態(tài)度董虱。
也有其它的黑客論壇,受過高禮節(jié)要求的誤導捐友,禁止參與者張貼任何對別人帖子挑毛病的消息,并聲稱“如果你不想幫助用戶就閉嘴”。有思路的參與者紛紛離開的結果只會使它們變成了毫無意義的嘮叨與無用的技術論壇影涉。
是夸張的“友誼”(以上述方式)還是有用?挑一個匣缘。
記 著:當黑客說你搞砸了鲜棠,并且(無論多么刺耳地)告訴你別再這樣做時,他正在為關心你和他的社區(qū)而行動柑爸。對他而言盒音,不理你并將你從他的生活中濾除要容易得多。如果你無法做到感謝祥诽,至少要有點尊嚴,別大聲哀嚎厘熟,也別因為自己是個有戲劇性超級敏感的靈魂和自以為有資格的新來者,就指望別人象對待脆弱的洋娃娃那 樣對你绳姨。
有時候,即使你沒有搞砸(或者只是別人想象你搞砸了)帖渠, 有些人也會無緣無故地攻擊你本人竭宰。在這種情況下,報怨倒是 真的 會把問題搞砸切揭。
這些找茬者要么是毫無辦法但自以為是專家的不中用家伙,要么就是測試你是否真會搞砸的心理專家哼审。其它讀者要么不理睬孕豹,要么用自己的方式對付他們。這些找茬者在給自己找麻煩励背,這點你不用操心。
也別讓自己卷入口水戰(zhàn)址儒,大多數(shù)口水戰(zhàn)最好不要理睬──當然衅疙,是在你核實它們只是口水戰(zhàn)、沒有指出你搞砸的地方喧伞,而且沒有巧妙地將問題真正的答案藏于其中之后(這也是可能的)理朋。
提問禁忌
下面是些典型的愚蠢問題和黑客不回答它們時的想法。
問:我可以用 Bass-o-matic 文件轉(zhuǎn)換工具將 AcmeCorp 文檔轉(zhuǎn)為 TeX 格式嗎?
問:我的程序不運行了靠益,我認為系統(tǒng)工具X有問題
問:我如何才能破解超級用戶口令/盜取通道操作員的特權/查看某人的電子郵件壳快?
問:我到哪可以找到某程序或 X 資源镇草?
答:在我找到它的同樣地方,笨旦──在網(wǎng)頁搜索引擎上梯啤。上帝啊,難道還有人不知道如何使用谷歌 嗎?
問:我怎樣用 X 做 Y羽嫡?
答:如果你想解決的是 Y肩袍,提問時別給出可能并不恰當?shù)姆椒ā_@種問題說明提問者不但對 X 完全無知氛赐,也對要解決的 Y 問題糊涂,還被特定形勢禁錮了思維滓侍。等他們把問題弄好再說牲芋。
問:如何配置我的 shell 提示捺球?
答:如果你有足夠的智慧提這個問題氮兵,你也該有足夠的智慧去“讀讀該死的手冊”(RTFM),然后自己去找出來泣栈。
問:我可以用 Bass-o-matic 文件轉(zhuǎn)換工具將 AcmeCorp 文檔轉(zhuǎn)為 TeX 格式嗎弥姻?
答:試試就知道了。如果你試過铃绒,你既知道了答案螺捐,又不用浪費我的時間了。
問:我的{程序赔癌、配置澜沟、SQL 語句}不運行了
答:這不是一個問題,我也沒有興趣去猜你有什么問題──我有更要緊的事要做茫虽。看到這種東西濒析,我的反應一般如下:
你還有什么補充嗎?
噢婴氮,太糟了盾致,希望你能搞定。
這跟我究竟有什么關系罩驻?
問:我的視窗電腦出問題了护赊,你能幫忙嗎迷扇?
答:是的蜓席,把視窗垃圾刪了课锌,裝個象 Linux 或 BSD 的開源操作系統(tǒng)吧。
注意:如果程序有官方的視窗版或者與視窗有交互(如 Samba)雏胃,你 可以 問與視窗相關的問題,只是別對問題是由視窗操作系統(tǒng)而不是程序本身造成的回復感到驚訝瞭亮,因為視窗一般來說太差统翩,這種說法一般都成立此洲。
問:我的程序不運行了,我認為系統(tǒng)工具 X 有問題
答:你完全有可能是第一個注意到被成千上萬用戶反復使用的系統(tǒng)調(diào)用與庫文件有明顯缺陷的人呜师,更有可能的是你完全沒有根據(jù)汁汗。不同凡響的說法需要不同凡響的證據(jù),當你這樣聲稱時霎匈,你必須有清楚而詳盡的缺陷說明文檔作后盾送爸。
問:我安裝 Linux 或 X 遇到困難袭厂,你能幫忙嗎球匕?
答:不行,我需要親手操作你的電腦才能幫你排錯橄杨,去向當?shù)氐?Linux 用戶組尋求方便的幫助(你可以在這里找到用戶組列表)
注意:如果安裝問題與某 Linux 發(fā)行版有關秘症,在針對 它 的郵件列表乡摹、論壇或本地用戶組織中提問也許是恰當?shù)拇狭4藭r,應描述問題的準確細節(jié)故慈。在此之前,先用 “l(fā)inux”和 所有 被懷疑的硬件 [作關鍵詞] 仔細搜索干签。
問:我如何才能破解超級用戶口令/盜取通道操作員的特權/查看某人的電子郵件拆撼?
答:想做這種事情說明你是個卑劣的家伙,想讓黑客教你做這種事情說明你是個白癡鸭蛙。
好問題與壞問題
最后筋岛,我將通過舉例來演示提問的智慧。同樣的問題兩種提法肪获,一種愚蠢柒傻,另一種明智。
愚蠢:我在哪能找到關于 Foonly Flurbamatic 設備的東西青柄?
這個問題在乞求得到“搜搜該死的網(wǎng)絡”(STFW)式的回復致开。
明智:我用谷歌搜索過“Foonly Flurbamatic 2600”,但沒有找到什么有用的萎馅,有誰知道在哪能找到這種設備的編程信息双戳?
這個人已經(jīng)搜索過網(wǎng)絡了,而且聽起來他可能真的遇到了問題糜芳。
愚蠢:我不能編譯某項目的源代碼飒货,它為什么這么破魄衅?
提問者假設是別人搞砸了,太自大了塘辅。
明智:某項目的源代碼不能在某 Linux 6.2 版下編譯晃虫。我讀了常見問題文檔,但其中沒有與某 Linux 相關的內(nèi)容莫辨。這是編譯時的記錄傲茄,我做錯了什么嗎盘榨?
提問者已經(jīng)指明了運行環(huán)境草巡,讀了常見問題文檔(FAQ)山憨,列出了錯誤郁竟,也沒有假設問題是別人的過錯棚亩,這家伙值得注意讥蟆。
愚蠢:我的主板有問題,誰能幫我笛钝?
某黑客對此的反應可能是:“是的结榄,還需要幫你拍背和換尿布嗎?”最蕾,然后是敲下刪除鍵瘟则。
明智:我在 S2464 主板上試過 X慷嗜、Y和 Z丹壕,當它們都失敗后缭乘,又試了 A堕绩、B 和 C奴紧。注意我試 C 時的奇怪癥狀,顯然某某東西正在做某某事情滤钱,這不是期望的行為件缸。通常在 Athlon MP 主板上導致某某事情的原因是什么他炊?有誰知道我還能再試點什么以確定問題痊末?
相反地,這個人看來值得回答。他或她展現(xiàn)了解決問題的能力而不是坐等天上掉餡餅蹬碧。
在最后那個問題中恩沽,注意“給我一個回答”與“請幫我看看我還能再做點什么測試以得到啟發(fā)”之間細微但重要的差別。
事實上渤闷,最后那個問題基本上源于 2001 年 8 月 Linux 內(nèi)核郵件列表(lkml)上的真實事件肤晓,是我(Eric)當時提了那個問題补憾,我發(fā)現(xiàn) Tyan S2462 主板有神秘的死機現(xiàn)象,郵件列表成員給我提供了解決此問題的關鍵信息毕骡。
通過這種提問方式窿撬,我給了別人可以咀嚼玩味的東西劈伴。我設法使之對參與者既輕松又有吸引力,也表明了對同行能力的尊敬并邀請他們與我一起協(xié)商追城。通過告訴他們我已經(jīng)走過的彎路座柱,我還表明了對他們寶貴時間的尊重瞬矩。
事后,當我感謝大家并評論這次良好的經(jīng)歷時惭蹂,一個 Linux 內(nèi)核郵件列表的成員談到盾碗,他認為我得到答案并不是因為我的名字掛在列表上廷雅,而只是因為我正確的提問方式。
黑客們在某種方面是非常不留情面的精英分子堰怨。我想在這事上他是對的灿巧,如果我 表現(xiàn)得 象個不勞而獲的寄生蟲抠藕,不管我是誰都會被忽略或斥責。他建議將整個事件作為對其它人提問的指導颜说,這直接導致了本文的編寫。
如果得不到回答
如果得不到回答玄妈,請不要認為我們不想幫你绎签,有時只是因為被問到的小組成員的確不知道答案。沒有回復不等于不被理睬酝锅,當然必須承認從外面很難看出兩者的差別爸舒。
一般而言,直接將問題再張貼一次不好,這會被視為毫無意義的騷擾唱捣。耐心一點,知道你問題答案的人可能生活在不同的時區(qū)蛀序,有可能正在睡覺,也有可能你的問題一開始就沒有組織好重贺。
還有其它資源可以尋求幫助怯晕,通常是在一些面向新手的資源中舟茶。
有許多在線與本地的用戶組織,雖然它們自己不編寫任何軟件,但是對軟件很熱心针余。這些用戶組通常因互助和幫助新手而形成。
還有眾多大小商業(yè)公司提供簽約支持服務,別因為要付點錢才有支持就感到沮喪!畢竟患雇,如果你車子的汽缸墊燒了,你多半還得花錢找個修理店把它弄好翠储。即使軟件沒花你一分錢,你總不能指望服務支持都是免費的住拭。
象 Linux 這樣流行的軟件历帚,每個開發(fā)者至少有一萬個以上的用戶,一個人不可能應付這么多用戶的服務要求睹簇。記住,即使你必須付費才能得到支持凿渊,也比你還得額外花錢買軟件要少得多(而且對封閉源代碼軟件的服務支持與開源軟件相比通常還要貴一點秋忙,也要差一點)。
如何更好地回答
態(tài)度和善一點弹澎。問題帶來的壓力常使人顯得無禮或愚蠢佩迟,其實并不是這樣惫撰。
對初犯者私下回復。對那些坦誠犯錯之人沒有必要當眾羞辱苍蔬,一個真正的新手也許連怎么搜索或在哪找 FAQ 都不知道。
如果你不確定汽馋,一定要說出來!一個聽起來權威的錯誤回復比沒有還要糟围辙,別因為聽起來象個專家好玩就給別人亂指路吱殉。要謙虛和誠實友雳,給提問者與同行都樹個好榜樣饺藤。
如果幫不了忙,別妨礙。不要在具體步驟上開玩笑,那樣也許會毀了用戶的安裝──有些可憐的呆瓜會把它當成真的指令量窘。
探索性的反問以引出更多的細節(jié)。如果你做得好奕谭,提問者可以學到點東西──你也可以涣觉。試試將很差的問題轉(zhuǎn)變成好問題,別忘了我們都曾是新手血柳。
盡管對那些懶蟲報怨一聲“讀讀該死的手冊”(RTFM)是正當?shù)墓俨幔赋鑫臋n的位置(即使只是建議做個谷歌關鍵詞搜索)會更好
如果你決意回答,給出好的答案难捌。當別人正在用錯誤的工具或方法時別建議笨拙的權宜之計膝宁,應推薦更好的工具,重新組織問題根吁。
請回答真正的問題昆汹!如果提問者已經(jīng)做了自己該做的研究,并且說明嘗試過X婴栽,Y满粗,Z,A愚争,B與C都沒有得到想要的結果映皆,那么回復“試試A或B” 或者給出一個內(nèi)容為 “試一下X挤聘,Y,Z捅彻,A组去,B或C”的鏈接將極其無益!
幫助你的社區(qū)從中學習步淹。當回復一個好問題時从隆,問問自己 “如何修改相關文件或 FAQ 文檔以免再次解答同樣的問題?”缭裆,接著再向文檔維護者發(fā)一份補丁键闺。
如果你是在研究一番后才做出的回答,展現(xiàn)你的技巧而不是直接端出結果澈驼。畢竟“授人以魚辛燥,不如授人以漁”。
相關資源
如果需要個人電腦缝其、Unix 和互聯(lián)網(wǎng)如何工作的基礎知識挎塌,參閱Unix 和互聯(lián)網(wǎng)工作的基本原理。
當你發(fā)布軟件或補丁時内边,試著按軟件發(fā)布實踐操作榴都。
鳴謝
伊夫林.米切爾(Evelyn Mitchell)貢獻了一些愚蠢問題例子并啟發(fā)了編寫“如何更好地回答問題”這一節(jié),米哈伊爾.羅門迪克(Mikhail Ramendik)貢獻了一些特別有價值的建議和改進漠其。