[轉貼] 提問的智慧
Copyright (C) 2001 by Eric S. Raymond 中文版 Copyleft 2001 by D.H.Grand(nOBODY/Ginux) 英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html 感謝 Eric 的耐心指點和同意,本文才得以完成並發佈, 本指南 英文版版權為 Eric Steven Raymond 所有, 中文版版權由 D.H.Grand[nOBODY/Ginux] 所有。
在黑客世界,當提出一個技術問題時,你能得到怎樣的回答? 這取決於挖出答案的難度,同樣取決於你提問的方法。 本指南旨在幫助你提高發問技巧,以獲取你最想要的答案。 首先你必須明白,黑客們只偏愛艱巨的任務,或者能激發他們思維的好問題。 如若不然,我們還來幹嗎?如果你有值得我們反復咀嚼玩味的好問題, 我們自會對你感激不盡。好問題是激勵,是厚禮,可以提高我們的理解力, 而且通常會暴露我們以前從沒意識到或者思考過的問題。 對黑客而言,“問得好!”是發自內心的大力稱讚。 儘管黑客們有蔑視簡單問題和不友善的壞名聲,有時看起來似乎我們對新手, 對知識貧乏者懷有敵意,但其實不是那樣的。 我們不想掩飾對這樣一些人的蔑視--他們不願思考, 或者在發問前不去完成他們應該做的事。 這種人只會謀殺時間--他們只願索取,從不付出,無端消耗我們的時間, 而我們本可以把時間用在更有趣的問題或者更值得回答的人身上。 我們稱這樣的人為“失敗者”(由於歷史原因,我們有時把它拼作“lusers”)。 我們在很大程度上屬於志願者,從繁忙的生活中抽出時間來解惑答疑, 而且時常被提問淹沒。所以我們無情的濾掉一些話題, 特別是拋棄那些看起來象失敗者的傢伙,以便更高效的利用時間來回答勝利者的問題。 如果你覺得我們過於傲慢的態度讓你不爽,讓你委屈,不妨設身處地想想。 我們並沒有要求你向我們屈服--事實上,我們中的大多數人最喜歡公平交易不過了, 只要你付出小小努力來滿足最起碼的要求,我們就會歡迎你加入到我們的文化中來?但讓我們幫助那些不願意幫助自己的人是沒有意義的。 如果你不能接受這種“歧視”,我們建議你花點錢找家商業公司簽個術支援協議得了, 別向黑客乞求 如果你決定向我們求助,當然不希望被視為失敗者, 更不願成為失敗者中的一員。立刻得到有效答案的最好方法,就是象勝利者那樣提問 —— 聰明、自信、有解決問題的思路,只是偶爾在特定的問題上需要獲得一點幫助。 (歡迎對本指南提出改進意見。任何建議請E-mail至esr@thyrsus.com, 然而 請注意,本文並非網路禮節的通用指南,我通常會拒絕無助於在技術論壇 得到有用答案的建議。) (當然,如果你寫中文,最好還是寄DHGrand@hotmail.com;-)在通過電郵、新聞組或者聊天室提出技術問題前,檢查你有沒有做到:
通讀手冊,試著自己找答案。 在FAQ?找答案(一份維護得好的FAQ可以包羅萬象:)。 在網上搜索(個人推薦google~~~)。 向你身邊精於此道的朋友打聽。 當你提出問題的時候,首先要說明在此之前你幹了些什麼; 這將有助於樹立你的形象:你不是一個妄圖不勞而獲的乞討者,不願浪費別人的時間。 如果提問者能從答案中學到東西,我們更樂於回答他的問題。 周全的思考,準備好你的問題,草率的發問只能得到草率的回答, 或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力, 你越能得到實質性的幫助。 小心別問錯了問題。如果你的問題基於錯誤的假設,普通黑客(J. Random Hacker) 通常會用無意義的字面解釋來答復你,心?想著“蠢問題...”, 希望著你會從問題的回答(而非你想得到的答案)中汲取教訓。 決不要自以為夠資格得到答案,你沒這種資格。畢竟你沒有為這種服務支付任何報酬。 你要自己去“掙”回一個答案,靠提出一個有內涵的,有趣的, 有思維激勵作用的問題--一個對社區的經驗有潛在貢獻的問題, 而不僅僅是被動的從他人處索要知識--去掙到這個答案。 另一方面,表明你願意在找答案的過程中做點什麼,是一個非常好的開端。 “誰能給點提示?”、“我這個例子?缺了什麼?”以及“我應該檢查什麼地方?” 比“請把確切的過程貼出來”更容易得到答復。因為你顯得只要有人指點正確的方向, 你就有完成它的能力和決心。以下是幾個經典蠢問題,以及黑客在拒絕回答時的心中所想:
問題:我能在哪找到X程式? 問題:我的程式/配置/SQL申明沒有用 問題:我的Windows有問題,你能幫我嗎? 問題:我在安裝Linux(或者X)時有問題,你能幫我嗎? 問題:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢? 提問:我能在哪找到X程式? 回答:就在我找到它的地方啊蠢貨--搜索引擎的那一頭。天?!還有人不會用Google嗎? 提問:我的程式(配置、SQL申明)沒有用 回答:這不算是問題吧,我對找出你的真正問題沒興趣--如果要我問你二十個問題 才找得出來的話--我有更有意思的事要做呢。 在看到這類問題的時候,我的反應通常不外如下三種 你還有什麼要補充的嗎? 真糟糕,希望你能搞定。 這跟我有什麼鳥相關? 提問:我的Windows有問題,你能幫我嗎? 回答:能啊,扔掉萎軟的垃圾,換Linux吧。 提問:我在安裝Linux(或者X)時有問題,你能幫我嗎? 回答:不能,我只有親自在你的電腦上動手才能找到毛病。 還是去找你當地的Linux用戶組尋求手把手的指導吧(你能在這兒找到用戶組的清單)。 提問:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢? 回答:想要這樣做,說明你是個卑鄙小人;想找個黑客幫你,說明你是個白癡!最後,我舉一些例子來說明,怎樣聰明的提問; 同一個問題的兩種問法被放在一起,一種是愚蠢的,另一種才是明智的。
蠢問題:我可以在哪兒找到關於Foonly Flurbamatic的資料? // 這種問法無非想得到“STFW”這樣的回答。 聰明問題:我用Google搜索過“Foonly Flurbamatic 2600”, 但是沒找到有用的結果。誰知道上哪兒去找對這種設備編程的資料? // 這個問題已經STFW過了,看起來他真的遇到了麻煩。 蠢問題:我從FOO項目找來的源碼沒法編譯。它怎麼這麼爛? // 他覺得都是別人的錯,這個傲慢自大的傢伙 聰明問題:FOO專案代碼在Nulix 6.2版下無法編譯通過。 我讀過了FAQ,但?面沒有提到跟Nulix有關的問題。 這是我編譯過程的記錄,我有什麼做得不對的地方嗎? // 他講明瞭環境,也讀過了FAQ,還指明了錯誤, 並且他沒有把問題的責任推到別人頭上,這個傢伙值得留意。 蠢問題:我的主板有問題了,誰來幫我? // 普通黑客對這類問題的回答通常是:“好的,還要幫你拍拍背和換尿布嗎?” ,然後按下刪除鍵。 聰明問題:我在S2464主板上試過了X、Y和Z,但沒什麼作用, 我又試了A、B和C。請注意當我嘗試C時的奇怪現象。顯然邊帶傳輸中出現了收縮, 但結果出人意料。在多處理器主板上引起邊帶洩漏的通常原因是什麼? 誰有好主意接下來我該做些什麼測試才能找出問題? // 這個傢伙,從另一個角度來看,值得去回答他。他表現出了解決問題的能力, 而不是坐等天上掉答案。 在最後一個問題中,注意“告訴我答案”和“給我啟示,指出我還應該做什麼診斷工作” 之間微妙而又重要的區別。 事實上,後一個問題源自於2001年8月在Linux內核郵件列表上的一個真實的提問。 我(Eric)就是那個提出問題的人。我在Tyan S2464主板上觀察到了這種無法解釋的 鎖定現象,列表成員們提供了解決那一問題的重要資訊。 通過我的提問方法,我給了大家值得玩味的東西;我讓人們很容易參與並且被吸引進來。 我顯示了自己具備和他們同等的能力,邀請他們與我共同探討。 我告訴他們我所走過的彎路,以避免他們再浪費時間,這是一種對他人時間價值的尊重。 後來,當我向每個人表示感謝,並且讚賞這套程式(指郵件列表中的討論 --譯者注)運作得非常出色的時候,一個Linux內核?件列(lkml)成員表示,問題得到解決並非由於我是這個列表中的“名人”, 而是因為我用了正確的方式來提問。 我們黑客從某種角度來說是擁有豐富知識但缺乏人情味的傢伙;我相信 他是對的,如果我象個乞討者那樣提問,不論我是誰,一定會惹惱某些人 或者被他們忽視。他建議我記下這件事,給編寫這個指南的人一些指導。※ 解決問題的順序:
1. 先查閱硬體(有沒有超頻/記憶體模組/周邊網路設備的好壞等等); 2. 檢查 /var/log 底下的登錄檔,尤其是 /var/log/messages 的內容; 3. 不要急,先翻書瞭解相關問題的原理,再設法解決~ 4. 利用關鍵字,在 http://www.google.com.tw 查閱是否有人已經遇過類似的問題? 5. 都沒有辦法了,再在討論區以明確的標題以及重要的資訊貼成內文來發問啦!