目錄
- 在提問之前
- 當你提問時
- 慎選提問的論壇
- Stack Overflow
- 網站和 IRC 論壇
- 第二步,使用項目郵件清單
- 使用有意義且描述明确的标題
- 使問題容易回複
- 用清晰、正确、精準且文法正确的語句
- 使用易于讀取且标準的檔案格式發送問題
- 精确地描述問題并言之有物
- 話不在多而在精
- 别動辄聲稱找到 Bug
- 低聲下氣不能代替你的功課
- 描述問題症狀而非你的猜測
- 按發生時間先後列出問題症狀
- 描述目标而不是過程
- 别要求使用私人電郵回複
- 清楚明确的表達你的問題以及需求
- 詢問有關代碼的問題時
- 别把自己家庭作業的問題貼上來
- 去掉無意義的提問句
- 即使你很急也不要在标題寫緊急
- 禮多人不怪,而且有時還很有幫助
- 問題解決後,加個簡短的補充說明
- 如何解讀答案
- RTFM 和 STFW:如何知道你已完全搞砸了
- 如果還是搞不懂
- 處理無禮的回應
- 如何避免扮演失敗者
- 不該問的問題
- 好問題與蠢問題
- 如果得不到回答
- 如何更好地回答問題
在提問之前
在你準備要通過電子郵件、新聞群組或者聊天室提出技術問題前,請先做到以下事情:
- 嘗試在你準備提問的論壇的舊文章中搜尋答案。
- 嘗試上網搜尋以找到答案。
- 嘗試閱讀手冊以找到答案。
- 嘗試閱讀常見問題檔案(FAQ)以找到答案。
- 嘗試自己檢查或試驗以找到答案。
- 向你身邊的強者朋友打聽以找到答案。
- 如果你是程式開發者,請嘗試閱讀源代碼以找到答案。
當你提出問題的時候,請先表明你已經做了上述的努力;這将有助于樹立你并不是一個不勞而獲且浪費别人的時間的提問者。如果你能一并表達在做了上述努力的過程中所學到的東西會更好,因為我們更樂于回答那些表現出能從答案中學習的人的問題。
運用某些政策,比如先用 Google 搜尋你所遇到的各種錯誤資訊(搜尋 Google 論壇和網頁),這樣很可能直接就找到了能解決問題的檔案或郵件清單線索。即使沒有結果,在郵件清單或新聞討論區尋求幫助時加上一句
我在 Google 中搜過下列句子但沒有找到什麼有用的東西
也是件好事,即使它隻是表明了搜尋引擎不能提供哪些幫助。這麼做(加上搜尋過的字串)也讓遇到相似問題的其他人能被搜尋引擎引導到你的提問來。
别着急,不要指望幾秒鐘的 Google 搜尋就能解決一個複雜的問題。在向專家求助之前,再閱讀一下常見問題檔案(FAQ)、放輕松、坐舒服一些,再花點時間思考一下這個問題。相信我們,他們能從你的提問看出你做了多少閱讀與思考,如果你是有備而來,将更有可能得到解答。不要将所有問題一股腦拋出,隻因你的第一次搜尋沒有找到答案(或者找到太多答案)。
準備好你的問題,再将問題仔細的思考過一遍,因為草率的發問隻能得到草率的回答,或者根本得不到任何答案。越是能表現出在尋求幫助前你為解決問題所付出的努力,你越有可能得到實質性的幫助。
小心别問錯了問題。如果你的問題基于錯誤的假設,某個普通黑客(J. Random Hacker)多半會一邊在心裡想着
蠢問題…
, 一邊用無意義的字面解釋來答複你,希望着你會從問題的回答(而非你想得到的答案)中汲取教訓。
絕不要自以為夠格得到答案,你沒有;你并沒有。畢竟你沒有為這種服務支付任何報酬。你将會是自己去掙到一個答案,靠提出有内涵的、有趣的、有思維激勵作用的問題 —— 一個有潛力能貢獻社群經驗的問題,而不僅僅是被動的從他人處索取知識。
另一方面,表明你願意在找答案的過程中做點什麼是一個非常好的開端。
誰能給點提示?
、
我的這個例子裡缺了什麼?
以及
我應該檢查什麼地方
比
請把我需要的确切的過程貼出來
更容易得到答複。因為你表現出隻要有人能指個正确方向,你就有完成它的能力和決心。
當你提問時
慎選提問的論壇
小心選擇你要提問的場合。如果你做了下述的事情,你很可能被忽略掉或者被看作失敗者:
- 在與主題不合的論壇上貼出你的問題。
- 在探讨進階技術問題的論壇張貼非常初級的問題;反之亦然。
- 在太多的不同新聞群組上重複轉貼同樣的問題(cross-post)。
- 向既非熟人也沒有義務解決你問題的人發送私人電郵。
黑客會剔除掉那些搞錯場合的問題,以保護他們溝通的管道不被無關的東西淹沒。你不會想讓這種事發生在自己身上的。
是以,第一步是找到對的論壇。再說一次,Google 和其它搜尋引擎還是你的朋友,用它們來找到與你遭遇到困難的軟硬體問題最相關的網站。通常那兒都有常見問題(FAQ)、郵件清單及相關說明檔案的連結。如果你的努力(包括閱讀 FAQ)都沒有結果,網站上也許還有報告 Bug(Bug-reporting)的流程或連結,如果是這樣,鍊過去看看。
向陌生的人或論壇發送郵件最可能是風險最大的事情。舉例來說,别假設一個提供豐富内容的網頁的作者會想充當你的免費顧問。不要對你的問題是否會受到歡迎做太樂觀的估計 —— 如果你不确定,那就向别處發送,或者壓根别發。
在選擇論壇、新聞群組或郵件清單時,别太相信名字,先看看 FAQ 或者許可書以弄清楚你的問題是否切題。發文前先翻翻已有的話題,這樣可以讓你感受一下那裡的文化。事實上,事先在新聞討論區或郵件清單的曆史記錄中搜尋與你問題相關的關鍵詞是個極好的主意,也許這樣就找到答案了。即使沒有,也能幫助你歸納出更好的問題。
别像機關槍似的一次"掃射"所有的幫助管道,這就像大喊大叫一樣會使人不快。要一個一個地來。
搞清楚你的主題!最典型的錯誤之一是在某種緻力于跨平台可移植的語言、套件或工具的論壇中提關于 Unix 或 Windows 作業系統程式界面的問題。如果你不明白為什麼這是大錯,最好在搞清楚這之間差異之前什麼也别問。
一般來說,在仔細挑選的公共論壇中提問,會比在私有論壇中提同樣的問題更容易得到有用的回答。有幾個理由可以支援這點,一是看潛在的回複者有多少,二是看觀衆有多少。黑客較願意回答那些能幫助到許多人的問題。
可以了解的是,老練的黑客和一些熱門軟體的作者正在接受過多的錯發資訊。就像那根最後壓垮駱駝背的稻草一樣,你的加入也有可能使情況走向極端 —— 已經好幾次了,一些熱門軟體的作者從自己軟體的支援中抽身出來,因為伴随而來湧入其私人郵箱的無用郵件變得無法忍受。
Stack Overflow
搜尋,然後 在 Stack Exchange 問。
近年來,Stack Exchange 社群已經成為回答技術及其他問題的主要管道,尤其是那些開放源碼的項目。
因為 Google 索引是即時的,在看 Stack Exchange 之前先在 Google 搜尋。有很高的機率某人已經問了一個類似的問題,而且 Stack Exchange 網站們往往會是搜尋結果中最前面幾個。如果你在 Google 上沒有找到任何答案,你再到特定相關主題的網站去找。用标簽(Tag)搜尋能讓你更縮小你的搜尋結果。
Stack Exchange 已經成長到超過一百個網站,以下是最常用的幾個站:
- Super User 是問一些通用的電腦問題,如果你的問題跟代碼或是寫程式無關,隻是一些網絡連線之類的,請到這裡。
- Stack Overflow 是問寫程式有關的問題。
- Server Fault 是問伺服器和網管相關的問題。
網站和 IRC 論壇
本地的使用者群組(user group),或者你所用的 Linux 發行版本也許正在宣傳他們的網頁論壇或 IRC 頻道,并提供新手幫助(在一些非英語國家,新手論壇很可能還是郵件清單), 這些地方是開始提問的好首選,特别是當你覺得遇到的也許隻是相對簡單或者很普通的問題時。有廣告贊助的 IRC 頻道是公開歡迎提問的地方,通常可以即時得到回應。
事實上,如果程式出的問題隻發生在特定 Linux 發行版提供的版本(這很常見),最好先去該發行版的論壇或郵件清單中提問,再到程式本身的論壇或郵件清單提問。(否則)該項目的黑客可能僅僅回複 “用我們的版本”。
在任何論壇發文以前,先确認一下有沒有搜尋功能。如果有,就試着搜尋一下問題的幾個關鍵詞,也許這會有幫助。如果在此之前你已做過通用的網頁搜尋(你也該這樣做),還是再搜尋一下論壇,搜尋引擎有可能沒來得及索引此論壇的全部内容。
通過論壇或 IRC 頻道來提供使用者支援服務有增長的趨勢,電子郵件則大多為項目開發者間的交流而保留。是以最好先在論壇或 IRC 中尋求與該項目相關的協助。
在使用 IRC 的時候,首先最好不要釋出很長的問題描述,有些人稱之為頻道洪水。最好通過一句話的問題描述來開始聊天。
第二步,使用項目郵件清單
當某個項目提供開發者郵件清單時,要向清單而不是其中的個别成員提問,即使你确信他能最好地回答你的問題。查一查項目的檔案和首頁,找到項目的郵件清單并使用它。有幾個很好的理由支援我們采用這種辦法:
- 任何好到需要向個别開發者提出的問題,也将對整個項目群組有益。反之,如果你認為自己的問題對整個項目群組來說太愚蠢,也不能成為騷擾個别開發者的理由。
- 向清單提問可以分散開發者的負擔,個别開發者(尤其是項目上司人)也許太忙以至于沒法回答你的問題。
- 大多數郵件清單都會被存檔,那些被存檔的内容将被搜尋引擎索引。如果你向清單提問并得到解答,将來其它人可以通過網頁搜尋找到你的問題和答案,也就不用再次發問了。
- 如果某些問題經常被問到,開發者可以利用此資訊來改進說明檔案或軟體本身,以使其更清楚。如果隻是私下提問,就沒有人能看到最常見問題的完整場景。
如果一個項目既有"使用者" 也有"開發者"(或"黑客")郵件清單或論壇,而你又不會動到那些源代碼,那麼就向"使用者"清單或論壇提問。不要假設自己會在開發者清單中受到歡迎,那些人多半會将你的提問視為幹擾他們開發的噪音。
然而,如果你确信你的問題很特别,而且在"使用者" 清單或論壇中幾天都沒有回複,可以試試前往"開發者"清單或論壇發問。建議你在張貼前最好先暗地裡觀察幾天以了解那裡的行事方式(事實上這是參與任何私有或半私有清單的好主意)
如果你找不到一個項目的郵件清單,而隻能查到項目維護者的電子郵件位址,盡管向他發信。即使是在這種情況下,也别假設(項目)郵件清單不存在。在你的電子郵件中,請陳述你已經試過但沒有找到合适的郵件清單,也提及你不反對将自己的郵件轉發給他人(許多人認為,即使沒什麼秘密,私人電子郵件也不應該被公開。通過允許将你的電子郵件轉發他人,你給了相應人員處置你郵件的選擇)。
使用有意義且描述明确的标題
在郵件清單、新聞群組或論壇中,大約 50 字以内的标題是抓住資深專家注意力的好機會。别用喋喋不休的
幫幫忙
、
跪求
、
急
(更别說
救命啊!!!!
這樣讓人反感的話,用這種标題會被條件反射式地忽略)來浪費這個機會。不要妄想用你的痛苦程度來打動我們,而應該是在這點空間中使用極簡單扼要的描述方式來提出問題。
一個好标題範例是
目标 —— 差異
式的描述,許多技術支援組織就是這樣做的。在
目标
部分指出是哪一個或哪一組東西有問題,在
差異
部分則描述與期望的行為不一緻的地方。
蠢問題:救命啊!我的筆記本電腦不能正常顯示了!
聰明問題:X.org 6.8.1 的滑鼠光标會變形,某牌顯示卡 MV1005 晶片組。
更聰明問題:X.org 6.8.1 的滑鼠光标,在某牌顯示卡 MV1005 晶片組環境下 - 會變形。
編寫
目标 —— 差異
式描述的過程有助于你組織對問題的細緻思考。是什麼被影響了? 僅僅是滑鼠光标或者還有其它圖形?隻在 X.org 的 X 版中出現?或隻是出現在 6.8.1 版中? 是針對某牌顯示卡晶片組?或者隻是其中的 MV1005 型号? 一個黑客隻需瞄一眼就能夠立即明白你的環境和你遇到的問題。
總而言之,請想像一下你正在一個隻顯示标題的存檔讨論串(Thread)索引中查尋。讓你的标題更好地反映問題,可使下一個搜尋類似問題的人能夠關注這個讨論串,而不用再次提問相同的問題。
如果你想在回複中提出問題,記得要修改内容标題,以表明你是在問一個問題, 一個看起來像
Re: 測試
或者
Re: 新 bug
的标題很難引起足夠重視。另外,在不影響連貫性之下,适當引用并删減前文的内容,能給新來的讀者留下線索。
對于讨論串,不要直接點選回複來開始一個全新的讨論串,這将限制你的觀衆。因為有些郵件閱讀程式,比如 mutt ,允許使用者按讨論串排序并通過折疊讨論串來隐藏消息,這樣做的人永遠看不到你發的消息。
僅僅改變标題還不夠。mutt 和其它一些郵件閱讀程式還會檢查郵件标題以外的其它資訊,以便為其指定讨論串。是以甯可發一個全新的郵件。
在網頁論壇上,好的提問方式稍有不同,因為讨論串與特定的資訊緊密結合,并且通常在讨論串外就看不到裡面的内容,故通過回複提問,而非改變标題是可接受的。不是所有論壇都允許在回複中出現分離的标題,而且這樣做了基本上沒有人會去看。不過,通過回複提問,這本身就是暧昧的做法,因為它們隻會被正在檢視該标題的人讀到。是以,除非你隻想在該讨論串目前活躍的人群中提問,不然還是另起爐竈比較好。
使問題容易回複
以
請将你的回複發送到……
來結束你的問題多半會使你得不到回答。如果你覺得花幾秒鐘在郵件用戶端設定一下回複位址都麻煩,我們也覺得花幾秒鐘思考你的問題更麻煩。如果你的郵件程式不支援這樣做,換個好點的;如果是作業系統不支援這種郵件程式,也換個好點的。
在論壇,要求通過電子郵件回複是非常無禮的,除非你認為回複的資訊可能比較敏感(有人會為了某些未知的原因,隻讓你而不是整個論壇知道答案)。如果你隻是想在有人回複讨論串時得到電子郵件提醒,可以要求網頁論壇發送給你。幾乎所有論壇都支援諸如
追蹤此讨論串
、
有回複時發送郵件提醒
等功能。
用清晰、正确、精準且文法正确的語句
我們從經驗中發現,粗心的提問者通常也會粗心的寫程式與思考(我敢打包票)。回答粗心大意者的問題很不值得,我們甯願把時間耗在别處。
正确的拼寫、标點符号和大小寫是很重要的。一般來說,如果你覺得這樣做很麻煩,不想在乎這些,那我們也覺得麻煩,不想在乎你的提問。花點額外的精力斟酌一下字句,用不着太僵硬與正式 —— 事實上,黑客文化很看重能準确地使用非正式、俚語和幽默的語句。但它必須很準确,而且有迹象表明你是在思考和關注問題。
正确地拼寫、使用标點和大小寫,不要将
its
混淆為
it's
,
loose
搞成
lose
或者将
discrete
弄成
discreet
。不要全部用大寫,這會被視為無禮的大聲嚷嚷(全部小寫也好不到哪去,因為不易閱讀。Alan Cox 也許可以這樣做,但你不行)。
更白話的說,如果你寫得像是個半文盲[譯注:小白],那多半得不到理睬。也不要使用即時通信中的簡寫或火星文,如将
的
簡化為
d
會使你看起來像一個為了少打幾個鍵而省字的小白。更糟的是,如果像個小孩似地鬼畫符那絕對是在找死,可以肯定沒人會理你(或者最多是給你一大堆指責與挖苦)。
如果在使用非母語的論壇提問,你可以犯點拼寫和文法上的小錯,但決不能在思考上馬虎(沒錯,我們通常能弄清兩者的分别)。同時,除非你知道回複者使用的語言,否則請使用英語書寫。繁忙的黑客一般會直接删除用他們看不懂語言寫的消息。在網絡上英語是通用語言,用英語書寫可以将你的問題在尚未被閱讀就被直接删除的可能性降到最低。
如果英文是你的外語(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.
- 如果你說某語言,請寄信/私訊給我;我需要有人協助我翻譯我的問題。
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.
- 我把我的問題用某語言和英文寫出來,如果你隻用一種語言回答,我會樂意将其翻譯成另一種。
使用易于讀取且标準的檔案格式發送問題
如果你人為地将問題搞得難以閱讀,它多半會被忽略,人們更願讀易懂的問題,是以:
- 使用純文字而不是 HTML (關閉 HTML 并不難)。
- 使用 MIME 附件通常是可以的,前提是真正有内容(譬如附帶的源代碼或 patch),而不僅僅是郵件程式生成的模闆(譬如隻是信件内容的拷貝)。
- 不要發送一段文字隻是一行句子但自動換行後會變成多行的郵件(這使得回複部分内容非常困難)。設想你的讀者是在 80 個字元寬的終端機上閱讀郵件,最好設定你的換行分割點小于 80 字。
- 但是,對一些特殊的檔案不要設定固定寬度(譬如日志檔案拷貝或會話記錄)。資料應該原樣包含,讓回複者有信心他們看到的是和你看到的一樣的東西。
- 在英語論壇中,不要使用
MIME 編碼發送消息。這種編碼對于張貼非 ASCII 語言可能是必須的,但很多郵件程式并不支援這種編碼。當它們處理換行時,那些文本中四處散布的Quoted-Printable
符号既難看也分散注意力,甚至有可能破壞内容的語意。=20
- 絕對,永遠不要指望黑客們閱讀使用封閉格式編寫的文檔,像微軟公司的 Word 或 Excel 檔案等。大多數黑客對此的反應就像有人将還在冒熱氣的豬糞倒在你家門口時你的反應一樣。即便他們能夠處理,他們也很厭惡這麼做。
- 如果你從使用 Windows 的電腦發送電子郵件,關閉微軟愚蠢的
功能 (從[選項] > [校訂] > [自動校正選項],勾選掉智能引号
單選框),以免在你的郵件中到處散布垃圾字元。智能引号
- 在論壇,勿濫用
和表情符号
功能(當它們提供時)。一兩個表情符号通常沒有問題,但花哨的彩色文本傾向于使人認為你是個無能之輩。過濫地使用表情符号、色彩和字型會使你看來像個傻笑的小姑娘。這通常不是個好主意,除非你隻是對性而不是對答案感興趣。HTML
如果你使用圖形使用者界面的郵件程式(如微軟公司的 Outlook 或者其它類似的),注意它們的預設設定不一定滿足這些要求。大多數這類程式有基于選單的
檢視源代碼
指令,用它來檢查發送檔案夾中的郵件,以確定發送的是純文字檔案同時沒有一些奇怪的字元。
精确地描述問題并言之有物
- 仔細、清楚地描述你的問題或 Bug 的症狀。
- 描述問題發生的環境(機器配置、作業系統、應用程式、以及相關的資訊),提供經銷商的發行版和版本号(如:
、Fedora Core 4
等)。Slackware 9.1
- 描述在提問前你是怎樣去研究和了解這個問題的。
- 描述在提問前為确定問題而采取的診斷步驟。
- 描述最近做過什麼可能相關的硬體或軟體變更。
- 盡可能的提供一個可以
的方法。重制這個問題的可控環境
盡量去揣測一個黑客會怎樣反問你,在你提問之前預先将黑客們可能遇到的問題回答一遍。
以上幾點中,當你報告的是你認為可能在代碼中的問題時,給黑客一個可以重制你的問題的環境尤其重要。當你這麼做時,你得到有效的回答的機會和速度都會大大的提升。
Simon Tatham 寫過一篇名為《如何有效的報告 Bug》的出色文章。強力推薦你也讀一讀。
話不在多而在精
你需要提供精确有内容的資訊。這并不是要求你簡單的把成堆的出錯代碼或者資料完全轉錄到你的提問中。如果你有龐大而複雜的測試樣例能重制程式挂掉的情境,盡量将它剪裁得越小越好。
這樣做的用處至少有三點。
第一,表現出你為簡化問題付出了努力,這可以使你得到回答的機會增加;
第二,簡化問題使你更有可能得到有用的答案;
第三,在精煉你的 bug 報告的過程中,你很可能就自己找到了解決方法或權宜之計。
别動辄聲稱找到 Bug
當你在使用軟體中遇到問題,除非你非常、非常的有根據,不要動辄聲稱找到了 Bug。提示:除非你能提供解決問題的源代碼更新檔,或者提供回歸測試來表明前一版本中行為不正确,否則你都多半不夠完全确信。這同樣适用在網頁和檔案,如果你(聲稱)發現了檔案的
Bug
,你應該能提供相應位置的修正或替代檔案。
請記得,還有許多其它使用者沒遇到你發現的問題,否則你在閱讀檔案或搜尋網頁時就應該發現了(你在抱怨前已經做了這些,是吧?)。這也意味着很有可能是你弄錯了而不是軟體本身有問題。
編寫軟體的人總是非常辛苦地使它盡可能完美。如果你聲稱找到了 Bug,也就是在質疑他們的能力,即使你是對的,也有可能會冒犯到其中某部分人。當你在标題中嚷嚷着有
Bug
時,這尤其嚴重。
提問時,即使你私下非常确信已經發現一個真正的 Bug,最好寫得像是你做錯了什麼。如果真的有 Bug,你會在回複中看到這點。這樣做的話,如果真有 Bug,維護者就會向你道歉,這總比你惹惱别人然後欠别人一個道歉要好一點。
低聲下氣不能代替你的功課
有些人明白他們不該粗魯或傲慢的提問并要求得到答複,但他們選擇另一個極端 —— 低聲下氣:
我知道我隻是個可悲的新手,一個撸瑟,但...
。這既使人困擾,也沒有用,尤其是伴随着與實際問題含糊不清的描述時更令人反感。
别用原始靈長類動物的把戲來浪費你我的時間。取而代之的是,盡可能清楚地描述背景條件和你的問題情況。這比低聲下氣更好地定位了你的位置。
有時網頁論壇會設有專為新手提問的版面,如果你真的認為遇到了初學者的問題,到那去就是了,但一樣别那麼低聲下氣。
描述問題症狀而非你的猜測
告訴黑客們你認為問題是怎樣造成的并沒什麼幫助。(如果你的推斷如此有效,還用向别人求助嗎?),是以要确信你原原本本告訴了他們問題的症狀,而不是你的解釋和理論;讓黑客們來推測和診斷。如果你認為陳述自己的猜測很重要,清楚地說明這隻是你的猜測,并描述為什麼它們不起作用。
蠢問題
我在編譯核心時接連遇到 SIG11 錯誤,
我懷疑某條飛線搭在主機闆的走線上了,這種情況應該怎樣檢查最好?
聰明問題
我的組裝電腦是 FIC-PA2007 主機闆搭載 AMD K6/233 CPU(威盛 Apollo VP2 晶片組),
256MB Corsair PC133 SDRAM 記憶體,在編譯核心時,從開機 20 分鐘以後就頻頻産生 SIG11 錯誤,
但是在頭 20 分鐘内從沒發生過相同的問題。重新啟動也沒有用,但是關機一晚上就又能工作 20 分鐘。
所有記憶體都換過了,沒有效果。相關部分的标準編譯記錄如下…。
由于以上這點似乎讓許多人覺得難以配合,這裡有句話可以提醒你:
所有的診斷專家都來自密蘇裡州。
美國國務院的官方座右銘則是:
讓我看看
(出自國會議員 Willard D. Vandiver 在 1899 年時的講話:
我來自一個出産玉米,棉花,牛蒡和民主黨人的國家,滔滔雄辯既不能說服我,也不會讓我滿意。我來自密蘇裡州,你必須讓我看看。
) 針對診斷者而言,這并不是一種懷疑,而隻是一種真實而有用的需求,以便讓他們看到的是與你看到的原始證據盡可能一緻的東西,而不是你的猜測與歸納的結論。是以,大方的展示給我們看吧!
按發生時間先後列出問題症狀
問題發生前的一系列操作,往往就是對找出問題最有幫助的線索。是以,你的說明裡應該包含你的操作步驟,以及機器和軟體的反應,直到問題發生。在指令行處理的情況下,提供一段操作記錄(例如運作腳本工具所生成的),并引用相關的若幹行(如 20 行)記錄會非常有幫助。
如果挂掉的程式有診斷選項(如 -v 的詳述開關),試着選擇這些能在記錄中增加調試資訊的選項。記住,
多
不等于
好
。試着選取适當的調試級别以便提供有用的資訊而不是讓讀者淹沒在垃圾中。
如果你的說明很長(如超過四個段落),在開頭簡述問題,接下來再按時間順序詳述會有所幫助。這樣黑客們在讀你的記錄時就知道該注意哪些内容了。
描述目标而不是過程
如果你想弄清楚如何做某事(而不是報告一個 Bug),在開頭就描述你的目标,然後才陳述重制你所卡住的特定步驟。
經常尋求技術幫助的人在心中有個更高層次的目标,而他們在自以為能達到目标的特定道路上被卡住了,然後跑來問該怎麼走,但沒有意識到這條路本身就有問題。結果要費很大的勁才能搞定。
蠢問題
我怎樣才能從某繪圖程式的顔色選擇器中取得十六進制的的 RGB 值?
聰明問題
我正試着用替換一幅圖檔的色碼(color table)成自己標明的色碼,我現在知道的唯一方法是編輯每個色碼區塊(table slot),
但卻無法從某繪圖程式的顔色選擇器取得十六進制的的 RGB 值。
第二種提問法比較聰明,你可能得到像是
建議采用另一個更合适的工具
的回複。
别要求使用私人電郵回複
黑客們認為問題的解決過程應該公開、透明,此過程中如果更有經驗的人注意到不完整或者不當之處,最初的回複才能夠、也應該被糾正。同時,作為提供幫助者可以得到一些獎勵,獎勵就是他的能力和學識被其他同行看到。
當你要求私下回複時,這個過程和獎勵都被中止。别這樣做,讓回複者來決定是否私下回答 —— 如果他真這麼做了,通常是因為他認為問題編寫太差或者太膚淺,以至于對其它人沒有興趣。
這條規則存在一條有限的例外,如果你确信提問可能會引來大量雷同的回複時,那麼這個神奇的提問句會是
向我發電郵,我将為論壇歸納這些回複
。試着将郵件清單或新聞群組從洪水般的雷同回複中解救出來是非常有禮貌的 —— 但你必須信守諾言。
清楚明确的表達你的問題以及需求
漫無邊際的提問是近乎無休無止的時間黑洞。最有可能給你有用答案的人通常也正是最忙的人(他們忙是因為要親自完成大部分工作)。這樣的人對無節制的時間黑洞相當厭惡,是以他們也傾向于厭惡那些漫無邊際的提問。
如果你明确表述需要回答者做什麼(如提供指點、發送一段代碼、檢查你的更新檔、或是其他等等),就最有可能得到有用的答案。因為這會定出一個時間和精力的上限,便于回答者能集中精力來幫你。這麼做很棒。
要了解專家們所處的世界,請把專業技能想像為充裕的資源,而回複的時間則是稀缺的資源。你要求他們奉獻的時間越少,你越有可能從真正專業而且很忙的專家那裡得到解答。
是以,界定一下你的問題,使專家花在辨識你的問題和回答所需要付出的時間減到最少,這技巧對你有用答案相當有幫助 —— 但這技巧通常和簡化問題有所差別。是以,問
我想更好的了解 X,可否指點一下哪有好一點說明?
通常比問
你能解釋一下 X 嗎?
更好。如果你的代碼不能運作,通常請别人看看哪裡有問題,比要求别人替你改正要明智得多。
詢問有關代碼的問題時
别要求他人幫你調試有問題的代碼,不提示一下應該從何入手。張貼幾百行的代碼,然後說一聲:
它不能工作
會讓你完全被忽略。隻貼幾十行代碼,然後說一句:
在第七行以後,我期待它顯示 <x>,但實際出現的是 <y>
比較有可能讓你得到回應。
最有效描述程式問題的方法是提供最精簡的 Bug 展示測試用例(bug-demonstrating test case)。什麼是最精簡的測試用例?那是問題的縮影;一小個程式片段能剛好展示出程式的異常行為,而不包含其他令人分散注意力的内容。怎麼制作最精簡的測試用例?如果你知道哪一行或哪一段代碼會造成異常的行為,複制下來并加入足夠重制這個狀況的代碼(例如,足以讓這段代碼能被編譯/直譯/被應用程式處理)。如果你無法将問題縮減到一個特定區塊,就複制一份代碼并移除不影響産生問題行為的部分。總之,測試用例越小越好(檢視話不在多而在精一節)。
一般而言,要得到一段相當精簡的測試用例并不太容易,但永遠先嘗試這樣做的是種好習慣。這種方式可以幫助你了解如何自行解決這個問題 —— 而且即使你的嘗試不成功,黑客們也會看到你在嘗試取得答案的過程中付出了努力,這可以讓他們更願意與你合作。
如果你隻是想讓别人幫忙審查(Review)一下代碼,在信的開頭就要說出來,并且一定要提到你認為哪一部分特别需要關注以及為什麼。
别把自己家庭作業的問題貼上來
黑客們很擅長分辨哪些問題是家庭作業式的問題;因為我們中的大多數都曾自己解決這類問題。同樣,這些問題得由你來搞定,你會從中學到東西。你可以要求給點提示,但别要求得到完整的解決方案。
如果你懷疑自己碰到了一個家庭作業式的問題,但仍然無法解決,試試在使用者群組,論壇或(最後一招)在項目的使用者郵件清單或論壇中提問。盡管黑客們會看出來,但一些有經驗的使用者也許仍會給你一些提示。
去掉無意義的提問句
避免用無意義的話結束提問,例如
有人能幫我嗎?
或者
這有答案嗎?
。
首先:如果你對問題的描述不是很好,這樣問更是畫蛇添足。
其次:由于這樣問是畫蛇添足,黑客們會很厭煩你 —— 而且通常會用邏輯上正确,但毫無意義的回答來表示他們的蔑視, 例如:
沒錯,有人能幫你
或者
不,沒答案
。
一般來說,避免用
是或否
、
對或錯
、
有或沒有
類型的問句,除非你想得到是或否類型的回答。
即使你很急也不要在标題寫 緊急
緊急
這是你的問題,不是我們的。宣稱
緊急
極有可能事與願違:大多數黑客會直接删除無禮和自私地企圖即時引起關注的問題。更嚴重的是,
緊急
這個字(或是其他企圖引起關注的标題)通常會被垃圾信過濾器過濾掉 —— 你希望能看到你問題的人可能永遠也看不到。
有半個例外的情況是,如果你是在一些很高調,會使黑客們興奮的地方,也許值得這樣去做。在這種情況下,如果你有時間壓力,也很有禮貌地提到這點,人們也許會有興趣回答快一點。
當然,這風險很大,因為黑客們興奮的點多半與你的不同。譬如從 NASA 國際空間站(International Space Station)發這樣的标題沒有問題,但用自我感覺良好的慈善行為或政治原因發肯定不行。事實上,張貼諸如
緊急:幫我救救這個毛絨絨的小海豹!
肯定讓你被黑客忽略或惹惱他們,即使他們認為毛絨絨的小海豹很重要。
如果你覺得這點很不可思議,最好再把這份指南剩下的内容多讀幾遍,直到你弄懂了再發文。
禮多人不怪,而且有時還很有幫助
彬彬有禮,多用
請
和
謝謝您的關注
,或
謝謝你的關照
。讓大家都知道你對他們花時間免費提供幫助心存感激。
坦白說,這一點并沒有比清晰、正确、精準并合法文法和避免使用專用格式重要(也不能取而代之)。黑客們一般甯可讀有點唐突但技術上鮮明的 Bug 報告,而不是那種有禮但含糊的報告。(如果這點讓你不解,記住我們是按問題能教給我們什麼來評價問題的價值的)
然而,如果你有一串的問題待解決,客氣一點肯定會增加你得到有用回應的機會。
(我們注意到,自從本指南釋出後,從資深黑客那裡得到的唯一嚴重缺陷回報,就是對預先道謝這一條。一些黑客覺得
先謝了
意味着事後就不用再感謝任何人的暗示。我們的建議是要麼先說
先謝了
,然後事後再對回複者表示感謝,或者換種方式表達感激,譬如用
謝謝你的關注
或
謝謝你的關照
。)
問題解決後,加個簡短的補充說明
問題解決後,向所有幫助過你的人發個說明,讓他們知道問題是怎樣解決的,并再一次向他們表示感謝。如果問題在新聞討論區或者郵件清單中引起了廣泛關注,應該在那裡貼一個說明比較恰當。
最理想的方式是向最初提問的話題回複此消息,并在标題中包含
已修正
,
已解決
或其它同等含義的明顯标記。在人來人往的郵件清單裡,一個看見讨論串
問題 X
和
問題 X - 已解決
的潛在回複者就明白不用再浪費時間了(除非他個人覺得
問題 X
的有趣),是以可以利用此時間去解決其它問題。
補充說明不必很長或是很深入;簡單的一句
你好,原來是網線出了問題!謝謝大家 – Bill
比什麼也不說要來的好。事實上,除非結論真的很有技術含量,否則簡短可愛的小結比長篇大論更好。說明問題是怎樣解決的,但大可不必将解決問題的過程複述一遍。
對于有深度的問題,張貼調試記錄的摘要是有幫助的。描述問題的最終狀态,說明是什麼解決了問題,在此之後才指明可以避免的盲點。避免盲點的部分應放在正确的解決方案和其它總結材料之後,而不要将此資訊搞成偵探推理小說。列出那些幫助過你的名字,會讓你交到更多朋友。
除了有禮貌和有内涵以外,這種類型的補充也有助于他人在郵件清單/新聞群組/論壇中搜尋到真正解決你問題的方案,讓他們也從中受益。
至少,這種補充有助于讓每位參與協助的人因問題的解決而從中得到滿足感。如果你自己不是技術專家或者黑客,那就相信我們,這種感覺對于那些你向他們求助的大師或者專家而言,是非常重要的。問題懸而未決會讓人灰心;黑客們渴望看到問題被解決。好人有好報,滿足他們的渴望,你會在下次提問時嘗到甜頭。
思考一下怎樣才能避免他人将來也遇到類似的問題,自問寫一份檔案或加個常見問題(FAQ)會不會有幫助。如果是的話就将它們發給維護者。
在黑客中,這種良好的後繼行動實際上比傳統的禮節更為重要,也是你如何透過善待他人而赢得聲譽的方式,這是非常有價值的資産。
如何解讀答案
RTFM 和 STFW:如何知道你已完全搞砸了
有一個古老而神聖的傳統:如果你收到
RTFM (Read The Fucking Manual)
的回應,回答者認為你應該去讀他媽的手冊。當然,基本上他是對的,你應該去讀一讀。
RTFM 有一個年輕的親戚。如果你收到
STFW(Search The Fucking Web)
的回應,回答者認為你應該到他媽的網上搜尋。那人多半也是對的,去搜尋一下吧。(更溫和一點的說法是 Google 是你的朋友!)
在論壇,你也可能被要求去爬爬論壇的舊文。事實上,有人甚至可能熱心地為你提供以前解決此問題的讨論串。但不要依賴這種關照,提問前應該先搜尋一下舊文。
通常,用這兩句之一回答你的人會給你一份包含你需要内容的手冊或者一個網址,而且他們打這些字的時候也正在讀着。這些答複意味着回答者認為
- 你需要的資訊非常容易獲得;
- 你自己去搜尋這些資訊比灌給你,能讓你學到更多。
你不應該是以不爽;依照黑客的标準,他已經表示了對你一定程度的關注,而沒有對你的要求視而不見。你應該對他祖母般的慈祥表示感謝。
如果還是搞不懂
如果你看不懂回應,别立刻要求對方解釋。像你以前試着自己解決問題時那樣(利用手冊,FAQ,網絡,身邊的高手),先試着去搞懂他的回應。如果你真的需要對方解釋,記得表現出你已經從中學到了點什麼。
比方說,如果我回答你:
看來似乎是 zentry 卡住了;你應該先清除它。
,然後,這是一個很糟的後續問題回應:
zentry 是什麼?
好的問法應該是這樣:
哦~~~我看過說明了但是隻有 -z 和 -p 兩個參數中提到了 zentries,而且還都沒有清楚的解釋如何清除它。你是指這兩個中的哪一個嗎?還是我看漏了什麼?
處理無禮的回應
很多黑客圈子中看似無禮的行為并不是存心冒犯。相反,它是直接了當,一針見血式的交流風格,這種風格更注重解決問題,而不是使人感覺舒服而卻模模糊糊。
如果你覺得被冒犯了,試着平靜地反應。如果有人真的做了出格的事,郵件清單、新聞群組或論壇中的前輩多半會招呼他。如果這沒有發生而你卻發火了,那麼你發火對象的言語可能在黑客社群中看起來是正常的,而你将被視為有錯的一方,這将傷害到你擷取資訊或幫助的機會。
另一方面,你偶爾真的會碰到無禮和無聊的言行。與上述相反,對真正的冒犯者狠狠地打擊,用犀利的語言将其駁得體無完膚都是可以接受的。然而,在行事之前一定要非常非常的有根據。糾正無禮的言論與開始一場毫無意義的口水戰僅一線之隔,黑客們自己莽撞地越線的情況并不鮮見。如果你是新手或外人,避開這種莽撞的機會并不高。如果你想得到的是資訊而不是消磨時光,這時最好不要把手放在鍵盤上以免冒險。
(有些人斷言很多黑客都有輕度的自閉症或亞斯伯格綜合症,缺少用于潤滑人類社會正常交往所需的能力。這既可能是真也可能是假的。如果你自己不是黑客,興許你認為我們腦袋有問題還能幫助你應付我們的古怪行為。隻管這麼幹好了,我們不在乎。我們喜歡我們現在這個樣子,并且通常對病患标記都有站得住腳的懷疑)。
Jeff Bigler 的觀察總結和這個相關也值得一讀 (tact filters)。
在下一節,我們會談到另一個問題,當你行為不當時所會受到的
冒犯
。
如何避免扮演失敗者
在黑客社群的論壇中有那麼幾次你可能會搞砸 —— 以本指南所描述到的或類似的方式。而你會在公開場合中被告知你是如何搞砸的,也許攻擊的言語中還會帶點夾七夾八的顔色。
這種事發生以後,你能做的最糟糕的事莫過于哀嚎你的遭遇、宣稱被口頭攻擊、要求道歉、高聲尖叫、憋悶氣、威脅訴諸法律、向其雇主報怨、忘了關馬桶蓋等等。相反地,你該這麼做:
熬過去,這很正常。事實上,它是有益健康且合理的。
社群的标準不會自行維持,它們是通過參與者積極而公開地執行來維持的。不要哭嚎所有的批評都應該通過私下的郵件傳送,它不是這樣運作的。當有人評論你的一個說法有誤或者提出不同看法時,堅持聲稱受到個人攻擊也毫無益處,這些都是失敗者的态度。
也有其它的黑客論壇,受過高禮節要求的誤導,禁止參與者張貼任何對别人文章挑毛病的消息,并聲稱
如果你不想幫助使用者就閉嘴。
結果造成有想法的參與者紛紛離開,這麼做隻會使它們淪為毫無意義的唠叨與無用的技術論壇。
誇張的講法是:你要的是“友善”(以上述方式)還是有用?兩個裡面挑一個。
記着:當黑客說你搞砸了,并且(無論多麼刺耳)告訴你别再這樣做時,他正在為關心你和他的社群而行動。對他而言,不理你并将你從他的生活中濾掉更簡單。如果你無法做到感謝,至少要表現得有點尊嚴,别大聲哀嚎,也别因為自己是個有戲劇性超級敏感的靈魂和自以為有資格的新來者,就指望别人像對待脆弱的洋娃娃那樣對你。
有時候,即使你沒有搞砸(或者隻是在他的想像中你搞砸了),有些人也會無緣無故地攻擊你本人。在這種情況下,抱怨倒是真的會把問題搞砸。
這些來找麻煩的人要麼是毫無辦法但自以為是專家的不中用家夥,要麼就是測試你是否真會搞砸的心理專家。其它讀者要麼不理睬,要麼用自己的方式對付他們。這些來找麻煩的人在給他們自己找麻煩,這點你不用操心。
也别讓自己卷入口水戰,最好不要理睬大多數的口水戰 —— 當然,這是在你檢驗它們隻是口水戰,并且未指出你有搞砸的地方,同時也沒有巧妙地将問題真正的答案藏于其後(這也是有可能的)。
不該問的問題
以下是幾個經典蠢問題,以及黑客沒回答時心中所想的:
問題:我能在哪找到 X 程式或 X 資源?
問題:我怎樣用 X 做 Y?
問題:如何設定我的 shell 提示?
問題:我可以用 Bass-o-matic 檔案轉換工具将 AcmeCorp 檔案轉換為 TeX 格式嗎?
問題:我的程式/設定/SQL 語句沒有用
問題:我的 Windows 電腦有問題,你能幫我嗎?
問題:我的程式不會動了,我認為系統工具 X 有問題
問題:我在安裝 Linux(或者 X )時有問題,你能幫我嗎?
問題:我怎麼才能破解 root 帳号/竊取 OP 特權/讀别人的郵件呢?
問題:我能在哪找到 X 程式或 X 資源?
回答:就在我找到它的地方啊,白癡 —— 搜尋引擎的那一頭。天哪!難道還有人不會用 Google 嗎?
問題:我怎樣用 X 做 Y?
回答:如果你想解決的是 Y ,提問時别給出可能并不恰當的方法。這種問題說明提問者不但對 X 完全無知,也對 Y 要解決的問題糊塗,還被特定形勢禁锢了思維。最好忽略這種人,等他們把問題搞清楚了再說。
問題:如何設定我的 shell 提示??
回答:如果你有足夠的智慧提這個問題,你也該有足夠的智慧去 RTFM,然後自己去找出來。
問題:我可以用 Bass-o-matic 檔案轉換工具将 AcmeCorp 檔案轉換為 TeX 格式嗎?
回答:試試看就知道了。如果你試過,你既知道了答案,就不用浪費我的時間了。
問題:我的{程式/設定/SQL 語句}不工作
回答:這不算是問題吧,我對要我問你二十個問題才找得出你真正問題的問題沒興趣 —— 我有更有意思的事要做呢。在看到這類問題的時候,我的反應通常不外如下三種
- 你還有什麼要補充的嗎?
- 真糟糕,希望你能搞定。
- 這關我屁事?
問題:我的 Windows 電腦有問題,你能幫我嗎?
回答:能啊,扔掉微軟的垃圾,換個像 Linux 或 BSD 的開源作業系統吧。
注意:如果程式有官方版 Windows 或者與 Windows 有互動(如 Samba),你可以問與 Windows 相關的問題, 隻是别對問題是由 Windows 作業系統而不是程式本身造成的回複感到驚訝, 因為 Windows 一般來說實在太爛,這種說法通常都是對的。
問題:我的程式不會動了,我認為系統工具 X 有問題
回答:你完全有可能是第一個注意到被成千上萬使用者反複使用的系統調用與函數庫檔案有明顯缺陷的人,更有可能的是你完全沒有根據。不同凡響的說法需要不同凡響的證據,當你這樣聲稱時,你必須有清楚而詳盡的缺陷說明檔案作後盾。
問題:我在安裝 Linux(或者 X )時有問題,你能幫我嗎?
回答:不能,我隻有親自在你的電腦上動手才能找到毛病。還是去找你當地的 Linux 使用群組者尋求實際的指導吧(你能在這兒找到使用者群組的清單)。
注意:如果安裝問題與某 Linux 的發行版有關,在它的郵件清單、論壇或本地使用者群組中提問也許是恰當的。此時,應描述問題的準确細節。在此之前,先用
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 時的奇怪現象。顯然 florbish 正在 grommicking,但結果出人意料。通常在 Athlon MP 主機闆上引起 grommicking 的原因是什麼?有誰知道接下來我該做些什麼測試才能找出問題?
這個家夥,從另一個角度來看,值得去回答他。他表現出了解決問題的能力,而不是坐等天上掉答案。
在最後一個問題中,注意
告訴我答案
和
給我啟示,指出我還應該做什麼診斷工作
之間微妙而又重要的差別。
事實上,後一個問題源自于 2001 年 8 月在 Linux 核心郵件清單(lkml)上的一個真實的提問。我(Eric)就是那個提出問題的人。我在 Tyan S2464 主機闆上觀察到了這種無法解釋的鎖定現象,清單成員們提供了解決這一問題的重要資訊。
通過我的提問方法,我給了别人可以咀嚼玩味的東西;我設法讓人們很容易參與并且被吸引進來。我顯示了自己具備和他們同等的能力,并邀請他們與我共同探讨。通過告訴他們我所走過的彎路,以避免他們再浪費時間,我也表明了對他們寶貴時間的尊重。
事後,當我向每個人表示感謝,并且贊賞這次良好的讨論經曆的時候, 一個 Linux 核心郵件清單的成員表示,他覺得我的問題得到解決并非由于我是這個清單中的名人,而是因為我用了正确的方式來提問。
黑客從某種角度來說是擁有豐富知識但缺乏人情味的家夥;我相信他是對的,如果我像個乞讨者那樣提問,不論我是誰,一定會惹惱某些人或者被他們忽視。他建議我記下這件事,這直接導緻了本指南的出現。
如果得不到回答
如果仍得不到回答,請不要以為我們覺得無法幫助你。有時隻是看到你問題的人不知道答案罷了。沒有回應不代表你被忽視,雖然不可否認這種差别很難區分。
總的來說,簡單的重複張貼問題是個很糟的點子。這将被視為無意義的喧鬧。有點耐心,知道你問題答案的人可能生活在不同的時區,可能正在睡覺,也有可能你的問題一開始就沒有組織好。
你可以通過其他管道獲得幫助,這些管道通常更适合初學者的需要。
有許多網上的以及本地的使用者群組,由熱情的軟體愛好者(即使他們可能從沒親自寫過任何軟體)組成。通常人們組建這樣的團體來互相幫助并幫助新手。
另外,你可以向很多商業公司尋求幫助,不論公司大還是小。别為要付費才能獲得幫助而感到沮喪!畢竟,假使你的汽車發動機汽缸密封圈爆掉了 —— 完全可能如此 —— 你還得把它送到修車鋪,并且為維修付費。就算軟體沒花費你一分錢,你也不能強求技術支援總是免費的。
對像是 Linux 這種大衆化的軟體,每個開發者至少會對應到上萬名使用者。根本不可能由一個人來處理來自上萬名使用者的求助電話。要知道,即使你要為這些協助付費,和你所購買的同類軟體相比,你所付出的也是微不足道的(通常封閉源代碼軟體的技術支援費用比開源軟體的要高得多,且内容也沒那麼豐富)。
如何更好地回答問題
态度和善一點。問題帶來的壓力常使人顯得無禮或愚蠢,其實并不是這樣。
對初犯者私下回複。對那些坦誠犯錯之人沒有必要當衆羞辱,一個真正的新手也許連怎麼搜尋或在哪找常見問題都不知道。
如果你不确定,一定要說出來!一個聽起來權威的錯誤回複比沒有還要糟,别因為聽起來像個專家很好玩,就給别人亂指路。要謙虛和誠實,給提問者與同行都樹個好榜樣。
如果幫不了忙,也别妨礙他。不要在實際步驟上開玩笑,那樣也許會毀了使用者的設定 —— 有些可憐的呆瓜會把它當成真的指令。
試探性的反問以引出更多的細節。如果你做得好,提問者可以學到點東西 —— 你也可以。試試将蠢問題轉變成好問題,别忘了我們都曾是新手。
盡管對那些懶蟲抱怨一聲 RTFM 是正當的,能指出檔案的位置(即使隻是建議個 Google 搜尋關鍵詞)會更好。
如果你決定回答,就請給出好的答案。當别人正在用錯誤的工具或方法時别建議笨拙的權宜之計(workaround),應推薦更好的工具,重新界定問題。
正面的回答問題!如果這個提問者已經很深入的研究而且也表明已經試過 X 、 Y 、 Z 、 A 、 B 、 C 但沒得到結果,回答
試試看 A 或是 B
或者
試試 X 、 Y 、 Z 、 A 、 B 、 C
并附上一個連結一點用都沒有。
幫助你的社群從問題中學習。當回複一個好問題時,問問自己
如何修改相關檔案或常見問題檔案以免再次解答同樣的問題?
,接着再向檔案維護者發一份更新檔。
如果你是在研究一番後才做出的回答,展現你的技巧而不是直接端出結果。畢竟
授人以魚不如授人以漁
。
原文轉載于:https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way