提問的智慧
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
Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu
本中文指南是基於原文 3.10 版以及 2010 年由 Gasolin 所翻譯版本的最新翻譯建钥;
協(xié)助指出翻譯問題,請發(fā)Issue虐沥,或直接發(fā)Pull Request給我熊经。
本文另有: 簡體中文版
原文版本歷史
目錄
- 聲明
- 簡介
- 在提問之前
-
當你提問時
- 慎選提問的論壇
- Stack Overflow
- 網(wǎng)站和IRC論壇
- 第二步,使用專案郵件列表
- 使用有意義且描述明確的標題
- 使問題容易回覆
- 用清晰欲险、正確镐依、精準並合法文法的語句
- 使用易於讀取且標準的文件格式發(fā)送問題
- 精確的描述問題並言之有物
- 話不在多而在精
- 別動輒聲稱找到Bug
- 可以低聲下氣,但還是要先做功課
- 描述問題癥狀而非猜測
- 按發(fā)生時間先後列出問題癥狀
- 描述目標而不是過程
- 別要求使用私人電郵回覆
- 清楚明確的表達你的問題以及需求
- 詢問有關(guān)程式碼的問題時
- 別把自己家庭作業(yè)的問題貼上來
- 去掉無意義的提問句
- 即使你很急也不要在標題寫緊急
- 禮多人不怪天试,而且有時還很有幫助
- 問題解決後槐壳,加個簡短的補充說明
- 如何解讀答案
- 如何避免扮演失敗者
- 不該問的問題
- 好問題與蠢問題
- 如果得不到回答
- 如何更好地回答問題
- 相關(guān)資源
- 鳴謝
聲明
許多專案在他們的使用協(xié)助/說明網(wǎng)頁中連結(jié)了本指南,這麼做很好喜每,我們也鼓勵大家都這麼做务唐。但如果你是負責管理這個專案網(wǎng)頁的人,請在超連結(jié)附近的顯著位置上註明:
本指南不提供此專案的實際支援服務(wù)带兜!
我們已經(jīng)深刻領(lǐng)教到少了上述聲明所帶來的痛苦绍哎。因為少了這點聲明,我們不停地被一些白癡糾纏鞋真。這些白癡認為既然我們發(fā)布了這本指南崇堰,那麼我們就有責任解決世上所有的技術(shù)問題。
如果你是因為需要某些協(xié)助而正在閱讀這本指南,並且最後離開是因為發(fā)現(xiàn)從本指南作者們身上得不到直接的協(xié)助海诲,那麼你就是我們所說的那些白癡之一繁莹。別問我們問題,我們只會忽略你特幔。我們在這本指南中是教你如何從那些真正懂得你所遇到軟體或硬體問題的人取得協(xié)助咨演,而99%的情況下那不會是我們。除非你確定本指南的作者之一剛好是你所遇到的問題領(lǐng)域的專家蚯斯,否則請不要打擾我們薄风,這樣大家都會開心一點。
簡介
在黑客的世界裡拍嵌,當你拋出一個技術(shù)問題時遭赂,最終是否能得到有用的回答,往往取決於你所提問和追問的方式横辆。本指南將教你如何正確的提問以獲得你滿意的答案撇他。
不只是黑客,現(xiàn)在開放原始碼(Open Source)軟體已經(jīng)相當盛行狈蚤,你常常也可以由其他有經(jīng)驗的使用者身上得到好答案困肩,這是件好事;使用者比起黑客來脆侮,往往對那些新手常遇到的問題更寬容一些锌畸。然而,將有經(jīng)驗的使用者視為黑客靖避,並採用本指南所提的方法與他們溝通蹋绽,同樣也是能從他們身上得到滿意回答的最有效方式。
首先你應(yīng)該明白筋蓖,黑客們喜愛有挑戰(zhàn)性的問題卸耘,或者能激發(fā)我們思維的好問題。如果我們並非如此粘咖,那我們也不會成為你想詢問的對象蚣抗。如果你給了我們一個值得反覆咀嚼玩味的好問題,我們自會對你感激不盡瓮下。好問題是激勵翰铡,是厚禮。好問題可以提高我們的理解力讽坏,而且通常會暴露我們以前從沒意識到或者思考過的問題锭魔。對黑客而言,"好問題路呜!"是誠摯的大力稱讚迷捧。
儘管如此织咧,黑客們有著蔑視或傲慢面對簡單問題的壞名聲,這有時讓我們看起來對新手漠秋、無知者似乎較有敵意笙蒙,但其實不是那樣的。
我們不諱言我們對那些不願思考庆锦、或者在發(fā)問前不做他們該做的事的人的蔑視捅位。那些人是時間殺手 -– 他們只想索取,從不付出搂抒,消耗我們可用在更有趣的問題或更值得回答的人身上的時間艇搀。我們稱這樣的人為 失敗者(魯蛇)
(由於歷史原因,我們有時把它拼作 lusers
)求晶。
我們意識到許多人只是想使用我們寫的軟體焰雕,他們對學習技術(shù)細節(jié)沒有興趣。對大多數(shù)人而言誉帅,電腦只是種工具,是種達到目的的手段而已右莱。他們有自己的生活並且有更要緊的事要做蚜锨。我們了解這點,也從不指望每個人都對這些讓我們著迷的技術(shù)問題感興趣慢蜓。儘管如此亚再,我們回答問題的風格是指向那些真正對此有興趣並願意主動參與解決問題的人,這一點不會變晨抡,也不該變氛悬。如果連這都變了,我們就是在降低做自己最擅長的事情上的效率耘柱。
我們(在很大程度上)是自願的如捅,從繁忙的生活中抽出時間來解答疑惑,而且時常被提問淹沒调煎。所以我們無情的濾掉一些話題镜遣,特別是拋棄那些看起來像失敗者的傢伙,以便更高效的利用時間來回答贏家(溫拿)
的問題士袄。
如果你厭惡我們的態(tài)度悲关,高高在上,或過於傲慢娄柳,不妨也設(shè)身處地想想寓辱。我們並沒有要求你向我們屈服 -- 事實上,我們大多數(shù)人非常樂意與你平等地交流赤拒,只要你付出小小努力來滿足基本要求秫筏,我們就會歡迎你加入我們的文化诱鞠。但讓我們幫助那些不願意幫助自己的人是沒有效率的。無知沒有關(guān)係跳昼,但裝白癡就是不行般甲。
所以,你不必在技術(shù)上很在行才能吸引我們的注意鹅颊,但你必須表現(xiàn)出能引導你變得在行的特質(zhì) -- 機敏敷存、有想法、善於觀察堪伍、樂於主動參與解決問題锚烦。如果你做不到這些使你與眾不同的事情,我們建議你花點錢找家商業(yè)公司簽個技術(shù)支援服務(wù)合同帝雇,而不是要求黑客個人無償?shù)貛椭恪?/p>
如果你決定向我們求助涮俄,當然你也不希望被視為失敗者,更不願成為失敗者中的一員尸闸。能立刻得到快速並有效答案的最好方法彻亲,就是像贏家那樣提問 -- 聰明、自信吮廉、有解決問題的思路苞尝,只是偶爾在特定的問題上需要獲得一點幫助。
(歡迎對本指南提出改進意見宦芦。你可以 email 你的建議至 esr@thyrsus.com 或 respond-auto@linuxmafia.com宙址。然而請注意,本文並非網(wǎng)路禮節(jié)的通用指南调卑,而我們通常會拒絕無助於在技術(shù)論壇得到有用答案的建議抡砂。)
在提問之前
在你準備要通過電子郵件、新聞群組或者聊天室提出技術(shù)問題前恬涧,請先做到以下事情:
- 嘗試在你準備提問的論壇的舊文章中搜索答案注益。
- 嘗試上網(wǎng)搜索以找到答案。
- 嘗試閱讀手冊以找到答案溯捆。
- 嘗試閱讀常見問題文件(FAQ)以找到答案聊浅。
- 嘗試自己檢查或試驗以找到答案
- 向你身邊的強者朋友打聽以找到答案。
- 如果你是程式開發(fā)者现使,請嘗試閱讀原始碼以找到答案
當你提出問題的時候低匙,請先表明你已經(jīng)做了上述的努力;這將有助於樹立你並不是一個不勞而獲且浪費別人的時間的提問者碳锈。如果你能一併表達在做了上述努力的過程中所學到的東西會更好顽冶,因為我們更樂於回答那些表現(xiàn)出能從答案中學習的人的問題。
運用某些策略售碳,比如先用Google搜索你所遇到的各種錯誤訊息(既搜索Google論壇强重,也搜索網(wǎng)頁)绞呈,這樣很可能直接就找到了能解決問題的文件或郵件列表線索。即使沒有結(jié)果间景,在郵件列表或新聞組尋求幫助時加上一句 我在Google中搜過下列句子但沒有找到什麼有用的東西
也是件好事佃声,即使它只是表明了搜索引擎不能提供哪些幫助。這麼做(加上搜尋過的字串)也讓遇到相似問題的其他人能被搜尋引擎引導到你的提問來倘要。
別著急圾亏,不要指望幾秒鐘的Google搜尋就能解決一個複雜的問題。在向?qū)<仪笾胺馀。匍喿x一下常見問題文件(FAQ)志鹃、放輕鬆、坐舒服一些泽西,再花點時間思考一下這個問題曹铃。相信我們,他們能從你的提問看出你做了多少閱讀與思考捧杉,如果你是有備而來陕见,將更有可能得到解答。不要將所有問題一股腦拋出味抖,只因你的第一次搜索沒有找到答案(或者找到太多答案)评甜。
準備好你的問題,再將問題仔細的思考過一遍非竿,因為草率的發(fā)問只能得到草率的回答蜕着,或者根本得不到任何答案谋竖。越是能表現(xiàn)出在尋求幫助前你為解決問題所付出的努力红柱,你越有可能得到實質(zhì)性的幫助。
小心別問錯了問題蓖乘。如果你的問題基於錯誤的假設(shè)锤悄,某個普通黑客(J. Random Hacker)多半會一邊在心裏想著蠢問題…
酝惧, 一邊用無意義的字面解釋來答覆你拣宏,希望著你會從問題的回答(而非你想得到的答案)中汲取教訓。
絕不要自以為夠格得到答案煎谍,你沒有些侍;你並沒有隶症。畢竟你沒有為這種服務(wù)支付任何報酬。你將會是自己去掙到一個答案岗宣,靠提出有內(nèi)涵的蚂会、有趣的、有思維激勵作用的問題 --一個有潛力能貢獻社群經(jīng)驗的問題耗式,而不僅僅是被動的從他人處索取知識胁住。
另一方面趁猴,表明你願意在找答案的過程中做點什麼是一個非常好的開端。誰能給點提示彪见?
儡司、我的這個例子裏缺了什麼?
以及我應(yīng)該檢查什麼地方
比請把我需要的確切的過程貼出來
更容易得到答復余指。因為你表現(xiàn)出只要有人能指個正確方向捕犬,你就有完成它的能力和決心。
當你提問時
慎選提問的論壇
小心選擇你要提問的場合浪规。如果你做了下述的事情或听,你很可能被忽略掉或者被看作失敗者:
- 在與主題不合的論壇上貼出你的問題
- 在探討進階技術(shù)問題的論壇張貼非常初級的問題;反之亦然
- 在太多的不同新聞群組上重複轉(zhuǎn)貼同樣的問題(cross-post)
- 向既非熟人也沒有義務(wù)解決你問題的人發(fā)送私人電郵
黑客會剔除掉那些搞錯場合的問題笋婿,以保護他們溝通的管道不被無關(guān)的東西淹沒誉裆。你不會想讓這種事發(fā)生在自己身上的。
因此缸濒,第一步是找到對的論壇足丢。再說一次,Google和其它搜尋引擎還是你的朋友庇配,用它們來找到與你遭遇到困難的軟硬體問題最相關(guān)的網(wǎng)站斩跌。通常那兒都有常見問題(FAQ)、郵件列表及相關(guān)說明文件的連結(jié)捞慌。如果你的努力(包括閱讀FAQ)都沒有結(jié)果耀鸦,網(wǎng)站上也許還有報告臭蟲(Bug-reporting)的流程或連結(jié),如果是這樣啸澡,連過去看看袖订。
向陌生的人或論壇發(fā)送郵件最可能是風險最大的事情。舉例來說嗅虏,別假設(shè)一個題供豐富內(nèi)容的網(wǎng)頁的作者會想充當你的免費顧問洛姑。不要對你的問題是否會受到歡迎做太樂觀的估計 -- 如果你不確定,那就向別處發(fā)送皮服,或者壓根別發(fā)楞艾。
在選擇論壇、新聞群組或郵件列表時龄广,別太相信名字硫眯,先看看FAQ或者許可書以弄清楚你的問題是否切題。發(fā)文前先翻翻已有的話題择同,這樣可以讓你感受一下那裡的文化两入。事實上,事先在新聞組或郵件列表的歷史記錄中搜尋與你問題相關(guān)的關(guān)鍵詞是個極好的主意奠衔,也許這樣就找到答案了谆刨。即使沒有塘娶,也能幫助你歸納出更好的問題。
別像機關(guān)槍似的一次"掃射"所有的幫助管道痊夭,這就像大喊大叫一樣會使人不快刁岸。要一個一個地來。
搞清楚你的主題她我!最典型的錯誤之一是在某種致力於跨平臺可移植的語言虹曙、套件或工具的論壇中提關(guān)於Unix或Windows作業(yè)系統(tǒng)程序介面的問題。如果你不明白為什麼這是大錯番舆,最好在搞清楚這之間差異之前什麼也別問酝碳。
一般來說,在仔細挑選的公共論壇中提問恨狈,會比在私有論壇中提同樣的問題更容易得到有用的回答疏哗。有幾個理由可以支持這點,一是看潛在的回覆者有多少禾怠,二是看觀眾有多少返奉。黑客較願意回答那些能幫助到許多人的問題。
可以理解的是吗氏,老練的黑客和一些熱門軟體的作者正在接受過多的錯發(fā)訊息芽偏。就像那根最後壓垮駱駝背的稻草一樣,你的加入也有可能使情況走向極端 -- 已經(jīng)好幾次了弦讽,一些熱門軟體的作者從自己軟體的支援中抽身出來污尉,因為伴隨而來湧入其私人郵箱的無用郵件變得無法忍受。
Stack Overflow
搜尋往产,然後 在 Stack Exchange 問被碗。
近年來,Stack Exchange community 社群已經(jīng)成為回答技術(shù)及其他問題的主要管道捂齐,尤其是那些開放源碼的專案蛮放。
因為 Google 索引是即時的缩抡,在看 Stack Exchange 之前先在 Google 搜尋奠宜。有很高的機率某人已經(jīng)問了一個類似的問題,而且 Stack Exchange 網(wǎng)站們往往會是搜尋結(jié)果中最前面幾個瞻想。如果你在 Google 上沒有找到任何答案压真,你再到特定相關(guān)主題的網(wǎng)站去找。用標籤(Tag)搜尋能讓你更縮小你的搜尋結(jié)果蘑险。
Stack Exchange 已經(jīng)成長到超過一百個網(wǎng)站滴肿,以下是最常用的幾個站:
- Super User 是問一些通用的電腦問題,如果你的問題跟程式碼或是寫程式無關(guān)佃迄,只是一些網(wǎng)路連線之類的泼差,請到這裡贵少。
- Stack Overflow 是問寫程式有關(guān)的問題。
- Server Fault 是問伺服器和網(wǎng)管相關(guān)的問題堆缘。
網(wǎng)站和IRC論壇
在地的使用者群組(user group)滔灶,或者你所用的 Linux 發(fā)行版本也許正在宣傳他們的網(wǎng)頁論壇或 IRC 頻道,並提供新手幫助(在一些非英語國家吼肥,新手論壇很可能還是郵件列表)录平, 這些地方是開始提問的好首選,特別是當你覺得遇到的也許只是相對簡單或者很普通的問題時缀皱。有廣告贊助的 IRC 頻道是公開歡迎提問的地方斗这,通常可以即時得到回應(yīng)啤斗。
事實上表箭,如果程式出的問題只發(fā)生在特定 Linux 發(fā)行版提供的版本(這很常見),最好先去該發(fā)行版的論壇或郵件列表中提問钮莲,再到程式本身的論壇或郵件列表提問燃逻。(否則)該項目的黑客可能僅僅回覆 "用我們的版本"。
在任何論壇發(fā)文以前臂痕,先確認一下有沒有搜尋功能伯襟。如果有,就試著搜尋一下問題的幾個關(guān)鍵詞握童,也許這會有幫助姆怪。如果在此之前你已做過通用的網(wǎng)頁搜尋(你也該這樣做),還是再搜尋一下論壇澡绩,搜尋引擎有可能沒來得及索引此論壇的全部內(nèi)容稽揭。
通過論壇或 IRC 頻道來提供使用者支援服務(wù)有增長的趨勢,電子郵件則大多為專案開發(fā)者間的交流而保留肥卡。所以最好先在論壇或 IRC 中尋求與該專案相關(guān)的協(xié)助溪掀。
第二步,使用專案郵件列表
當某個專案提供開發(fā)者郵件列表時步鉴,要向列表而不是其中的個別成員提問揪胃,即使你確信他能最好地回答你的問題。查一查專案的文件和首頁氛琢,找到專案的郵件列表並使用它喊递。有幾個很好的理由支持我們採用這種辦法:
- 任何好到需要向個別開發(fā)者提出的問題,也將對整個專案群組有益阳似。反之骚勘,如果你認為自己的問題對整個專案群組來說太愚蠢,也不能成為騷擾個別開發(fā)者的理由。
- 向列表提問可以分散開發(fā)者的負擔俏讹,個別開發(fā)者(尤其是專案領(lǐng)導人)也許太忙以至於沒法回答你的問題当宴。
- 大多數(shù)郵件列表都會被封存,那些被封存的內(nèi)容將被搜尋引擎索引泽疆。如果你向列表提問並得到解答即供,將來其它人可以通過網(wǎng)頁搜尋找到你的問題和答案,也就不用再次發(fā)問了于微。
- 如果某些問題經(jīng)常被問到逗嫡,開發(fā)者可以利用此資訊來改進說明文件或軟體本身,以使其更清楚株依。如果只是私下提問驱证,就沒有人能看到最常見問題的完整場景。
如果一個項目既有"使用者" 也有"開發(fā)者"(或"黑客")郵件列表或論壇恋腕,而你又不會動到那些原始碼抹锄,那麼就向"使用者"列表或論壇提問。不要假設(shè)自己會在開發(fā)者列表中受到歡迎荠藤,那些人多半會將你的提問視為干擾他們開發(fā)的噪音伙单。
然而,如果你確信你的問題很特別哈肖,而且在"使用者" 列表或論壇中幾天都沒有回覆吻育,可以試試前往"開發(fā)者"列表或論壇發(fā)問。建議你在張貼前最好先暗地裡觀察幾天以了解那裡的行事方式(事實上這是參與任何私有或半私有列表的好主意)
如果你找不到一個專案的郵件列表淤井,而只能查到專案維護者的電子郵件地址布疼,儘管向他發(fā)信。即使是在這種情況下币狠,也別假設(shè)(專案)郵件列表不存在游两。在你的電子郵件中,請陳述你已經(jīng)試過但沒有找到合適的郵件列表漩绵,也提及你不反對將自己的郵件轉(zhuǎn)發(fā)給他人(許多人認為贱案,即使沒什麼秘密,私人電子郵件也不應(yīng)該被公開止吐。通過允許將你的電子郵件轉(zhuǎn)發(fā)他人宝踪,你給了相應(yīng)人員處置你郵件的選擇)。
使用有意義且描述明確的標題
在郵件列表祟印、新聞群組或論壇中肴沫,大約50字以內(nèi)的標題是抓住資深專家注意力的好機會粟害。別用喋喋不休的幫幫忙
蕴忆、跪求
、急
(更別說救命氨L锥臁U掘稹!卓鹿!
這樣讓人反感的話菱魔,用這種標題會被條件反射式地忽略)來浪費這個機會。不要妄想用你的痛苦程度來打動我們吟孙,而是在這點空間中使用極簡單扼要的描述方式來提出問題澜倦。
一個好標題範例是目標 -- 差異
式的描述,許多技術(shù)支持組織就是這樣做的杰妓。在目標
部分指出是哪一個或哪一組東西有問題藻治,在差異
部分則描述與期望的行為不一致的地方。
蠢問題:救命跋锘印桩卵!我的筆電不能正常顯示了!
聰明問題:X.org 6.8.1的滑鼠游標會變形倍宾,某牌顯示卡 MV1005 晶片組雏节。
更聰明問題:X.org 6.8.1的滑鼠游標,在某牌顯示卡 MV1005 晶片組環(huán)境下 - 會變形高职。
編寫目標 -- 差異
式描述的過程有助於你組織對問題的細緻思考钩乍。是什麼被影響了? 僅僅是滑鼠游標或者還有其它圖形怔锌?只在 X.org 的 X 版中出現(xiàn)件蚕?或只是出現(xiàn)在6.8.1版中? 是針對某牌顯示卡晶片組产禾?或者只是其中的 MV1005 型號排作? 一個黑客只需瞄一眼就能夠立即明白你的環(huán)境和你遇到的問題。
總而言之亚情,請想像一下你正在一個只顯示標題的封存討論串(Thread)索引中查尋妄痪。讓你的標題更好地反映問題,可使下一個搜尋類似問題的人能夠關(guān)注這個討論串楞件,而不用再次提問相同的問題衫生。
如果你想在回覆中提出問題,記得要修改內(nèi)容標題土浸,以表明你是在問一個問題罪针, 一個看起來像 Re: 測試
或者 Re: 新bug
的標題很難引起足夠重視。另外黄伊,在不影響連貫性之下泪酱,適當引用並刪減前文的內(nèi)容,能給新來的讀者留下線索。
對於討論串墓阀,不要直接點擊回覆來開始一個全新的討論串毡惜,這將限縮你的觀眾。因為有些郵件閱讀程序斯撮,比如 mutt 经伙,允許使用者按討論串排序並通過折疊討論串來隱藏消息,這樣做的人永遠看不到你發(fā)的消息勿锅。
僅僅改變標題還不夠帕膜。mutt 和其它一些郵件閱讀程式還會檢查郵件標題以外的其它信息,以便為其指定討論串溢十。所以寧可發(fā)一個全新的郵件泳叠。
在網(wǎng)頁論壇上,好的提問方式稍有不同茶宵,因為討論串與特定的訊息緊密結(jié)合危纫,並且通常在討論串外就看不到裡面的內(nèi)容,故通過回覆提問乌庶,而非改變標題是可接受的种蝶。不是所有論壇都允許在回覆中出現(xiàn)分離的標題,而且這樣做了基本上沒有人會去看瞒大。不過螃征,通過回覆提問,這本身就是曖昧的做法透敌,因為它們只會被正在查看該標題的人讀到盯滚。所以,除非你只想在該討論串當前活躍的人群中提問酗电,不然還是另起爐灶比較好魄藕。
使問題容易回覆
以請將你的回覆寄到……
來結(jié)束你的問題多半會使你得不到回答。如果你覺得花幾秒鐘在郵件客戶端設(shè)置一下回覆地址都麻煩撵术,我們也覺得花幾秒鐘思考你的問題更麻煩背率。如果你的郵件程式不支持這樣做,換個好點的嫩与;如果是作業(yè)系統(tǒng)不支持這種郵件程式寝姿,也換個好點的。
在論壇划滋,要求通過電子郵件回覆是非常無禮的饵筑,除非你相信回覆的信息可能比較敏感(而且有人會為了某些未知的原因,只讓你而不是整個論壇知道答案)处坪。如果你只是想在有人回覆討論串時得到電子郵件提醒根资,可以要求網(wǎng)頁論壇發(fā)送給你架专。幾乎所有論壇都支持諸如追蹤此討論串
、有回覆時發(fā)送郵件提醒
等功能嫂冻。
用清晰胶征、正確塞椎、精準並合法文法的語句
我們從經(jīng)驗中發(fā)現(xiàn)桨仿,粗心的提問者通常也會粗心的寫程式與思考(我敢打包票)“负荩回答粗心大意者的問題很不值得服傍,我們寧願把時間耗在別處。
正確的拼字骂铁、標點符號和大小寫是很重要的吹零。一般來說,如果你覺得這樣做很麻煩拉庵,不想在乎這些灿椅,那我們也覺得麻煩,不想在乎你的提問钞支∶S迹花點額外的精力斟酌一下字句,用不著太僵硬與正式 -- 事實上烁挟,黑客文化很看重能準確地使用非正式婴洼、俚語和幽默的語句。但它必須很準確撼嗓,而且有跡象表明你是在思考和關(guān)注問題柬采。
正確地拼寫、使用標點和大小寫且警,不要將its
混淆為it's
粉捻,loose
搞成lose
或者將discrete
弄成discreet
。不要全部用大寫斑芜,這會被視為無禮的大聲嚷嚷(全部小寫也好不到哪去杀迹,因為不易閱讀。Alan Cox也許可以這樣做押搪,但你不行树酪。)
更白話的說,如果你寫得像是個半文盲[譯註:小白])大州,那多半得不到理睬续语。也不要使用即時通訊中的簡寫或火星文,如將的
簡化為ㄉ
會使你看起來像一個為了少打幾個鍵而省字的小白厦画。更糟的是疮茄,如果像個小孩似地鬼畫符那絕對是在找死滥朱,可以肯定沒人會理你(或者最多是給你一大堆指責與挖苦)。
如果在使用非母語的論壇提問力试,你可以犯點拼寫和語法上的小錯徙邻,但決不能在思考上馬虎(沒錯,我們通常能弄清兩者的分別)畸裳。同時缰犁,除非你知道回覆者使用的語言,否則請使用英語書寫怖糊。繁忙的黑客一般會直接刪除用他們看不懂語言寫的消息帅容。在網(wǎng)路上英語是通用語言,用英語書寫可以將你的問題在尚未被閱讀就被直接刪除的可能性降到最低伍伤。
如果英文是你的第一外語(Second language)并徘,提示潛在回覆者你有潛在的語言困難是很好的:
[譯註:以下附上原文以供使用]
English is not my native language; please excuse typing errors.
- 英文不是我的母語,請原諒我的錯字或文法
If you speak $LANGUAGE, please email/PM me;
I may need assistance translating my question.
- 如果你說某語言扰魂,請寄信/私訊給我麦乞;我需要有人協(xié)助我翻譯我的問題
I am familiar with the technical terms,
but some slang expressions and idioms are difficult for me.
- 我對技術(shù)名詞很熟悉,但對於俗語或是特別用法比較不甚了解劝评。
I've posted my question in $LANGUAGE and English.
I'll be glad to translate responses, if you only use one or the other.
- 我把我的問題用某語言和英文寫出來姐直,如果你只用一種語言回答,我會樂意將其翻譯成另一種付翁。
使用易於讀取且標準的文件格式發(fā)送問題
如果你人為地將問題搞得難以閱讀简肴,它多半會被忽略,人們更願讀易懂的問題百侧,所以:
- 使用純文字而不是HTML (關(guān)閉HTML並不難)
- 使用MIME附件通常是可以的砰识,前提是真正有內(nèi)容(譬如附帶的原始碼或patch),而不僅僅是郵件程式生成的模板(譬如只是信件內(nèi)容的拷貝)佣渴。
- 不要發(fā)送一段文字只是單行句子但多次斷行的郵件(這使得回覆部分內(nèi)容非常困難)辫狼。設(shè)想你的讀者是在80個字符寬的終端機上閱讀郵件,最好設(shè)置你的斷行點小於80字辛润。
- 但是膨处,也不要用任何固定斷行資料(譬如日誌檔案拷貝或會話記錄)。檔案應(yīng)該原樣包含砂竖,讓回覆者有信心他們看到的是和你看到的一樣的東西真椿。
- 在英語論壇中,不要使用
Quoted-Printable
MIME編碼發(fā)送消息乎澄。這種編碼對於張貼非ASCII語言可能是必須的突硝,但很多郵件程式並不支援這種編碼。當它們分斷時置济,那些文本中四處散佈的=20
符號既難看也分散注意力解恰,甚至有可能破壞內(nèi)容的語意锋八。 - 絕對,永遠不要指望黑客們閱讀使用封閉格式編寫的文檔护盈,像是微軟公司的Word或Excel文件等挟纱。大多數(shù)黑客對此的反應(yīng)就像有人將還在冒熱氣的豬糞倒在你門口階梯上時你的反應(yīng)一樣。即便他們能夠處理腐宋,他們也很厭惡這麼做紊服。
- 如果你從使用Windows的電腦發(fā)送電子郵件,關(guān)閉微軟愚蠢的
智慧引號
功能 (從[選項] > [校訂] > [自動校正選項], 按掉智慧引號
核取方塊)脏款,以免在你的郵件中到處散佈垃圾字符围苫。 - 在論壇裤园,勿濫用
表情符號
和HTML
功能(當它們提供時)撤师。一兩個表情符號通常沒有問題,但花哨的彩色文本傾向於使人認為你是個無能之輩拧揽。過濫地使用表情符號、色彩和字體會使你看來像個傻笑的小姑娘。這通常不是個好主意域帐,除非你只是對性而不是有用的回覆更有興趣稚铣。
如果你使用圖形用戶界面的郵件程式(如微軟公司的Outlook或者其它類似的),注意它們的預設(shè)配置不一定滿足這些要求铡羡。大多數(shù)這類程式有基於選單的查看原始碼
命令积蔚,用它來檢查發(fā)送文件夾中的消息,以確保發(fā)送的是沒有多餘雜質(zhì)的純文本文件烦周。
精確的描述問題並言之有物
- 仔細尽爆、清楚地描述你的問題或臭蟲的癥狀。
- 描述問題發(fā)生的環(huán)境(機器配置读慎、作業(yè)系統(tǒng)漱贱、應(yīng)用程式、以及相關(guān)的資訊)夭委,提供經(jīng)銷商的發(fā)行版和版本號(如:
Fedora Core 4
幅狮、Slackware 9.1
等)。 - 描述在提問前你是怎樣去研究和理解這個問題的株灸。
- 描述在提問前為確定問題而採取的診斷步驟崇摄。
- 描述最近做過什麼可能相關(guān)的硬體或軟體變更。
- 盡可能的提供一個可以
重製這個問題的既定環(huán)境
的方法
儘量去揣測一個黑客會怎樣反問你慌烧,在他提問的時候預先給他答案逐抑。
以上幾點中,當你回報的是你認為可能在程式碼中的問題時杏死,給黑客一個可以重製你的問題的環(huán)境尤其重要泵肄。當你這麼做時捆交,你得到有效的回答的機會和速度都會大大的提升。
Simon Tatham寫過一篇名為《如何有效的回報Bug》的出色文章腐巢。強力推薦你也讀一讀品追。
話不在多而在精
你需要提供精確有內(nèi)容的資訊。這並不是要求你簡單的把成堆的出錯程式碼或者資料完全轉(zhuǎn)錄到你的提問中冯丙。如果你有龐大而複雜的測試樣例能重現(xiàn)程式當?shù)舻那榫橙馔撸瑑嵙繉⑺舨玫迷叫≡胶谩?/p>
這樣做的用處至少有三點。
第一胃惜,表現(xiàn)出你為簡化問題付出了努力泞莉,這可以使你得到回答的機會增加;
第二船殉,簡化問題使你更有可能得到有用的答案鲫趁;
第三,在精鍊你的bug報告的過程中利虫,你很可能就自己找到了解決方法或權(quán)宜之計挨厚。
別動輒聲稱找到Bug
當你在使用軟體中遇到問題,除非你非常糠惫、非常的有根據(jù)疫剃,不要動輒聲稱找到了Bug。提示:除非你能提供解決問題的原始碼補丁硼讽,或者對前一版本的回歸測試表現(xiàn)出不正確的行為巢价,否則你都多半不夠完全確信。這同樣適用在網(wǎng)頁和文件固阁,如果你(聲稱)發(fā)現(xiàn)了文件的Bug
壤躲,你應(yīng)該能提供相應(yīng)位置的修正或替代文件。
請記得您炉,還有許多其它使用者沒遇到你發(fā)現(xiàn)的問題柒爵,否則你在閱讀文件或搜尋網(wǎng)頁時就應(yīng)該發(fā)現(xiàn)了(你在抱怨前已經(jīng)做了這些,是吧赚爵?)棉胀。這也意味著很有可能是你弄錯了而不是軟體本身有問題。
編寫軟體的人總是非常辛苦地使它盡可能完美冀膝。如果你聲稱找到了Bug唁奢,也就是在質(zhì)疑他們的能力,即使你是對的窝剖,也有可能會冒犯到其中某部分人麻掸。這尤其嚴重當你在標題中嚷嚷著有Bug
。
提問時赐纱,即使你私下非常確信已經(jīng)發(fā)現(xiàn)一個真正的臭蟲脊奋,最好寫得像是你做錯了什麼熬北。如果真的有臭蟲,你會在回覆中看到這點诚隙。這樣做的話讶隐,如果真有臭蟲,維護者就會向你道歉久又,這總比你惹惱別人然後欠別人一個道歉要好一點巫延。
可以低聲下氣,但還是要先做功課
有些人明白他們不該粗魯或傲慢的提問並要求得到答覆地消,但他們選擇另一個極端 -- 低聲下氣:我知道我只是個可悲的新手炉峰,一個魯蛇,但...
脉执。這既使人困擾疼阔,也沒有用,尤其是伴隨著與實際問題含糊不清的描述時更令人反感适瓦。
別用原始靈長類動物的把戲來浪費你我的時間竿开。取而代之的是谱仪,盡可能清楚地描述背景條件和你的問題情況玻熙。這比低聲下氣更好地定位了你的位置。
有時網(wǎng)頁論壇會設(shè)有專為新手提問的版面疯攒,如果你真的認為遇到了初學者的問題嗦随,到那去就是了,但一樣別那麼低聲下氣敬尺。
描述問題癥狀而非猜測
告訴黑客們你認為問題是怎樣造成的並沒什麼幫助枚尼。(如果你的推斷如此有效,還用向別人求助嗎砂吞?)署恍,因此要確信你原原本本告訴了他們問題的癥狀,而不是你的解釋和理論蜻直;讓黑客們來推測和診斷盯质。如果你認為陳述自己的猜測很重要,清楚地說明這只是你的猜測概而,並描述為什麼它們不起作用呼巷。
蠢問題
我在編譯內(nèi)核時接連遇到 SIG11 錯誤,
我懷疑某條飛線搭在主板的走線上了赎瑰,這種情況應(yīng)該怎樣檢查最好王悍?
聰明問題
我的組裝電腦是 FIC-PA2007 主機板搭載 AMD K6/233 CPU(威盛 Apollo VP2晶片組),
256MB Corsair PC133 SDRAM記憶體餐曼,在編譯內(nèi)核時压储,從開機20分鐘以後就頻頻產(chǎn)生 SIG11 錯誤鲜漩,
但是在頭20分鐘內(nèi)從沒發(fā)生過相同的問題。重新啟動也沒有用集惋,但是關(guān)機一晚上就又能工作20分鐘宇整。
所有記憶體都換過了,沒有效果芋膘。相關(guān)部分的標準編譯記錄如下…鳞青。
由於以上這點似乎讓許多人覺得難以配合,這裡有句話可以提醒你:所有的診斷專家都來自密蘇里州为朋。
美國國務(wù)院的官方座右銘則是:讓我看看
(出自國會議員 Willard D. Vandiver 在1899年時的講話:我來自一個出產(chǎn)玉米臂拓,棉花,牛蒡和民主黨人的國家习寸,滔滔雄辯既不能說服我胶惰,也不會讓我滿意。我來自密蘇里州霞溪,你必須讓我看看孵滞。
) 針對診斷者而言,這並不是一種懷疑鸯匹,而只是一種真實而有用的需求坊饶,以便讓他們看到的是與你看到的原始證據(jù)盡可能一致的東西,而不是你的猜測與歸納的結(jié)論殴蓬。所以匿级,大方的展示給我們看吧!
按發(fā)生時間先後列出問題癥狀
問題發(fā)生前的一系列操作染厅,往往就是對找出問題最有幫助的線索痘绎。因此,你的說明裡應(yīng)該包含你的操作步驟肖粮,以及機器和軟體的反應(yīng)孤页,直到問題發(fā)生。在命令列處理的情況下涩馆,提供一段操作記錄(例如運行腳本工具所生成的)行施,並引用相關(guān)的若干行(如20行)記錄會非常有幫助。
如果當?shù)舻某淌接性\斷選項(如 -v 的詳述開關(guān))凌净,試著選擇這些能在記錄中增加除錯資訊的選項悲龟。記住,多
不等於好
冰寻。試著選取適當?shù)某e級別以便提供有用的信息而不是讓讀者淹沒在垃圾中须教。
如果你的說明很長(如超過四個段落),在開頭簡述問題,接下來再按時間順序詳述會有所幫助轻腺。這樣黑客們在讀你的記錄時就知道該注意哪些內(nèi)容了乐疆。
描述目標而不是過程
如果你想弄清楚如何做某事(而不是報告一個Bug),在開頭就描述你的目標贬养,然後才陳述重現(xiàn)你所卡住的特定步驟挤土。
經(jīng)常尋求技術(shù)幫助的人在心中有個更高層次的目標,而他們在自以為能達到目標的特定道路上被卡住了误算,然後跑來問該怎麼走仰美,但沒有意識到這條路本身就有問題。結(jié)果要費很大的勁才能搞定儿礼。
蠢問題
我怎樣才能從某繪圖程式的顏色選擇器中取得十六進制的的RGB值咖杂?
聰明問題
我正試著用替換一幅圖片的色碼成自己選定的色碼,我現(xiàn)在知道的唯一方法是編輯每個色碼區(qū)塊蚊夫,
但卻無法從某繪圖程式的顏色選擇器取得十六進制的的RGB值诉字。
第二種提問法比較聰明,你可能得到像是建議採用另一個更適任的工具
的回覆知纷。
別要求使用私人電郵回覆
黑客們認為問題的解決過程應(yīng)該公開壤圃、透明,此過程中如果更有經(jīng)驗的人注意到不完整或者不當之處琅轧,最初的回覆才能夠伍绳、也應(yīng)該被糾正。同時鹰晨,作為提供幫助者也能因為能力和學識被其它同行看到而得到某種獎勵墨叛。
當你要求私下回覆時,這個過程和獎勵都被中止模蜡。別這樣做,讓回覆者來決定是否私下回答 -- 如果他真這麼做了扁凛,通常是因為他認為問題編寫太差或者太膚淺忍疾,以至於對其它人沒有興趣。
這條規(guī)則存在一條有但書的例外谨朝,如果你確信提問可能會引來大量雷同的回覆時卤妒,那麼這個神奇的提問句會是向我發(fā)電郵,我將為論壇歸納這些回覆
字币。試著將郵件列表或新聞群組從洪水般的雷同回覆中解救出來是非常有禮貌的 -- 但你必須信守諾言则披。
清楚明確的表達你的問題以及需求
漫無邊際的提問近乎無休無止的時間黑洞。最有可能給你有用答案的人通常也正是最忙的人(他們忙是因為要親自完成大部分工作)洗出。這樣的人對無節(jié)制的時間黑洞相當厭惡士复,所以他們也傾向於厭惡那些漫無邊際的提問。
如果你明確表述需要回答者做什麼(如提供指點、發(fā)送一段程式碼阱洪、檢查你的補丁便贵、或是其他等等),就最有可能得到有用的答案冗荸。因為這會定出一個時間和精力的上限承璃,便於回答者能集中精力來幫你。這麼做很棒蚌本。
要理解專家們所處的世界盔粹,請把專業(yè)技能想像為充裕的資源,而回覆的時間則是稀缺的資源程癌。你要求他們奉獻的時間越少玻佩,你越有可能從真正專業(yè)而且很忙的專家那裡得到解答。
所以席楚,界定一下你的問題咬崔,使專家花在辨識你的問題和回答所需要付出的時間減到最少,這技巧對你有用答案相當有幫助 -- 但這技巧通常和簡化問題有所區(qū)別烦秩。因此垮斯,問我想更好的理解X,可否指點一下哪裡有好一點的說明只祠?
通常比問你能解釋一下X嗎兜蠕?
更好。如果你的程式碼不能運作抛寝,通常請別人看看哪裡有問題熊杨,比要求別人替你改正要明智得多。
詢問有關(guān)程式碼的問題時
別要求他人幫你有問題的代碼除錯而不提示一下應(yīng)該從何入手盗舰。張貼幾百行的代碼晶府,然後說一聲:它不會動
會讓你完全被忽略。只貼幾十行代碼钻趋,然後說一句:在第七行以後川陆,我期待它顯示 <x>,但實際出現(xiàn)的是 <y>
比較有可能讓你得到回應(yīng)蛮位。
最有效描述程式問題的方法是提供最精簡的臭蟲展示測試示例(bug-demonstrating test case)较沪。什麼是最精簡的測試示例? 那是問題的縮影;一小個程式片段能剛好展示出程式的異常行為失仁,而不包含其他令人分散注意力的內(nèi)容尸曼。怎麼製作最精簡的測試示例?如果你知道哪一行或哪一段程式碼會造成異常的行為萄焦,複製下來並加入足夠重現(xiàn)這個狀況的程式碼(例如控轿,足以讓這段程式碼能被編譯/直譯/被應(yīng)用程式處理)。如果你無法將問題縮減到一個特定區(qū)塊,就複製一份程式碼並移除不影響產(chǎn)生問題行為的部分解幽√總之,測試示例越小越好(查看話不在多而在精一節(jié))躲株。
一般而言片部,要得到一段相當精簡的測試示例並不太容易,但永遠先嘗試這樣做的是種好習慣霜定。這種方式可以幫助你了解如何自行解決這個問題 —- 而且即使你的嘗試不成功档悠,黑客們也會看到你在嘗試取得答案的過程中付出了努力,這可以讓他們更願意與你合作望浩。
如果你只是想讓別人幫忙審(Review)一下代碼辖所,在信的開頭就要說出來,並且一定要提到你認為哪一部分特別需要關(guān)注以及為什麼磨德。
別把自己家庭作業(yè)的問題貼上來
黑客們很擅長分辨哪些問題是家庭作業(yè)式的問題缘回;因為我們中的大多數(shù)都曾自己解決這類問題。同樣典挑,這些問題得由你來搞定酥宴,你會從中學到東西。你可以要求給點提示您觉,但別要求得到完整的解決方案拙寡。
如果你懷疑自己碰到了一個家庭作業(yè)式的問題,但仍然無法解決琳水,試試在使用者群組肆糕,論壇或(最後一招)在專案的使用者郵件列表或論壇中提問。儘管黑客們會看出來在孝,但一些有經(jīng)驗的使用者也許仍會給你一些提示诚啃。
去掉無意義的提問句
避免用無意義的話結(jié)束提問,例如有人能幫我嗎浑玛?
或者這有答案嗎绍申?
。
首先:如果你對問題的描述不是很好顾彰,這樣問更是畫蛇添足。
其次:由於這樣問是畫蛇添足胃碾,黑客們會很厭煩你 -- 而且通常會用邏輯上正確涨享,但毫無意義的回答來表示他們的蔑視, 例如:沒錯仆百,有人能幫你
或者不厕隧,沒答案
。
一般來說,避免用 是或否
吁讨、對或錯
髓迎、有或沒有
類型的問句,除非你想得到是或否類型的回答建丧。
即使你很急也不要在標題寫緊急
這是你的問題排龄,不是我們的。宣稱緊急
極有可能事與願違:大多數(shù)黑客會直接刪除無禮和自私地企圖即時引起關(guān)注的問題翎朱。更嚴重的是橄维,緊急
這個字(或是其他企圖引起關(guān)注的標題)通常會被垃圾信過濾器過濾掉 -- 你希望能看到你問題的人可能永遠也看不到。
有半個例外的情況是拴曲,如果你是在一些很高調(diào)争舞,會使黑客們興奮的地方,也許值得這樣去做澈灼。在這種情況下竞川,如果你有時間壓力,也很有禮貌地提到這點叁熔,人們也許會有興趣回答快一點委乌。
當然,這風險很大者疤,因為黑客們興奮的點多半與你的不同福澡。譬如從 NASA 國際空間站(International Space Station)發(fā)這樣的標題沒有問題,但用自我感覺良好的慈善行為或政治原因發(fā)肯定不行驹马。事實上革砸,張貼諸如緊急:幫我救救這個毛絨絨的小海豹!
肯定讓你被黑客忽略或惹惱他們糯累,即使他們認為毛絨絨的小海豹很重要算利。
如果你覺得這點很不可思議,最好再把這份指南剩下的內(nèi)容多讀幾遍泳姐,直到你弄懂了再發(fā)文效拭。
禮多人不怪,而且有時還很有幫助
彬彬有禮胖秒,多用請
和謝謝您的關(guān)注
缎患,或謝謝你的關(guān)照
。讓大家都知道你對他們花時間免費提供幫助心存感激阎肝。
坦白說挤渔,這一點並沒有比清晰、正確风题、精準並合法文法和避免使用專用格式重要(也不能取而代之)判导。黑客們一般寧可讀有點唐突但技術(shù)上鮮明的臭蟲報告嫉父,而不是那種有禮但含糊的報告。(如果這點讓你不解眼刃,記住我們是按問題能教我們什麼來評價問題的價值的)
然而绕辖,如果你有一串的問題待解決,客氣一點肯定會增加你得到有用回應(yīng)的機會擂红。
(我們注意到仪际,自從本指南發(fā)佈後,從資深黑客那裡得到的唯一嚴重缺陷反饋篮条,就是對預先道謝這一條弟头。一些黑客覺得先謝了
意味著事後就不用再感謝任何人的暗示。我們的建議是要麼先說先謝了
涉茧,然後事後再對回覆者表示感謝赴恨,或者換種方式表達感激,譬如用謝謝你的關(guān)注
或謝謝你的關(guān)照
伴栓。)
問題解決後伦连,加個簡短的補充說明
問題解決後,向所有幫助過你的人發(fā)個說明钳垮,讓他們知道問題是怎樣解決的惑淳,並再一次向他們表示感謝。如果問題在新聞組或者郵件列表中引起了廣泛關(guān)注饺窿,應(yīng)該在那裡貼一個說明比較恰當歧焦。
最理想的方式是向最初提問的話題回覆此消息,並在標題中包含已修正
肚医,已解決
或其它同等含義的明顯標記绢馍。在人來人往的郵件列表裡,一個看見討論串問題 X
和問題的X - 已解決
的潛在回覆者就明白不用再浪費時間了(除非他個人覺得問題 X
的有趣)肠套,因此可以利用此時間去解決其它問題舰涌。
補充說明不必很長或是很深入;簡單的一句你好你稚,原來是網(wǎng)路線出了問題瓷耙!謝謝大家 – Bill
比什麼也不說要來的好。事實上刁赖,除非結(jié)論真的很有技術(shù)含量搁痛,否則簡短可愛的小結(jié)比長篇大論更好。說明問題是怎樣解決的宇弛,但大可不必將解決問題的過程複述一遍落追。
對於有深度的問題,張貼除錯記錄的摘要是有幫助的涯肩。描述問題的最終狀態(tài)轿钠,說明是什麼解決了問題,在此之後才指明可以避免的盲點病苗。避免盲點的部分應(yīng)放在正確的解決方案和其它總結(jié)材料之後疗垛,而不要將此訊息搞成偵探推理小說。列出那些幫助過你的名字硫朦,會讓你交到更多朋友贷腕。
除了有禮貌和有內(nèi)涵以外,這種類型的補充也有助於他人在郵件列表/新聞群組/論壇中搜索到真正解決你問題的方案咬展,讓他們也從中受益泽裳。
至少,這種補充有助於讓每位參與協(xié)助的人因問題的解決而從中得到滿足感破婆。如果你自己不是技術(shù)專家或者黑客涮总,那就相信我們,這種感覺對於那些你向他們求助的大師或者專家而言祷舀,是非常重要的瀑梗。問題懸而未決會讓人灰心;黑客們渴望看到問題被解決裳扯。好人有好報抛丽,滿足他們的渴望,你會在下次提問時嘗到甜頭饰豺。
思考一下怎樣才能避免他人將來也遇到類似的問題亿鲜,自問寫一份文件或加個常見問題(FAQ)會不會有幫助。如果是的話就將它們發(fā)給維護者冤吨。
在黑客中蒿柳,這種良好的後繼行動實際上比傳統(tǒng)的禮節(jié)更為重要,也是你如何透過善待他人而贏得聲譽的方式锅很,這是非常有價值的資產(chǎn)其馏。
如何解讀答案
<a id="rtfm"></a>
RTFM和STFW:如何知道你已完全搞砸了
有一個古老而神聖的傳統(tǒng):如果你收到RTFM (Read The Fucking Manual)
的回應(yīng),回答者認為你應(yīng)該去讀那該死的手冊爆安。當然叛复,基本上他是對的,你應(yīng)該去讀一讀扔仓。
RTFM 有一個年輕的親戚褐奥。如果你收到STFW(Search The Fucking Web)
的回應(yīng),回答者認為你應(yīng)該到該死的網(wǎng)路上搜索過了翘簇。那人多半也是對的撬码,去搜尋一下吧。(更溫和一點的說法是 Google是你的朋友0姹!)
在論壇呜笑,你也可能被要求去爬爬論壇的舊文夫否。事實上,有人甚至可能熱心地為你提供以前解決此問題的討論串。但不要依賴這種關(guān)照,提問前應(yīng)該先搜索一下舊文责掏。
通常娃循,用這兩句之一回答你的人會給你一份包含你需要內(nèi)容的手冊或者一個網(wǎng)址,而且他們打這些字的時候也正在讀著。這些答覆意味著回答者認為
- 你需要的資訊非常容易獲得;
- 你自己去搜索這些資訊比灌給你能讓你學到更多。
你不應(yīng)該因此不爽豺型;依照黑客的標準,他已經(jīng)表示了對你一定程度的關(guān)注买乃,而沒有對你的要求視而不見姻氨。你應(yīng)該對他祖母般的慈祥表示感謝。
如果還是搞不懂
如果你看不懂回應(yīng)为牍,別立刻要求對方解釋哼绑。像你以前試著自己解決問題時那樣(利用手冊,F(xiàn)AQ碉咆,網(wǎng)路抖韩,身邊的高手),先試著去搞懂他的回應(yīng)疫铜。如果你真的需要對方解釋茂浮,記得表現(xiàn)出你已經(jīng)從中學到了點什麼。
比方說壳咕,如果我回答你:看來似乎是 zentry 卡住了席揽;你應(yīng)該先清除它。
谓厘,然後幌羞,這是一個很糟的後續(xù)問題回應(yīng):zentry是什麼?
好的問法應(yīng)該是這樣:哦~~~我看過說明了但是只有 -z 和 -p 兩個參數(shù)中提到了 zentries竟稳,而且還都沒有清楚的解釋如何清除它属桦。你是指這兩個中的哪一個嗎?還是我看漏了什麼他爸?
處理無禮的回應(yīng)
很多黑客圈子中看似無禮的行為並不是存心冒犯聂宾。相反,它是直接了當诊笤,一針見血式的交流風格系谐,這種風格更注重解決問題,而不是使人感覺舒服而卻模模糊糊讨跟。
如果你覺得被冒犯了纪他,試著平靜地反應(yīng)鄙煤。如果有人真的做了出格的事,郵件列表止喷、新聞群組或論壇中的前輩多半會招呼他馆类。如果這沒有發(fā)生而你卻發(fā)火了,那麼你發(fā)火對象的言語可能在黑客社區(qū)中看起來是正常的弹谁,而你將被視為有錯的一方,這將傷害到你獲取訊息或幫助的機會句喜。
另一方面预愤,你偶而真的會碰到無禮和無聊的言行。與上述相反咳胃,對真正的冒犯者狠狠地打擊植康,用犀利的語言將其駁得體無完膚都是可以接受的。然而展懈,在行事之前一定要非常非常的有根據(jù)销睁。糾正無禮的言論與開始一場毫無意義的口水戰(zhàn)僅一線之隔,黑客們自己莽撞地越線的情況並不鮮見存崖。如果你是新手或外人冻记,避開這種莽撞的機會並不高。如果你想得到的是信息而不是消磨時光来惧,這時最好不要把手放在鍵盤上以免冒險冗栗。
(有些人斷言很多黑客都有輕度的自閉癥或亞斯伯格綜合癥,缺少用於潤滑人類社會正常交往所需的神經(jīng)供搀。這既可能是真也可能是假的隅居。如果你自己不是黑客,興許你認為我們腦袋有問題還能幫助你應(yīng)付我們的古怪行為葛虐。只管這麼幹好了胎源,我們不在乎。我們喜歡我們現(xiàn)在這個樣子屿脐,並且通常對病患標記都有站得住腳的懷疑涕蚤。)
在下一節(jié),我們會談到另一個問題摄悯,當你行為不當時所會受到的冒犯
赞季。
如何避免扮演失敗者
在黑客社區(qū)的論壇中有那麼幾次你可能會搞砸 -- 以本指南所描述到的或類似的方式。而你會在公開場合中被告知你是如何搞砸的奢驯,也許攻擊的言語中還會帶點夾七夾八的顏色申钩。
這種事發(fā)生以後,你能做的最糟糕的事莫過於哀嚎你的遭遇瘪阁、宣稱被口頭攻擊撒遣、要求道歉邮偎、高聲尖叫、憋悶氣义黎、威脅訴諸法律禾进、向其雇主報怨、忘了關(guān)馬桶蓋等等廉涕。相反地泻云,你該這麼做:
熬過去,這很正常狐蜕。事實上宠纯,它是有益健康且合理的。
社區(qū)的標準不會自行維持层释,它們是通過參與者積極而公開地執(zhí)行來維持的婆瓜。不要哭嚎所有的批評都應(yīng)該通過私下的郵件傳送,它不是這樣運作的贡羔。當有人評論你的一個說法有誤或者提出不同看法時廉白,堅持聲稱受到個人攻擊也毫無益處,這些都是失敗者的態(tài)度乖寒。
也有其它的黑客論壇猴蹂,受過高禮節(jié)要求的誤導,禁止參與者張貼任何對別人帖子挑毛病的消息宵统,並聲稱如果你不想幫助用戶就閉嘴晕讲。
結(jié)果造成有想法的參與者紛紛離開,這麼做只會使它們淪為毫無意義的嘮叨與無用的技術(shù)論壇马澈。
誇張的講法是:你要的是友善(以上述方式)還是有用瓢省?兩個裡面挑一個。
記著:當黑客說你搞砸了痊班,並且(無論多麼刺耳)告訴你別再這樣做時勤婚,他正在為關(guān)心你和他的社群而行動。對他而言涤伐,不理你並將你從他的生活中濾掉更簡單馒胆。如果你無法做到感謝,至少要表現(xiàn)地有點尊嚴凝果,別大聲哀嚎祝迂,也別因為自己是個有戲劇性超級敏感的靈魂和自以為有資格的新來者,就指望別人像對待脆弱的洋娃娃那樣對你器净。
有時候型雳,即使你沒有搞砸(或者只是在他的想像中你搞砸了),有些人也會無緣無故地攻擊你本人。在這種情況下纠俭,抱怨倒是真的會把問題搞砸沿量。
這些來找麻煩的人要麼是毫無辦法但自以為是專家的不中用傢伙,要麼就是測試你是否真會搞砸的心理專家冤荆。其它讀者要麼不理睬朴则,要麼用自己的方式對付他們。這些來找麻煩的人在給他們自己找麻煩钓简,這點你不用操心乌妒。
也別讓自己捲入口水戰(zhàn),最好不要理睬大多數(shù)的口水戰(zhàn) -- 當然涌庭,是在你檢驗它們只是口水戰(zhàn)芥被,而並未指出你有搞砸的地方,且也沒有巧妙地將問題真正的答案藏於其後(這也是有可能的)坐榆。
不該問的問題
以下是幾個經(jīng)典蠢問題,以及黑客沒回答時心中所想的:
問題:我可以用 Bass-o-matic 文件轉(zhuǎn)換工具將 AcmeCorp 檔案轉(zhuǎn)換為 TeX 格式嗎夏漱?
問題:我的程式不會動了挂绰,我認為系統(tǒng)工具 X 有問題
問題:我在安裝 Linux(或者 X )時有問題屎篱,你能幫我嗎?
問題:我怎麼才能破解 root 帳號/竊取 OP 特權(quán)/讀別人的郵件呢葵蒂?
<a id="q1"></a>
問題:我能在哪找到 X 程式或 X 資源交播?
回答:就在我找到它的地方啊,白癡 -- 搜索引擎的那一頭践付。天哪秦士!難道還有人不會用 Google 嗎?
<a id="q2"></a>
問題:我怎樣用 X 做 Y永高?
回答:如果你想解決的是 Y 隧土,提問時別給出可能並不恰當?shù)姆椒ā_@種問題說明提問者不但對 X 完全無知命爬,也對 Y 要解決的問題糊塗曹傀,還被特定形勢禁錮了思維。最好忽略這種人饲宛,等他們把問題搞清楚了再說皆愉。
<a id="q3"></a>
問題:如何設(shè)定我的 shell 提示??
回答:如果你有足夠的智慧提這個問題亥啦,你也該有足夠的智慧去 RTFM炭剪,然後自己去找出來。
<a id="q4"></a>
問題:我可以用 Bass-o-matic 文件轉(zhuǎn)換工具將 AcmeCorp 檔案轉(zhuǎn)換為 TeX 格式嗎翔脱?
回答:試試看就知道了奴拦。如果你試過,你既知道了答案届吁,就不用浪費我的時間了错妖。
<a id="q5"></a>
問題:我的程式/設(shè)定/SQL語句沒有用
回答:這不算是問題吧,我對要我問你二十個問題才找得出你真正問題的問題沒興趣 -- 我有更有意思的事要做呢疚沐。在看到這類問題的時候暂氯,我的反應(yīng)通常不外如下三種
- 你還有什麼要補充的嗎?
- 真糟糕亮蛔,希望你能搞定痴施。
- 這關(guān)我有什麼屁事?
<a id="q6"></a>
問題:我的 Windows 電腦有問題究流,你能幫我嗎辣吃?
回答:能啊,扔掉萎軟的垃圾芬探,換個像 Linux 或 BSD 的開放原始碼作業(yè)系統(tǒng)吧神得。
注意:如果程式有官方版 Windows 或者與 Windows 有互動(如Samba),你可以問與Windows相關(guān)的問題偷仿, 只是別對問題是由 Windows 作業(yè)系統(tǒng)而不是程式本身造成的回覆感到驚訝哩簿, 因為 Windows 一般來說實在太爛,這種說法通常都是對的酝静。
<a id="q7"></a>
問題:我的程式不會動了节榜,我認為系統(tǒng)工具 X 有問題
回答:你完全有可能是第一個注意到被成千上萬用戶反覆使用的系統(tǒng)呼叫與函式庫檔案有明顯缺陷的人,更有可能的是你完全沒有根據(jù)形入。不同凡響的說法需要不同凡響的證據(jù)全跨,當你這樣聲稱時,你必須有清楚而詳盡的缺陷說明文件作後盾亿遂。
<a id="q8"></a>
問題:我在安裝 Linux(或者 X )時有問題浓若,你能幫我嗎?
回答:不能蛇数,我只有親自在你的電腦上動手才能找到毛病挪钓。還是去找你當?shù)氐?Linux 使用群組者尋求實際的指導吧(你能在這兒找到使用者群組的清單)。
注意:如果安裝問題與某 Linux 的發(fā)行版有關(guān)耳舅,在它的郵件列表碌上、論壇或本地使用者群組中提問也許是恰當?shù)囊衅馈4藭r,應(yīng)描述問題的準確細節(jié)馏予。在此之前天梧,先用 Linux
和所有被懷疑的硬體作關(guān)鍵詞仔細搜尋。
<a id="q9"></a>
問題:我怎麼才能破解 root 帳號/竊取 OP 特權(quán)/讀別人的郵件呢霞丧?
回答:想要這樣做呢岗,說明了你是個卑鄙小人;想找個黑客幫你蛹尝,說明你是個白癡后豫!
好問題與蠢問題
最後,我將透過舉一些例子突那,來說明怎樣聰明的提問挫酿;同一個問題的兩種問法被放在一起,一種是愚蠢的愕难,另一種才是明智的早龟。
蠢問題:
我可以在哪兒找到關(guān)於 Foonly Flurbamatic 的資料?
這種問法無非想得到 STFW 這樣的回答猫缭。
聰明問題:
我用Google搜索過 "Foonly Flurbamatic 2600"拄衰,但是沒找到有用的結(jié)果。誰知道上哪兒去找對這種設(shè)備編程的資料饵骨?
這個問題已經(jīng) STFW 過了,看起來他真的遇到了麻煩茫打。
蠢問題
我從 foo 項目找來的源碼沒法編譯居触。它怎麼這麼爛?
他覺得都是別人的錯老赤,這個傲慢自大的提問者
聰明問題
foo 專案代碼在 Nulix 6.2 版下無法編譯通過轮洋。我讀過了 FAQ,但裏面沒有提到跟 Nulix 有關(guān)的問題抬旺。這是我編譯過程的記錄弊予,我有什麼做的不對的地方嗎?
提問者已經(jīng)指明了環(huán)境开财,也讀過了FAQ汉柒,還列出了錯誤,並且他沒有把問題的責任推到別人頭上责鳍,他的問題值得被關(guān)注碾褂。
蠢問題
我的主機板有問題了,誰來幫我历葛?
某黑客對這類問題的回答通常是:好的正塌,還要幫你拍拍背和換尿布嗎?
,然後按下刪除鍵乓诽。
聰明問題
我在 S2464 主機板上試過了 X 帜羊、 Y 和 Z ,但沒什麼作用鸠天,我又試了 A 讼育、 B 和 C 。請注意當我嘗試 C 時的奇怪現(xiàn)象粮宛。顯然 florbish 正在 grommicking窥淆,但結(jié)果出人意料。通常在 Athlon MP 主機板上引起 grommicking 的原因是什麼巍杈?有誰知道接下來我該做些什麼測試才能找出問題忧饭?
這個傢伙,從另一個角度來看筷畦,值得去回答他词裤。他表現(xiàn)出了解決問題的能力,而不是坐等天上掉答案鳖宾。
在最後一個問題中吼砂,注意告訴我答案
和給我啟示,指出我還應(yīng)該做什麼診斷工作
之間微妙而又重要的區(qū)別鼎文。
事實上渔肩,後一個問題源自於 2001 年 8 月在 Linux 內(nèi)核郵件列表(lkml)上的一個真實的提問。我(Eric)就是那個提出問題的人拇惋。我在 Tyan S2464 主板上觀察到了這種無法解釋的鎖定現(xiàn)象周偎,列表成員們提供了解決這一問題的重要資訊。
通過我的提問方法撑帖,我給了別人可以咀嚼玩味的東西蓉坎;我設(shè)法讓人們很容易參與並且被吸引進來。我顯示了自己具備和他們同等的能力胡嘿,並邀請他們與我共同探討蛉艾。通過告訴他們我所走過的彎路,以避免他們再浪費時間衷敌,我也表明了對他們寶貴時間的尊重勿侯。
事後,當我向每個人表示感謝逢享,並且讚賞這次良好的討論經(jīng)歷的時候罐监, 一個 Linux 內(nèi)核郵件列表的成員表示,他覺得我的問題得到解決並非由於我是這個列表中的名人瞒爬,而是因為我用了正確的方式來提問弓柱。
黑客從某種角度來說是擁有豐富知識但缺乏人情味的傢伙沟堡;我相信他是對的,如果我像個乞討者那樣提問矢空,不論我是誰航罗,一定會惹惱某些人或者被他們忽視。他建議我記下這件事屁药,這直接導致了本指南的出現(xiàn)粥血。
如果得不到回答
如果仍得不到回答,請不要以為我們覺得無法幫助你酿箭。有時只是看到你問題的人不知道答案罷了复亏。沒有回應(yīng)不代表你被忽視,雖然不可否認這種差別很難區(qū)分缭嫡。
總的來說缔御,簡單的重複張貼問題是個很糟的點子。這將被視為無意義的喧鬧妇蛀。有點耐心耕突,知道你問題答案的人可能生活在不同的時區(qū),可能正在睡覺评架,也有可能你的問題一開始就沒有組織好眷茁。
你可以通過其他管道獲得幫助,這些管道通常更適合初學者的需要纵诞。
有許多網(wǎng)上的以及本地的使用者群組上祈,由熱情的軟體愛好者(即使他們可能從沒親自寫過任何軟體)組成。通常人們組建這樣的團體來互相幫助並幫助新手浙芙。
另外雇逞,你可以向很多商業(yè)公司尋求幫助,不論公司大還是小茁裙。別為要付費才能獲得幫助而感到沮喪!畢竟节仿,假使你的汽車發(fā)動機汽缸密封圈爆掉了-- 完全可能如此 --你還得把它送到修車鋪晤锥,並且為維修付費。就算軟體沒花費你一分錢廊宪,你也不能強求技術(shù)支援總是免費的矾瘾。
對像是 Linux 這種大眾化的軟體,每個開發(fā)者至少會對應(yīng)到上萬名使用者箭启。根本不可能由一個人來處理來自上萬名使用者的求助電話壕翩。要知道,即使你要為這些協(xié)助付費傅寡,和你所購買的同類軟體相比放妈,你所付出的也是微不足道的(通常封閉原始碼軟體的技術(shù)支援費用比開放原始碼軟體的要高得多北救,且內(nèi)容也沒那麼豐富)。
如何更好地回答問題
態(tài)度和善一點芜抒。問題帶來的壓力常使人顯得無禮或愚蠢珍策,其實並不是這樣。
對初犯者私下回覆宅倒。對那些坦誠犯錯之人沒有必要當眾羞辱攘宙,一個真正的新手也許連怎麼搜尋或在哪找常見問題都不知道。
如果你不確定拐迁,一定要說出來蹭劈!一個聽起來權(quán)威的錯誤回覆比沒有還要糟,別因為聽起來像個專家很好玩线召,就給別人亂指路铺韧。要謙虛和誠實,給提問者與同行都樹個好榜樣灶搜。
如果幫不了忙祟蚀,也別妨礙他。不要在實際步驟上開玩笑割卖,那樣也許會毀了使用者的配置 --有些可憐的呆瓜會把它當成真的指令前酿。
試探性的反問以引出更多的細節(jié)。如果你做得好鹏溯,提問者可以學到點東西 --你也可以罢维。試試將蠢問題轉(zhuǎn)變成好問題,別忘了我們都曾是新手丙挽。
儘管對那些懶蟲抱怨一聲 RTFM 是正當?shù)姆畏酰苤赋鑫募奈恢茫词怪皇墙ㄗh個 Google 搜尋關(guān)鍵詞)會更好。
如果你決定回答颜阐,就請給出好的答案平窘。當別人正在用錯誤的工具或方法時別建議笨拙的權(quán)宜之計(workaround),應(yīng)推薦更好的工具凳怨,重新界定問題瑰艘。
正面的回答問題!如果這個提問者已經(jīng)很深入的研究而且也表明已經(jīng)試過 X 肤舞、 Y 紫新、 Z 、 A 李剖、 B 芒率、 C 但沒得到結(jié)果,回答 試試看 A 或是 B
或者 試試X 篙顺、 Y 偶芍、 Z 充择、 A 、 B 腋寨、 C
並附上一個連結(jié)一點用都沒有聪铺。
幫助你的社群從問題中學習。當回覆一個好問題時萄窜,問問自己如何修改相關(guān)文件或常見問題文件以免再次解答同樣的問題铃剔?
,接著再向文件維護者發(fā)一份補丁查刻。
如果你是在研究一番後才做出的回答键兜,展現(xiàn)你的技巧而不是直接端出結(jié)果。畢竟給人吃魚不如教他釣魚
穗泵。
相關(guān)資源
如果你需要個人電腦普气、Unix 系統(tǒng)和網(wǎng)路如何運作的基礎(chǔ)知識,參閱Unix系統(tǒng)和網(wǎng)路基本原理佃延。
當你發(fā)布軟體或補丁時现诀,試著按軟體發(fā)布實踐操作。
鳴謝
Evelyn Mitchel貢獻了一些愚蠢問題例子並啟發(fā)了編寫如何更好地回答問題
這一節(jié)履肃, Mikhail Ramendik貢獻了一些特別有價值的建議和改進仔沿。