最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

提問的智慧

2022-06-29 20:58 作者:大仝tong和朋友們  | 我要投稿

https://www.yuque.com/u57395/xxmn09/lupdto

https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way

提問的智慧



How To Ask Questions The Smart Way

Copyright ? 2001,2006,2014 Eric S. Raymond, Rick Moen

本指南英文版版權為 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ā)生時間先后列出問題癥狀
描述目標而不是過程
別要求使用私人電郵回復
清楚明確的表達你的問題以及需求
詢問有關代碼的問題時
別把自己家庭作業(yè)的問題貼上來
去掉無意義的提問句
即使你很急也不要在標題寫緊急
禮多人不怪,而且有時還很有幫助
問題解決后,加個簡短的補充說明
如何解讀答案
RTFM 和 STFW:如何知道你已完全搞砸了
如果還是搞不懂
處理無禮的回應
如何避免扮演失敗者
不該問的問題
好問題與蠢問題
如果得不到回答
如何更好地回答問題
相關資源
鳴謝

聲明

許多項目在他們的使用協(xié)助/說明網(wǎng)頁中鏈接了本指南,這么做很好,我們也鼓勵大家都這么做。但如果你是負責管理這個項目網(wǎng)頁的人,請在超鏈接附近的顯著位置上注明:

本指南不提供此項目的實際支持服務!

我們已經(jīng)深刻領教到少了上述聲明所帶來的痛苦。因為少了這點聲明,我們不停地被一些白癡糾纏。這些白癡認為既然我們發(fā)布了這本指南,那么我們就有責任解決世上所有的技術問題。

如果你因尋求某些幫助而閱讀本指南,并在離開時還覺得可以從本文作者這里得到直接幫助,那你就是我們之前說的那些白癡之一。別問我們問題,我們只會忽略你。我們在這本指南中想教你如何從那些真正懂得你所遇到的軟件或硬件問題的人處取得協(xié)助,而 99% 的情況下那不會是我們。除非你確定本指南的作者之一剛好是你所遇到的問題領域的專家,否則請不要打擾我們,這樣大家都會開心一點。

簡介

在黑客的世界里,當你拋出一個技術問題時,最終是否能得到有用的回答,往往取決于你所提問和追問的方式。本指南將教你如何正確的提問以獲得你滿意的答案。

現(xiàn)在開源(Open Source)軟件已經(jīng)相當盛行,您通常可以從其他更有經(jīng)驗的用戶那里獲得與黑客一樣好的答案,這是件好事;和黑客相比,用戶們往往對那些新手常遇到的問題更寬容一些。盡管如此,以我們在此推薦的方式對待這些有經(jīng)驗的用戶通常也是從他們那里獲得有用答案的最有效方式。

首先你應該明白,黑客們喜愛有挑戰(zhàn)性的問題,或者能激發(fā)他們思維的好問題。如果我們并非如此,那我們也不會成為你想詢問的對象。如果你給了我們一個值得反復咀嚼玩味的好問題,我們自會對你感激不盡。好問題是激勵,是厚禮。好問題可以提高我們的理解力,而且通常會暴露我們以前從沒意識到或者思考過的問題。對黑客而言,“好問題!”是誠摯的大力稱贊。

盡管如此,黑客們有著蔑視或傲慢面對簡單問題的壞名聲,這有時讓我們看起來對新手、無知者似乎較有敵意,但其實不是那樣的。

我們不諱言我們對那些不愿思考、或者在發(fā)問前不做他們該做的事的人的蔑視。那些人是時間殺手 —— 他們只想索取,從不付出,消耗我們可用在更有趣的問題或更值得回答的人身上的時間。我們稱這樣的人為失敗者(擼瑟)(由于歷史原因,我們有時把它拼作lusers)。

我們意識到許多人只是想使用我們寫的軟件,他們對學習技術細節(jié)沒有興趣。對大多數(shù)人而言,電腦只是種工具,是種達到目的的手段而已。他們有自己的生活并且有更要緊的事要做。我們了解這點,也從不指望每個人都對這些讓我們著迷的技術問題感興趣。盡管如此,我們回答問題的風格是指向那些真正對此有興趣并愿意主動參與解決問題的人,這一點不會變,也不該變。如果連這都變了,我們就是在降低做自己最擅長的事情上的效率。

我們(在很大程度上)是自愿的,從繁忙的生活中抽出時間來解答疑惑,而且時常被提問淹沒。所以我們無情地濾掉一些話題,特別是拋棄那些看起來像失敗者的家伙,以便更高效地利用時間來回答贏家(winner)的問題。

如果你厭惡我們的態(tài)度,高高在上,或過于傲慢,不妨也設身處地想想。我們并沒有要求你向我們屈服 —— 事實上,我們大多數(shù)人非常樂意與你平等地交流,只要你付出小小努力來滿足基本要求,我們就會歡迎你加入我們的文化。但讓我們幫助那些不愿意幫助自己的人是沒有效率的。無知沒有關系,但裝白癡就是不行。

所以,你不必在技術上很在行才能吸引我們的注意,但你必須表現(xiàn)出能引導你變得在行的特質 —— 機敏、有想法、善于觀察、樂于主動參與解決問題。如果你做不到這些使你與眾不同的事情,我們建議你花點錢找家商業(yè)公司簽個技術支持服務合同,而不是要求黑客個人無償?shù)貛椭恪?span id="s0sssss00s" class="ne-viewer-b-filler">

如果你決定向我們求助,當然你也不希望被視為失敗者,更不愿成為失敗者中的一員。能立刻得到快速并有效答案的最好方法,就是像贏家那樣提問 —— 聰明、自信、有解決問題的思路,只是偶爾在特定的問題上需要獲得一點幫助。

(歡迎對本指南提出改進意見。你可以把你的建議發(fā)送至esr@thyrsus.com或respond-auto@linuxmafia.com。然而請注意,本文并非網(wǎng)絡禮節(jié)的通用指南,而我們通常會拒絕無助于在技術論壇得到有用答案的建議)。

在提問之前

在你準備要通過電子郵件、新聞群組或者聊天室提出技術問題前,請先做到以下事情:

1嘗試在你準備提問的論壇的舊文章中搜索答案。
2嘗試上網(wǎng)搜索以找到答案。
3嘗試閱讀手冊以找到答案。
4嘗試閱讀常見問題文件(FAQ)以找到答案。
5嘗試自己檢查或試驗以找到答案。
6向你身邊的強者朋友打聽以找到答案。
7如果你是程序開發(fā)者,請嘗試閱讀源代碼以找到答案。

當你提出問題的時候,請先表明你已經(jīng)做了上述的努力;這將有助于樹立你并不是一個不勞而獲且浪費別人的時間的提問者。如果你能一并表達在做了上述努力的過程中所學到的東西會更好,因為我們更樂于回答那些表現(xiàn)出能從答案中學習的人的問題。

運用某些策略,比如先用 Google 搜索你所遇到的各種錯誤信息(搜索Google 論壇和網(wǎng)頁),這樣很可能直接就找到了能解決問題的文件或郵件列表線索。即使沒有結果,在郵件列表或新聞組尋求幫助時加上一句我在 Google 中搜過下列句子但沒有找到什么有用的東西也是件好事,即使它只是表明了搜索引擎不能提供哪些幫助。這么做(加上搜索過的字串)也讓遇到相似問題的其他人能被搜索引擎引導到你的提問來。

別著急,不要指望幾秒鐘的 Google 搜索就能解決一個復雜的問題。在向專家求助之前,再閱讀一下常見問題文件(FAQ)、放輕松、坐得舒服一些,再花點時間思考一下這個問題。相信我們,他們能從你的提問看出你做了多少閱讀與思考,如果你是有備而來,將更有可能得到解答。不要將所有問題一股腦拋出,只因你的第一次搜索沒有找到答案(或者找到太多答案)。

準備好你的問題,再將問題仔細的思考過一遍,因為草率的發(fā)問只能得到草率的回答,或者根本得不到任何答案。越是能表現(xiàn)出在尋求幫助前你為解決問題所付出的努力,你越有可能得到實質性的幫助。

小心別問錯了問題。如果你的問題基于錯誤的假設,某個普通黑客(J. Random Hacker)多半會一邊在心里想著蠢問題…,一邊用無意義的字面解釋來答復你,希望著你會從問題的回答(而非你想得到的答案)中汲取教訓。

絕不要自以為夠格得到答案,你沒有;你并沒有。畢竟你沒有為這種服務支付任何報酬。你將會是自己去掙到一個答案,靠提出有內(nèi)涵的、有趣的、有思維激勵作用的問題 —— 一個有潛力能貢獻社區(qū)經(jīng)驗的問題,而不僅僅是被動的從他人處索取知識。

另一方面,表明你愿意在找答案的過程中做點什么是一個非常好的開端。誰能給點提示?、我的這個例子里缺了什么?以及我應該檢查什么地方比請把我需要的確切的過程貼出來更容易得到答復。因為你表現(xiàn)出只要有人能指個正確方向,你就有完成它的能力和決心。

當你提問時

慎選提問的論壇

小心選擇你要提問的場合。如果你做了下述的事情,你很可能被忽略掉或者被看作失敗者:

在與主題不合的論壇上貼出你的問題。
在探討進階技術問題的論壇張貼非常初級的問題;反之亦然。
在太多的不同新聞群組上重復轉貼同樣的問題(cross-post)。
向既非熟人也沒有義務解決你問題的人發(fā)送私人電郵。

黑客會剔除掉那些搞錯場合的問題,以保護他們溝通的渠道不被無關的東西淹沒。你不會想讓這種事發(fā)生在自己身上的。

因此,第一步是找到對的論壇。再說一次,Google 和其它搜索引擎還是你的朋友,用它們來找到與你遭遇到困難的軟硬件問題最相關的網(wǎng)站。通常那兒都有常見問題(FAQ)、郵件列表及相關說明文件的鏈接。如果你的努力(包括閱讀FAQ)都沒有結果,網(wǎng)站上也許還有報告 Bug(Bug-reporting)的流程或鏈接,如果是這樣,鏈過去看看。

向陌生的人或論壇發(fā)送郵件最可能是風險最大的事情。舉例來說,別假設一個提供豐富內(nèi)容的網(wǎng)頁的作者會想充當你的免費顧問。不要對你的問題是否會受到歡迎做太樂觀的估計 —— 如果你不確定,那就向別處發(fā)送,或者壓根別發(fā)。

在選擇論壇、新聞群組或郵件列表時,別太相信它的名字,先看看 FAQ 或者許可書以弄清楚你的問題是否切題。發(fā)文前先翻翻已有的話題,這樣可以讓你感受一下那里的文化。事實上,事先在新聞組或郵件列表的歷史記錄中搜索與你問題相關的關鍵詞是個極好的主意,也許這樣就找到答案了。即使沒有,也能幫助你歸納出更好的問題。

別像機關槍似的一次“掃射”所有的幫助渠道,這就像大喊大叫一樣會使人不快。要一個一個地來。

搞清楚你的主題!最典型的錯誤之一是在某種致力于跨平臺可移植的語言、套件或工具的論壇中提關于 Unix 或 Windows 操作系統(tǒng)程序界面的問題。如果你不明白為什么這是大錯,最好在搞清楚這之間差異之前什么也別問。

一般來說,在仔細挑選的公共論壇中提問,會比在私有論壇中提同樣的問題更容易得到有用的回答。有幾個理由可以支持這點,一是看潛在的回復者有多少,二是看觀眾有多少。黑客較愿意回答那些能幫助到許多人的問題。

可以理解的是,老練的黑客和一些熱門軟件的作者正在接受過多的錯發(fā)信息。就像那根最后壓垮駱駝背的稻草一樣,你的加入也有可能使情況走向極端 —— 已經(jīng)好幾次了,一些熱門軟件的作者由于涌入其私人郵箱的大量不堪忍受的無用郵件而不再提供支持。

Stack Overflow

搜索,然后在 Stack Exchange 問。

近年來,Stack Exchange 社區(qū)已經(jīng)成為回答技術及其他問題的主要渠道,尤其是那些開放源碼的項目。

因為 Google 索引是即時的,在看 Stack Exchange 之前先在 Google 搜索。有很高的幾率某人已經(jīng)問了一個類似的問題,而且 Stack Exchange 網(wǎng)站們往往會是搜索結果中最前面幾個。如果你在 Google 上沒有找到任何答案,你再到特定相關主題的網(wǎng)站去找。用標簽(Tag)搜索能讓你更縮小你的搜索結果。

如果你還是找不到任何對你的問題有用的內(nèi)容,請把你的問題發(fā)在與它最相關的網(wǎng)站上。提問的時候請善用善用格式化工具,尤其注意為代碼添加格式,并且添加相關的標簽(特別是編程語言、操作系統(tǒng)或庫/包的名稱)。當有人要求你提供更多相關信息時,請編輯你的貼子來補充它們[譯注:而不是發(fā)一個回帖或回答!]。如果你覺得一個答案對你有幫助,點擊向上的箭頭來為它投票;如果一個答案提供了問題的正確解決方案,點擊投票按鈕下方的對勾來將它標記為正解。

Stack Exchange 已經(jīng)成長到超過一百個網(wǎng)站,以下是最常用的幾個站:

Super User 是問一些通用的電腦問題,如果你的問題跟代碼或是寫程序無關,只是一些網(wǎng)絡連線之類的,請到這里。
Stack Overflow 是問寫程序有關的問題。
Server Fault 是問服務器和網(wǎng)管相關的問題。

網(wǎng)站和 IRC 論壇

本地的用戶群組(user group),或者你所用的 Linux 發(fā)行版本也許正在宣傳他們的網(wǎng)頁論壇或 IRC 頻道,并提供新手幫助(在一些非英語國家,新手論壇很可能還是郵件列表),這些都是開始提問的好地方,特別是當你覺得遇到的也許只是相對簡單或者很普通的問題時。有廣告贊助的 IRC 頻道是公開歡迎提問的地方,通??梢约磿r得到回應。

事實上,如果程序出的問題只發(fā)生在特定 Linux 發(fā)行版提供的版本(這很常見),最好先去該發(fā)行版的論壇或郵件列表中提問,再到程序本身的論壇或郵件列表提問。(否則)該項目的黑客可能僅僅回復“使用我們的版本”。

在任何論壇發(fā)文以前,先確認一下有沒有搜索功能。如果有,就試著搜索一下問題的幾個關鍵詞,也許這會有幫助。如果在此之前你已做過通用的網(wǎng)頁搜索(你也該這樣做),還是再搜索一下論壇,搜索引擎有可能沒來得及索引此論壇的全部內(nèi)容。

通過論壇或 IRC 頻道來提供用戶支持服務有增長的趨勢,電子郵件則大多為項目開發(fā)者間的交流而保留。所以最好先在論壇或 IRC 中尋求與該項目相關的協(xié)助。

在使用 IRC 的時候,首先最好不要發(fā)布很長的問題描述,有些人稱之為頻道洪水。最好通過一句話的問題描述來開始聊天。

第二步,使用項目郵件列表

當某個項目提供開發(fā)者郵件列表時,要向列表而不是其中的個別成員提問,即使你確信他能最好地回答你的問題。查一查項目的文件和首頁,找到項目的郵件列表并使用它。有幾個很好的理由支持我們采用這種辦法:

任何好到需要向個別開發(fā)者提出的問題,也將對整個項目群組有益。反之,如果你認為自己的問題對整個項目群組來說太愚蠢,那這也不能成為騷擾個別開發(fā)者的理由。
向列表提問可以分散開發(fā)者的負擔,個別開發(fā)者(尤其是項目領導人)也許太忙以至于沒法回答你的問題。
大多數(shù)郵件列表都會被存檔,那些被存檔的內(nèi)容將被搜索引擎索引。如果你向列表提問并得到解答,將來其他人可以通過網(wǎng)頁搜索找到你的問題和答案,也就不用再次發(fā)問了。
如果某些問題經(jīng)常被問到,開發(fā)者可以利用此信息來改進說明文件或軟件本身,以使其更清楚。如果只是私下提問,就沒有人能看到最常見問題的完整場景。

如果一個項目既有“用戶”也有“開發(fā)者”(或“黑客”)郵件列表或論壇,而你又不會動到那些源代碼,那么就向“用戶”列表或論壇提問。不要假設自己會在開發(fā)者列表中受到歡迎,那些人多半會將你的提問視為干擾他們開發(fā)的噪音。

然而,如果你確信你的問題很特別,而且在“用戶”列表或論壇中幾天都沒有回復,可以試試前往“開發(fā)者”列表或論壇發(fā)問。建議你在張貼前最好先暗地里觀察幾天以了解那里的行事方式(事實上這是參與任何私有或半私有列表的好主意)

如果你找不到一個項目的郵件列表,而只能查到項目維護者的電子郵件地址,盡管向他發(fā)信。即使是在這種情況下,也別假設(項目)郵件列表不存在。在你的電子郵件中,請陳述你已經(jīng)試過但沒有找到合適的郵件列表,也提及你不反對將自己的郵件轉發(fā)給他人(許多人認為,即使沒什么秘密,私人電子郵件也不應該被公開。通過允許將你的電子郵件轉發(fā)他人,你給了相應人員處置你郵件的選擇)。

使用有意義且描述明確的標題

在郵件列表、新聞群組或論壇中,大約 50 字以內(nèi)的標題是抓住資深專家注意力的好機會。別用喋喋不休的幫幫忙、跪求、急(更別說救命啊?。。。∵@樣讓人反感的話,用這種標題會被條件反射式地忽略)來浪費這個機會。不要妄想用你的痛苦程度來打動我們,而應該是在這點空間中使用極簡單扼要的描述方式來提出問題。

一個好標題范例是目標 —— 差異式的描述,許多技術支持組織就是這樣做的。在目標部分指出是哪一個或哪一組東西有問題,在差異部分則描述與期望的行為不一致的地方。

蠢問題:救命?。∥业墓P記本電腦不能正常顯示了!

聰明問題: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)索引中查尋。讓你的標題更好地反映問題,可使下一個搜索類似問題的人能夠關注這個討論串,而不用再次提問相同的問題。

如果你想在回復中提出問題,記得要修改內(nèi)容標題,以表明你是在問一個問題, 一個看起來像Re: 測試或者Re: 新 bug的標題很難引起足夠重視。另外,在不影響連貫性之下,適當引用并刪減前文的內(nèi)容,能給新來的讀者留下線索。

對于討論串,不要直接點擊回復來開始一個全新的討論串,這將限制你的觀眾。因為有些郵件閱讀程序,比如 mutt ,允許用戶按討論串排序并通過折疊討論串來隱藏消息,這樣做的人永遠看不到你發(fā)的消息。

僅僅改變標題還不夠。mutt 和其它一些郵件閱讀程序還會檢查郵件標題以外的其它信息,以便為其指定討論串。所以寧可發(fā)一個全新的郵件。

在網(wǎng)頁論壇上,好的提問方式稍有不同,因為討論串與特定的信息緊密結合,并且通常在討論串外就看不到里面的內(nèi)容,故通過回復提問,而非改變標題是可接受的。不是所有論壇都允許在回復中出現(xiàn)分離的標題,而且這樣做了基本上沒有人會去看。不過,通過回復提問,這本身就是曖昧的做法,因為它們只會被正在查看該標題的人讀到。所以,除非你只想在該討論串當前活躍的人群中提問,不然還是另起爐灶比較好。

使問題容易回復

以請將你的回復發(fā)送到……來結束你的問題多半會使你得不到回答。如果你覺得花幾秒鐘在郵件客戶端設置一下回復地址都麻煩,我們也覺得花幾秒鐘思考你的問題更麻煩。如果你的郵件程序不支持這樣做,換個好點的;如果是操作系統(tǒng)不支持這種郵件程序,也換個好點的。

在論壇,要求通過電子郵件回復是非常無禮的,除非你認為回復的信息可能比較敏感(有人會為了某些未知的原因,只讓你而不是整個論壇知道答案)。如果你只是想在有人回復討論串時得到電子郵件提醒,可以要求網(wǎng)頁論壇發(fā)送給你。幾乎所有論壇都支持諸如追蹤此討論串、有回復時發(fā)送郵件提醒等功能。

使用清晰、正確、精準且合乎語法的語句

我們從經(jīng)驗中發(fā)現(xiàn),粗心的提問者通常也會粗心地寫程序與思考(我敢打包票)?;卮鸫中拇笠庹叩膯栴}很不值得,我們寧愿把時間耗在別處。

正確的拼寫、標點符號和大小寫是很重要的。一般來說,如果你覺得這樣做很麻煩,不想在乎這些,那我們也覺得麻煩,不想在乎你的提問。花點額外的精力斟酌一下字句,用不著太僵硬與正式 —— 事實上,黑客文化很看重能準確地使用非正式、俚語和幽默的語句。但它必須很準確,而且有跡象表明你是在思考和關注問題。

正確地拼寫、使用標點和大小寫,不要將its混淆為it's,loose搞成lose或者將discrete弄成discreet。不要全部用大寫,這會被視為無禮的大聲嚷嚷(全部小寫也好不到哪去,因為不易閱讀。Alan Cox也許可以這樣做,但你不行)。

更白話的說,如果你寫得像是個半文盲[譯注:小白],那多半得不到理睬。也不要使用即時通信中的簡寫或火星文,如將的簡化為d會使你看起來像一個為了少打幾個鍵而省字的小白。更糟的是,如果像個小孩似地鬼畫符那絕對是在找死,可以肯定沒人會理你(或者最多是給你一大堆指責與挖苦)。

如果在使用非母語的論壇提問,你可以犯點拼寫和語法上的小錯,但決不能在思考上馬虎(沒錯,我們通常能弄清兩者的分別)。同時,除非你知道回復者使用的語言,否則請使用英語書寫。繁忙的黑客一般會直接刪除用他們看不懂的語言寫的消息。在網(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.

如果你說某語言,請向我發(fā)電郵/私信;
我需要有人協(xié)助我翻譯我的問題。

I am familiar with the technical terms,but some slang expressions and idioms are difficult for me.

我對技術名詞很熟悉,但對于俗語或是特別用法不甚了解。

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 (關閉 HTML并不難)。
使用 MIME 附件通常是可以的,前提是真正有內(nèi)容(譬如附帶的源代碼或 patch),而不僅僅是郵件程序生成的模板(譬如只是信件內(nèi)容的拷貝)。
不要發(fā)送一段文字只是一行句子但自動換行后會變成多行的郵件(這使得回復部分內(nèi)容非常困難)。設想你的讀者是在 80 個字符寬的終端機上閱讀郵件,最好設置你的換行分割點小于 80 字。
但是,對一些特殊的文件不要設置固定寬度(譬如日志文件拷貝或會話記錄)。數(shù)據(jù)應該原樣包含,讓回復者有信心他們看到的是和你看到的一樣的東西。
在英語論壇中,不要使用Quoted-PrintableMIME 編碼發(fā)送消息。這種編碼對于張貼非 ASCII 語言可能是必須的,但很多郵件程序并不支持這種編碼。當它們處理換行時,那些文本中四處散布的=20符號既難看也分散注意力,甚至有可能破壞內(nèi)容的語意。
絕對,永遠不要指望黑客們閱讀使用封閉格式編寫的文檔,像微軟公司的 Word 或 Excel 文件等。大多數(shù)黑客對此的反應就像有人將還在冒熱氣的豬糞倒在你家門口時你的反應一樣。即便他們能夠處理,他們也很厭惡這么做。
如果你從使用 Windows 的電腦發(fā)送電子郵件,關閉微軟愚蠢的智能引號功能 (從[選項] > [校訂] > [自動校正選項],勾選掉智能引號單選框),以免在你的郵件中到處散布垃圾字符。
在論壇,勿濫用表情符號和HTML功能(當它們提供時)。一兩個表情符號通常沒有問題,但花哨的彩色文本傾向于使人認為你是個無能之輩。過濫地使用表情符號、色彩和字體會使你看來像個傻笑的小姑娘。這通常不是個好主意,除非你只是對性而不是對答案感興趣。

如果你使用圖形用戶界面的郵件程序(如微軟公司的 Outlook 或者其它類似的),注意它們的默認設置不一定滿足這些要求。大多數(shù)這類程序有基于選單的查看源代碼命令,用它來檢查發(fā)送文件夾中的郵件,以確保發(fā)送的是純文本文件同時沒有一些奇怪的字符。

精確地描述問題并言之有物

仔細、清楚地描述你的問題或 Bug 的癥狀。
描述問題發(fā)生的環(huán)境(機器配置、操作系統(tǒng)、應用程序、以及相關的信息),提供經(jīng)銷商的發(fā)行版和版本號(如:Fedora Core 4、Slackware 9.1等)。
描述在提問前你是怎樣去研究和理解這個問題的。
描述在提問前為確定問題而采取的診斷步驟。
描述最近做過什么可能相關的硬件或軟件變更。
盡可能地提供一個可以重現(xiàn)這個問題的可控環(huán)境的方法。

盡量去揣測一個黑客會怎樣反問你,在你提問之前預先將黑客們可能提出的問題回答一遍。

以上幾點中,當你報告的是你認為可能在代碼中的問題時,給黑客一個可以重現(xiàn)你的問題的環(huán)境尤其重要。當你這么做時,你得到有效的回答的機會和速度都會大大的提升。

Simon Tatham寫過一篇名為《如何有效的報告 Bug》的出色文章。強力推薦你也讀一讀。

話不在多而在精

你需要提供精確有內(nèi)容的信息。這并不是要求你簡單的把成堆的出錯代碼或者資料完全轉錄到你的提問中。如果你有龐大而復雜的測試樣例能重現(xiàn)程序掛掉的情境,盡量將它剪裁得越小越好。

這樣做的用處至少有三點。第一,表現(xiàn)出你為簡化問題付出了努力,這可以使你得到回答的機會增加;第二,簡化問題使你更有可能得到有用的答案;第三,在精煉你的 bug 報告的過程中,你很可能就自己找到了解決方法或權宜之計。

別動輒聲稱找到 Bug

當你在使用軟件中遇到問題,除非你非常、非常的有根據(jù),不要動輒聲稱找到了 Bug。提示:除非你能提供解決問題的源代碼補丁,或者提供回歸測試來表明前一版本中行為不正確,否則你都多半不夠完全確信。這同樣適用在網(wǎng)頁和文件,如果你(聲稱)發(fā)現(xiàn)了文件的Bug,你應該能提供相應位置的修正或替代文件。

請記得,還有其他許多用戶沒遇到你發(fā)現(xiàn)的問題,否則你在閱讀文件或搜索網(wǎng)頁時就應該發(fā)現(xiàn)了(你在抱怨前已經(jīng)做了這些,是吧?)。這也意味著很有可能是你弄錯了而不是軟件本身有問題。

編寫軟件的人總是非常辛苦地使它盡可能完美。如果你聲稱找到了 Bug,也就是在質疑他們的能力,即使你是對的,也有可能會冒犯到其中某部分人。當你在標題中嚷嚷著有Bug時,這尤其嚴重。

提問時,即使你私下非常確信已經(jīng)發(fā)現(xiàn)一個真正的 Bug,最好寫得像是你做錯了什么。如果真的有 Bug,你會在回復中看到這點。這樣做的話,如果真有 Bug,維護者就會向你道歉,這總比你惹惱別人然后欠別人一個道歉要好一點。

低聲下氣不能代替你的功課

有些人明白他們不該粗魯或傲慢的提問并要求得到答復,但他們選擇另一個極端 —— 低聲下氣:我知道我只是個可悲的新手,一個擼瑟,但...。這既使人困擾,也沒有用,尤其是伴隨著與實際問題含糊不清的描述時更令人反感。

別用原始靈長類動物的把戲來浪費你我的時間。取而代之的是,盡可能清楚地描述背景條件和你的問題情況。這比低聲下氣更好地定位了你的位置。

有時網(wǎng)頁論壇會設有專為新手提問的版面,如果你真的認為遇到了初學者的問題,到那去就是了,但一樣別那么低聲下氣。

描述問題癥狀而非你的猜測

告訴黑客們你認為問題是怎樣造成的并沒什么幫助。(如果你的推斷如此有效,還用向別人求助嗎?),因此要確信你原原本本告訴了他們問題的癥狀,而不是你的解釋和理論;讓黑客們來推測和診斷。如果你認為陳述自己的猜測很重要,清楚地說明這只是你的猜測,并描述為什么它們不起作用。

蠢問題

我在編譯內(nèi)核時接連遇到 SIG11 錯誤,我懷疑某條飛線搭在主板的走線上了,這種情況應該怎樣檢查最好?

聰明問題

我的組裝電腦是 FIC-PA2007 主機板搭載 AMD K6/233 CPU(威盛 Apollo VP2 芯片組),256MB Corsair PC133 SDRAM 內(nèi)存,在編譯內(nèi)核時,從開機 20 分鐘以后就頻頻產(chǎn)生 SIG11 錯誤,但是在頭 20 分鐘內(nèi)從沒發(fā)生過相同的問題。重新啟動也沒有用,但是關機一晚上就又能工作 20 分鐘。所有內(nèi)存都換過了,沒有效果。相關部分的標準編譯記錄如下…。

由于以上這點似乎讓許多人覺得難以配合,這里有句話可以提醒你:所有的診斷專家都來自密蘇里州。美國國務院的官方座右銘則是:讓我看看(出自國會議員 Willard D. Vandiver 在 1899 年時的講話:我來自一個出產(chǎn)玉米,棉花,牛蒡和民主黨人的國家,滔滔雄辯既不能說服我,也不會讓我滿意。我來自密蘇里州,你必須讓我看看。) 針對診斷者而言,這并不是一種懷疑,而只是一種真實而有用的需求,以便讓他們看到的是與你看到的原始證據(jù)盡可能一致的東西,而不是你的猜測與歸納的結論。所以,大方的展示給我們看吧!

按發(fā)生時間先后列出問題癥狀

問題發(fā)生前的一系列操作,往往就是對找出問題最有幫助的線索。因此,你的說明里應該包含你的操作步驟,以及機器和軟件的反應,直到問題發(fā)生。在命令行處理的情況下,提供一段操作記錄(例如運行腳本工具所生成的),并引用相關的若干行(如 20 行)記錄會非常有幫助。

如果掛掉的程序有診斷選項(如 -v 的詳述開關),試著選擇這些能在記錄中增加調(diào)試信息的選項。記住,多不等于好。試著選取適當?shù)恼{(diào)試級別以便提供有用的信息而不是讓讀者淹沒在垃圾中。

如果你的說明很長(如超過四個段落),在開頭簡述問題,接下來再按時間順序詳述會有所幫助。這樣黑客們在讀你的記錄時就知道該注意哪些內(nèi)容了。

描述目標而不是過程

如果你想弄清楚如何做某事(而不是報告一個 Bug),在開頭就描述你的目標,然后才陳述重現(xiàn)你所卡住的特定步驟。

經(jīng)常尋求技術幫助的人在心中有個更高層次的目標,而他們在自以為能達到目標的特定道路上被卡住了,然后跑來問該怎么走,但沒有意識到這條路本身就有問題。結果要費很大的勁才能搞定。

蠢問題

我怎樣才能從某繪圖程序的顏色選擇器中取得十六進制的 RGB 值?

聰明問題

我正試著用替換一幅圖片的色碼(color table)成自己選定的色碼,我現(xiàn)在知道的唯一方法是編輯每個色碼區(qū)塊(table slot),但卻無法從某繪圖程序的顏色選擇器取得十六進制的 RGB 值。

第二種提問法比較聰明,你可能得到像是建議采用另一個更合適的工具的回復。

別要求使用私人電郵回復

黑客們認為問題的解決過程應該公開、透明,此過程中如果更有經(jīng)驗的人注意到不完整或者不當之處,最初的回復才能夠、也應該被糾正。同時,作為提供幫助者可以得到一些獎勵,獎勵就是他的能力和學識被其他同行看到。

當你要求私下回復時,這個過程和獎勵都被中止。別這樣做,讓回復者來決定是否私下回答 —— 如果他真這么做了,通常是因為他認為問題編寫太差或者太膚淺,以至于不可能使其他人產(chǎn)生興趣。

這條規(guī)則存在一條有限的例外,如果你確信提問可能會引來大量雷同的回復時,那么這個神奇的提問句會是向我發(fā)電郵,我將為論壇歸納這些回復。試著將郵件列表或新聞群組從洪水般的雷同回復中解救出來是非常有禮貌的 —— 但你必須信守諾言。

清楚明確的表達你的問題以及需求

漫無邊際的提問是近乎無休無止的時間黑洞。最有可能給你有用答案的人通常也正是最忙的人(他們忙是因為要親自完成大部分工作)。這樣的人對無節(jié)制的時間黑洞相當厭惡,所以他們也傾向于厭惡那些漫無邊際的提問。

如果你明確表述需要回答者做什么(如提供指點、發(fā)送一段代碼、檢查你的補丁、或是其他等等),就最有可能得到有用的答案。因為這會定出一個時間和精力的上限,便于回答者能集中精力來幫你。這么做很棒。

要理解專家們所處的世界,請把專業(yè)技能想像為充裕的資源,而回復的時間則是稀缺的資源。你要求他們奉獻的時間越少,你越有可能從真正專業(yè)而且很忙的專家那里得到解答。

所以,界定一下你的問題,使專家花在辨識你的問題和回答所需要付出的時間減到最少,這技巧對你有用答案相當有幫助 —— 但這技巧通常和簡化問題有所區(qū)別。因此,問我想更好地理解 X,可否指點一下哪有好一點說明?通常比問你能解釋一下 X 嗎?更好。如果你的代碼不能運作,通常請別人看看哪里有問題,比要求別人替你改正要明智得多。

詢問有關代碼的問題時

別要求他人幫你調(diào)試有問題的代碼,不提示一下應該從何入手。張貼幾百行的代碼,然后說一聲:它不能工作會讓你完全被忽略。只貼幾十行代碼,然后說一句:在第七行以后,我期待它顯示 <x>,但實際出現(xiàn)的是 <y>比較有可能讓你得到回應。

最有效描述程序問題的方法是提供最精簡的 Bug 展示測試用例(bug-demonstrating test case)。什么是最精簡的測試用例?那是問題的縮影;一小個程序片段能剛好展示出程序的異常行為,而不包含其他令人分散注意力的內(nèi)容。怎么制作最精簡的測試用例?如果你知道哪一行或哪一段代碼會造成異常的行為,復制下來并加入足夠重現(xiàn)這個狀況的代碼(例如,足以讓這段代碼能被編譯/直譯/被應用程序處理)。如果你無法將問題縮減到一個特定區(qū)塊,就復制一份代碼并移除不影響產(chǎn)生問題行為的部分??傊?,測試用例越小越好(查看話不在多而在精一節(jié))。

一般而言,要得到一段相當精簡的測試用例并不太容易,但永遠先嘗試這樣做的是種好習慣。這種方式可以幫助你了解如何自行解決這個問題 —— 而且即使你的嘗試不成功,黑客們也會看到你在嘗試取得答案的過程中付出了努力,這可以讓他們更愿意與你合作。

如果你只是想讓別人幫忙審查(Review)一下代碼,在信的開頭就要說出來,并且一定要提到你認為哪一部分特別需要關注以及為什么。

別把自己家庭作業(yè)的問題貼上來

黑客們很擅長分辨哪些問題是家庭作業(yè)式的問題;因為我們中的大多數(shù)都曾自己解決這類問題。同樣,這些問題得由你來搞定,你會從中學到東西。你可以要求給點提示,但別要求得到完整的解決方案。

如果你懷疑自己碰到了一個家庭作業(yè)式的問題,但仍然無法解決,試試在用戶群組,論壇或(最后一招)在項目的用戶郵件列表或論壇中提問。盡管黑客們會看出來,但一些有經(jīng)驗的用戶也許仍會給你一些提示。

去掉無意義的提問句

避免用無意義的話結束提問,例如有人能幫我嗎?或者這有答案嗎?。

首先:如果你對問題的描述不是很好,這樣問更是畫蛇添足。

其次:由于這樣問是畫蛇添足,黑客們會很厭煩你 —— 而且通常會用邏輯上正確,但毫無意義的回答來表示他們的蔑視, 例如:沒錯,有人能幫你或者不,沒答案。

一般來說,避免用是或否、對或錯、有或沒有類型的問句,除非你想得到是或否類型的回答。

即使你很急也不要在標題寫緊急

這是你的問題,不是我們的。宣稱緊急極有可能事與愿違:大多數(shù)黑客會直接刪除無禮和自私地企圖即時引起關注的問題。更嚴重的是,緊急這個字(或是其他企圖引起關注的標題)通常會被垃圾信過濾器過濾掉 —— 你希望能看到你問題的人可能永遠也看不到。

有半個例外的情況是,如果你是在一些很高調(diào),會使黑客們興奮的地方,也許值得這樣去做。在這種情況下,如果你有時間壓力,也很有禮貌地提到這點,人們也許會有興趣回答快一點。

當然,這風險很大,因為黑客們興奮的點多半與你的不同。譬如從 NASA 國際空間站(International Space Station)發(fā)這樣的標題沒有問題,但用自我感覺良好的慈善行為或政治原因發(fā)肯定不行。事實上,張貼諸如緊急:幫我救救這個毛茸茸的小海豹!肯定讓你被黑客忽略或惹惱他們,即使他們認為毛茸茸的小海豹很重要。

如果你覺得這點很不可思議,最好再把這份指南剩下的內(nèi)容多讀幾遍,直到你弄懂了再發(fā)文。

禮多人不怪,而且有時還很有幫助

彬彬有禮,多用請和謝謝您的關注,或謝謝你的關照。讓大家都知道你對他們花時間免費提供幫助心存感激。

坦白說,這一點并沒有比使用清晰、正確、精準且合乎語法和避免使用專用格式重要(也不能取而代之)。黑客們一般寧可讀有點唐突但技術上鮮明的 Bug 報告,而不是那種有禮但含糊的報告。(如果這點讓你不解,記住我們是按問題能教給我們什么來評價問題的價值的)

然而,如果你有一串的問題待解決,客氣一點肯定會增加你得到有用回應的機會。

(我們注意到,自從本指南發(fā)布后,從資深黑客那里得到的唯一嚴重缺陷反饋,就是對預先道謝這一條。一些黑客覺得先謝了意味著事后就不用再感謝任何人的暗示。我們的建議是要么先說先謝了,然后事后再對回復者表示感謝,或者換種方式表達感激,譬如用謝謝你的關注或謝謝你的關照。)

問題解決后,加個簡短的補充說明

問題解決后,向所有幫助過你的人發(fā)個說明,讓他們知道問題是怎樣解決的,并再一次向他們表示感謝。如果問題在新聞組或者郵件列表中引起了廣泛關注,應該在那里貼一個說明比較恰當。

最理想的方式是向最初提問的話題回復此消息,并在標題中包含已修正,已解決或其它同等含義的明顯標記。在人來人往的郵件列表里,一個看見討論串問題 X和問題 X - 已解決的潛在回復者就明白不用再浪費時間了(除非他個人覺得問題 X的有趣),因此可以利用此時間去解決其它問題。

補充說明不必很長或是很深入;簡單的一句你好,原來是網(wǎng)線出了問題!謝謝大家 – Bill比什么也不說要來的好。事實上,除非結論真的很有技術含量,否則簡短可愛的小結比長篇大論更好。說明問題是怎樣解決的,但大可不必將解決問題的過程復述一遍。

對于有深度的問題,張貼調(diào)試記錄的摘要是有幫助的。描述問題的最終狀態(tài),說明是什么解決了問題,在此之后才指明可以避免的盲點。避免盲點的部分應放在正確的解決方案和其它總結材料之后,而不要將此信息搞成偵探推理小說。列出那些幫助過你的名字,會讓你交到更多朋友。

除了有禮貌和有內(nèi)涵以外,這種類型的補充也有助于他人在郵件列表/新聞群組/論壇中搜索到真正解決你問題的方案,讓他們也從中受益。

至少,這種補充有助于讓每位參與協(xié)助的人因問題的解決而從中得到滿足感。如果你自己不是技術專家或者黑客,那就相信我們,這種感覺對于那些你向他們求助的大師或者專家而言,是非常重要的。問題懸而未決會讓人灰心;黑客們渴望看到問題被解決。好人有好報,滿足他們的渴望,你會在下次提問時嘗到甜頭。

思考一下怎樣才能避免他人將來也遇到類似的問題,自問寫一份文件或加個常見問題(FAQ)會不會有幫助。如果是的話就將它們發(fā)給維護者。

在黑客中,這種良好的后繼行動實際上比傳統(tǒng)的禮節(jié)更為重要,也是你如何透過善待他人而贏得聲譽的方式,這是非常有價值的資產(chǎn)。

如何解讀答案



RTFM 和 STFW:如何知道你已完全搞砸了

有一個古老而神圣的傳統(tǒng):如果你收到RTFM(Read The Fucking Manual)的回應,回答者認為你應該去讀他媽的手冊。當然,基本上他是對的,你應該去讀一讀。

RTFM 有一個年輕的親戚。如果你收到STFW(Search The Fucking Web)的回應,回答者認為你應該到他媽的網(wǎng)上搜索。那人多半也是對的,去搜索一下吧。(更溫和一點的說法是Google 是你的朋友?。?span id="s0sssss00s" class="ne-viewer-b-filler">

在論壇,你也可能被要求去爬爬論壇的舊文。事實上,有人甚至可能熱心地為你提供以前解決此問題的討論串。但不要依賴這種關照,提問前應該先搜索一下舊文。

通常,用這兩句之一回答你的人會給你一份包含你需要內(nèi)容的手冊或者一個網(wǎng)址,而且他們打這些字的時候也正在讀著。這些答復意味著回答者認為

你需要的信息非常容易獲得;
你自己去搜索這些信息比灌給你,能讓你學到更多。

你不應該因此不爽;依照黑客的標準,他已經(jīng)表示了對你一定程度的關注,而沒有對你的要求視而不見。你應該對他祖母般的慈祥表示感謝。

如果還是搞不懂

如果你看不懂回應,別立刻要求對方解釋。像你以前試著自己解決問題時那樣(利用手冊,F(xiàn)AQ,網(wǎng)絡,身邊的高手),先試著去搞懂他的回應。如果你真的需要對方解釋,記得表現(xiàn)出你已經(jīng)從中學到了點什么。

比方說,如果我回答你:看來似乎是 zentry 卡住了;你應該先清除它。,然后,這是一個很糟的后續(xù)問題回應:zentry 是什么?好的問法應該是這樣:哦~~~我看過說明了但是只有 -z 和 -p 兩個參數(shù)中提到了 zentries,而且還都沒有清楚的解釋如何清除它。你是指這兩個中的哪一個嗎?還是我看漏了什么?

處理無禮的回應

很多黑客圈子中看似無禮的行為并不是存心冒犯。相反,它是直截了當,一針見血式的交流風格,這種風格更注重解決問題,而不是使人感覺舒服而卻模模糊糊。

如果你覺得被冒犯了,試著平靜地反應。如果有人真的做了出格的事,郵件列表、新聞群組或論壇中的前輩多半會招呼他。如果這沒有發(fā)生而你卻發(fā)火了,那么你發(fā)火對象的言語可能在黑客社區(qū)中看起來是正常的,而你將被視為有錯的一方,這將傷害到你獲取信息或幫助的機會。

另一方面,你偶爾真的會碰到無禮和無聊的言行。與上述相反,對真正的冒犯者狠狠地打擊,用犀利的語言將其駁得體無完膚都是可以接受的。然而,在行事之前一定要非常非常的有根據(jù)。糾正無禮的言論與開始一場毫無意義的口水戰(zhàn)僅一線之隔,黑客們自己莽撞地越線的情況并不鮮見。如果你是新手或外人,避開這種莽撞的機會并不高。如果你想得到的是信息而不是消磨時光,這時最好不要把手放在鍵盤上以免冒險。

(有些人斷言很多黑客都有輕度的自閉癥或亞斯伯格綜合癥,缺少用于潤滑人類社會正常交往所需的神經(jīng)。這既可能是真也可能是假的。如果你自己不是黑客,興許你認為我們腦袋有問題還能幫助你應付我們的古怪行為。只管這么干好了,我們不在乎。我們喜歡我們現(xiàn)在這個樣子,并且通常對病患標記都有站得住腳的懷疑。)

Jeff Bigler 的觀察總結和這個相關也值得一讀 (tactfilters)。

在下一節(jié),我們會談到另一個問題,當你行為不當時所會受到的冒犯。

如何避免扮演失敗者

在黑客社區(qū)的論壇中,你以本指南所描述的或類似的方式,可能會有那么幾次搞砸了。而你會在公開場合中被告知你是如何搞砸的,也許攻擊的言語中還會帶點夾七夾八的顏色。

這種事發(fā)生以后,你能做的最糟糕的事莫過于哀嚎你的遭遇、宣稱被言語攻擊、要求道歉、高聲尖叫、憋悶氣、威脅訴諸法律、向其雇主報怨、不去關馬桶蓋等等。相反地,你該這么做:

熬過去,這很正常。事實上,它是有益健康且合理的。

社區(qū)的標準不會自行維持,它們是通過參與者積極而公開地執(zhí)行來維持的。不要哭嚎所有的批評都應該通過私下的郵件傳送,它不是這樣運作的。當有人評論你的一個說法有誤或者提出不同看法時,堅持聲稱受到個人攻擊也毫無益處,這些都是失敗者的態(tài)度。

也有其它的黑客論壇,受過高禮節(jié)要求的誤導,禁止參與者張貼任何對別人帖子挑毛病的消息,并聲稱如果你不想幫助用戶就閉嘴。結果造成有想法的參與者紛紛離開,這么做只會使它們淪為毫無意義的嘮叨與無用的技術論壇。

夸張的講法是:你要的是“友善”(以上述方式)還是有用?兩個里面挑一個。

記著:當黑客說你搞砸了,并且(無論多么刺耳)告訴你別再這樣做時,他正在為關心你和他的社區(qū)而行動。對他而言,不理你并將你從他的生活中濾掉更簡單。如果你無法做到感謝,至少要表現(xiàn)得有點尊嚴,別大聲哀嚎,也別因為自己是個有戲劇性超級敏感的靈魂和自以為有資格的新來者,就指望別人像對待脆弱的洋娃娃那樣對你。

有時候,即使你沒有搞砸(或者只是在他的想像中你搞砸了),有些人也會無緣無故地攻擊你本人。在這種情況下,抱怨倒是真的會把問題搞砸。

這些來找麻煩的人要么是毫無辦法但自以為是專家的不中用家伙,要么就是測試你是否真會搞砸的心理專家。其它讀者要么不理睬,要么用自己的方式對付他們。這些來找麻煩的人在給他們自己找麻煩,這點你不用操心。

也別讓自己卷入口水戰(zhàn),最好不要理睬大多數(shù)的口水戰(zhàn) —— 當然,這是在你檢驗它們只是口水戰(zhàn),并且未指出你有搞砸的地方,同時也沒有巧妙地將問題真正的答案藏于其后(這也是有可能的)。

不該問的問題

以下是幾個經(jīng)典蠢問題,以及黑客沒回答時心中所想的:

問題:我能在哪找到 X 程序或 X 資源?

問題:我怎樣用 X 做 Y?

問題:如何設定我的 shell 提示?

問題:我可以用 Bass-o-matic 文件轉換工具將 AcmeCorp 文件轉換為 TeX 格式嗎?

問題:我的程序/設定/SQL 語句沒有用

問題:我的 Windows 電腦有問題,你能幫我嗎?

問題:我的程序不會動了,我認為系統(tǒng)工具 X 有問題

問題:我在安裝 Linux(或者 X )時有問題,你能幫我嗎?

問題:我怎么才能破解 root 帳號/竊取 OP 特權/讀別人的郵件呢?


問題:我能在哪找到 X 程序或 X 資源?

回答:就在我找到它的地方啊,白癡 —— 搜索引擎的那一頭。天哪!難道還有人不會用Google嗎?



問題:我怎樣用 X 做 Y?

回答:如果你想解決的是 Y ,提問時別給出可能并不恰當?shù)姆椒?。這種問題說明提問者不但對 X 完全無知,也對 Y 要解決的問題糊涂,還被特定形勢禁錮了思維。最好忽略這種人,等他們把問題搞清楚了再說。



問題:如何設定我的 shell 提示??

回答:如果你有足夠的智慧提這個問題,你也該有足夠的智慧去RTFM,然后自己去找出來。



問題:我可以用 Bass-o-matic 文件轉換工具將 AcmeCorp 文件轉換為 TeX 格式嗎?

回答:試試看就知道了。如果你試過,你就知道了答案,就不用浪費我的時間了。



問題:我的{程序/設定/SQL 語句}沒有用

回答:這不算是問題吧,我對要我問你二十個問題才找得出你真正問題的問題沒興趣 —— 我有更有意思的事要做呢。在看到這類問題的時候,我的反應通常不外如下三種

你還有什么要補充的嗎?
真糟糕,希望你能搞定。
這關我屁事?



問題:我的 Windows 電腦有問題,你能幫我嗎?

回答:能啊,扔掉微軟的垃圾,換個像 Linux 或 BSD 的開源操作系統(tǒng)吧。

注意:如果程序有官方版 Windows 或者與 Windows 有互動(如 Samba),你可以問與 Windows 相關的問題,只是別對問題是由 Windows 操作系統(tǒng)而不是程序本身造成的回復感到驚訝, 因為 Windows 一般來說實在太爛,這種說法通常都是對的。



問題:我的程序不會動了,我認為系統(tǒng)工具 X 有問題

回答:你完全有可能是第一個注意到被成千上萬用戶反復使用的系統(tǒng)調(diào)用與函數(shù)庫文件有明顯缺陷的人,更有可能的是你完全沒有根據(jù)。不同凡響的說法需要不同凡響的證據(jù),當你這樣聲稱時,你必須有清楚而詳盡的缺陷說明文件作后盾。



問題:我在安裝 Linux(或者 X )時有問題,你能幫我嗎?

回答:不能,我只有親自在你的電腦上動手才能找到毛病。還是去找你當?shù)氐?Linux 使用群組者尋求實際的指導吧(你能在這兒找到用戶群組的清單)。

注意:如果安裝問題與某 Linux 的發(fā)行版有關,在它的郵件列表、論壇或本地用戶群組中提問也許是恰當?shù)?。此時,應描述問題的準確細節(jié)。在此之前,先用Linux和所有被懷疑的硬件作關鍵詞仔細搜索。



問題:我怎么才能破解 root 帳號/竊取 OP 特權/讀別人的郵件呢?

回答:想要這樣做,說明了你是個卑鄙小人;想找個黑客幫你,說明你是個白癡!

好問題與蠢問題

最后,我將透過舉一些例子,來說明怎樣聰明的提問;同一個問題的兩種問法被放在一起,一種是愚蠢的,另一種才是明智的。

蠢問題:

我可以在哪兒找到關于 Foonly Flurbamatic 的資料?

這種問法無非想得到STFW這樣的回答。

聰明問題:

我用 Google 搜索過 "Foonly Flurbamatic 2600",但是沒找到有用的結果。誰知道上哪兒去找對這種設備編程的資料?

這個問題已經(jīng) STFW 過了,看起來他真的遇到了麻煩。

蠢問題:

我從 foo 項目找來的源碼沒法編譯。它怎么這么爛?

他覺得都是別人的錯,這個傲慢自大的提問者。

聰明問題:

foo 項目代碼在 Nulix 6.2 版下無法編譯通過。我讀過了 FAQ,但里面沒有提到跟 Nulix 有關的問題。這是我編譯過程的記錄,我有什么做的不對的地方嗎?

提問者已經(jīng)指明了環(huán)境,也讀過了 FAQ,還列出了錯誤,并且他沒有把問題的責任推到別人頭上,他的問題值得被關注。

蠢問題:

我的主機板有問題了,誰來幫我?

某黑客對這類問題的回答通常是:好的,還要幫你拍拍背和換尿布嗎?,然后按下刪除鍵。

聰明問題:

我在 S2464 主機板上試過了 X 、 Y 和 Z ,但沒什么作用,我又試了 A 、 B 和 C 。請注意當我嘗試 C 時的奇怪現(xiàn)象。顯然 florbish 正在 grommicking,但結果出人意料。通常在 Athlon MP 主機板上引起 grommicking 的原因是什么?有誰知道接下來我該做些什么測試才能找出問題?

這個家伙,從另一個角度來看,值得去回答他。他表現(xiàn)出了解決問題的能力,而不是坐等天上掉答案。

在最后一個問題中,注意告訴我答案和給我啟示,指出我還應該做什么診斷工作之間微妙而又重要的區(qū)別。

事實上,后一個問題源自于 2001 年 8 月在 Linux 內(nèi)核郵件列表(lkml)上的一個真實的提問。我(Eric)就是那個提出問題的人。我在 Tyan S2464 主板上觀察到了這種無法解釋的鎖定現(xiàn)象,列表成員們提供了解決這一問題的重要信息。

通過我的提問方法,我給了別人可以咀嚼玩味的東西;我設法讓人們很容易參與并且被吸引進來。我顯示了自己具備和他們同等的能力,并邀請他們與我共同探討。通過告訴他們我所走過的彎路,以避免他們再浪費時間,我也表明了對他們寶貴時間的尊重。

事后,當我向每個人表示感謝,并且贊賞這次良好的討論經(jīng)歷的時候,一個 Linux 內(nèi)核郵件列表的成員表示,他覺得我的問題得到解決并非由于我是這個列表中的名人,而是因為我用了正確的方式來提問。

黑客從某種角度來說是擁有豐富知識但缺乏人情味的家伙;我相信他是對的,如果我像個乞討者那樣提問,不論我是誰,一定會惹惱某些人或者被他們忽視。他建議我記下這件事,這直接導致了本指南的出現(xiàn)。

如果得不到回答

如果仍得不到回答,請不要以為我們覺得無法幫助你。有時只是看到你問題的人不知道答案罷了。沒有回應不代表你被忽視,雖然不可否認這種差別很難區(qū)分。

總的來說,簡單的重復張貼問題是個很糟的點子。這將被視為無意義的喧鬧。有點耐心,知道你問題答案的人可能生活在不同的時區(qū),可能正在睡覺,也有可能你的問題一開始就沒有組織好。

你可以通過其他渠道獲得幫助,這些渠道通常更適合初學者的需要。

有許多網(wǎng)上的以及本地的用戶群組,由熱情的軟件愛好者(即使他們可能從沒親自寫過任何軟件)組成。通常人們組建這樣的團體來互相幫助并幫助新手。

另外,你可以向很多商業(yè)公司尋求幫助,不論公司大還是小。別為要付費才能獲得幫助而感到沮喪!畢竟,假使你的汽車發(fā)動機汽缸密封圈爆掉了 —— 完全可能如此 —— 你還得把它送到修車鋪,并且為維修付費。就算軟件沒花費你一分錢,你也不能強求技術支持總是免費的。

對像是 Linux 這種大眾化的軟件,每個開發(fā)者至少會對應到上萬名用戶。根本不可能由一個人來處理來自上萬名用戶的求助電話。要知道,即使你要為這些協(xié)助付費,和你所購買的同類軟件相比,你所付出的也是微不足道的(通常封閉源代碼軟件的技術支持費用比開源軟件的要高得多,且內(nèi)容也沒那么豐富)。

如何更好地回答問題

態(tài)度和善一點。問題帶來的壓力常使人顯得無禮或愚蠢,其實并不是這樣。

對初犯者私下回復。對那些坦誠犯錯之人沒有必要當眾羞辱,一個真正的新手也許連怎么搜索或在哪找常見問題都不知道。

如果你不確定,一定要說出來!一個聽起來權威的錯誤回復比沒有還要糟,別因為聽起來像個專家很好玩,就給別人亂指路。要謙虛和誠實,給提問者與同行都樹個好榜樣。

如果幫不了忙,也別妨礙他。不要在實際步驟上開玩笑,那樣也許會毀了提問者的設置 —— 有些可憐的呆瓜會把它當成真的指令。

試探性的反問以引出更多的細節(jié)。如果你做得好,提問者可以學到點東西 —— 你也可以。試試將蠢問題轉變成好問題,別忘了我們都曾是新手。

盡管對那些懶蟲抱怨一聲 RTFM 是正當?shù)?,但能給出文檔的鏈接(即使只是建議個 Google 搜索關鍵詞)會更好。

如果你決定回答,就請給出好的答案。當別人正在用錯誤的工具或方法時別建議笨拙的權宜之計(workaround),應推薦更好的工具,重新界定問題。

正面地回答問題!如果這個提問者已經(jīng)很深入的研究而且也表明已經(jīng)試過 X 、 Y 、 Z 、 A 、 B 、 C 但沒得到結果,回答試試看 A 或是 B或者試試 X 、 Y 、 Z 、 A 、 B 、 C并附上一個鏈接一點用都沒有。

幫助你的社區(qū)從問題中學習。當回復一個好問題時,問問自己如何修改相關文件或常見問題文件以免再次解答同樣的問題?,接著再向文件維護者發(fā)一份補丁。

如果你在研究一番后才作出了回答,展現(xiàn)你的技巧而不是直接端出結果。畢竟授人以魚不如授人以漁。

相關資源

如果你需要個人電腦、Unix 系統(tǒng)和網(wǎng)絡如何運作的基礎知識,參閱Unix 系統(tǒng)和網(wǎng)絡基本原理。

當你發(fā)布軟件或補丁時,試著按軟件發(fā)布實踐操作。

鳴謝

Evelyn Mitchel 貢獻了一些愚蠢問題例子并啟發(fā)了編寫如何更好地回答問題這一節(jié), Mikhail Ramendik 貢獻了一些特別有價值的建議和改進。


提問的智慧的評論 (共 條)

分享到微博請遵守國家法律
万载县| 晋州市| 新巴尔虎右旗| 滦南县| 太谷县| 锦屏县| 涞源县| 阳曲县| 中阳县| 永登县| 元朗区| 铁岭县| 岚皋县| 峨眉山市| 武义县| 永康市| 横山县| 和田县| 郎溪县| 佳木斯市| 永仁县| 乌鲁木齐市| 静乐县| 辽阳市| 齐齐哈尔市| 曲水县| 疏附县| 南江县| 湘乡市| 麟游县| 油尖旺区| 龙州县| 南京市| 水富县| 长兴县| 平泉县| 南投县| 屏东县| 巴东县| 青阳县| 盘锦市|