How To Ask Question

How To Ask Question

對那些不顧思考、或者在發文前不做他們該做的事的人的蔑視。那些人是時間殺手——他們只想索取,從不付出,消耗我們在更有趣的問題或更值得回答人的身上的時間。我們稱這樣的人爲失敗者(lusers)。

你不必在技術上很在行才能吸引住我們的注意,但你必須表現出能引導你變得在行的特質——機敏、有想法、善於觀察、樂於主動參與解決問題。

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

在提問之前

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

  1. 嘗試在你準備提問的論壇的舊文章中搜索答案。
  2. 嘗試上網搜索以找到答案。
  3. 嘗試以閱讀首層以找到答案。
  4. 嘗試閱讀常見文件(FAQ)以找到答案。
  5. 嘗試自己檢查或實驗以找到答案。
  6. 想你身邊的強者朋友打聽以找到答案。
  7. 如果你是程式開發者,請嘗試閱讀源碼以找到答案。

嘗試提出疑問的時候,請先表明你已經做了上述的努力:這將有助於梳理你並不是一個不勞而獲切浪費別人的時間的提問者。如果你能一併表達了做了上述努力的過程中所學到的東西更好,因爲我們更樂於回答那些表現出能從答案中學習的人的問題。

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

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

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

小心別問錯了問題。如果你的問題基於錯誤的假設,某個普通黑客(J.Random Hacker)多半會一邊在心裏想着“蠢問題”,一邊用無意識的字面解釋來答覆你,希望這你會從問題的回答(而非你想得到的答案)中吸取教訓。

絕不要自以爲狗哥得到答案,你並沒有:你並沒有。冰機你沒有爲這種服務支付任何報酬。你將會是自己去掙到一個答案,考提出有內涵的、有趣的、有思維激動作用的問題——一個有潛力能貢獻社羣經驗的問題,而不僅僅是被動的從他人處索取知識。

另一方面,表名你願意在找答案的過程中做點什麼是一個非常好的開端。“誰能給點提示”、“我的這個例子裏缺了什麼?”以及“我應該減產什麼地方”比“請把我需要的確切的過程貼出來”更容易得到答覆。因爲你表現出只要有人指個正確方向,你就有完成它的能力和決心。

當你提問時

慎選提問的論壇

小心選擇你要提問的場合。如果你做了下述的事情,你很能被忽略掉或者被看做失敗者:
- 在與主題不合的論壇上貼出你的問題
- 在探索進階技術問題的論壇非常初期的問題;反之亦然
- 在太多的不同新聞組上重複轉帖同樣的問題(cross-post)
- 向既非熟人也沒有義務解決你問題的人發送私人電郵

下列推薦幾個網站:谷歌開發者社區githubstackoverflowcodekkarsenalAndroid Libraries and ResourcesgrepcodeAndroid 開發文檔
(如果還有好的網站,歡迎推薦 共同學習 共同進步)

搞清楚你的主題!最經典的錯誤之一是在某種致力於跨平臺可一直語言、嵌套或工具的論壇中提關於Unix或Windows作業系統程序界面的問題。如果你不明白爲什麼這是打錯,最好在搞清楚這之間差異之前什麼也別問。

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

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

蠢問題:救命啊!我的必點不能正常顯示了!
聰明問題:X.org 6.8.1的滑鼠遊標會變形,某牌顯示卡MV1005晶片組。
更聰明問題:X.org 6.8.1的滑鼠遊標,在某牌顯示卡MV1005晶片組環境下-會變形

編寫 目標–差異式 描述的過程有助於你組織對問題的細緻思考。是什麼被影響了?僅僅是滑鼠遊標或者還有其他圓形?只在X.org的X版中出現?或只是出現6.8.1版中?是針對某牌顯示卡片組?或者是其中的MV1005型號?溢和黑客只需要瞄一眼就能夠立即明白你的環境和你遇到的問題。

話不在多而在精

別動輒聲稱找到Bug

可以低聲下氣,但還是要先做功課

描述問題症狀而非猜測

蠢問題

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

聰明問題

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

按發生時間先後列出問題症狀

如果你想弄清楚如何做某事,在開頭描述你的目標,然後才陳述重現你所卡主的特定步驟。
蠢問題

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

聰明問題

我正試着用替換一副圖片的色碼成自己選定的色嗎,我現在知道的唯一方法是編輯每個色碼塊,但卻無法從某個遠程式的顏色選擇器取得十六進制的RGB值。

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

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

如果你明確表述需要回答做什麼(如提供指點、發送一段程式碼、檢查你的不定、或者其他等等),就最有可能得到有用的答案,因爲這會定出一個事件和精力的上限,便於回答這集中精力來幫你。這麼做很棒。

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

所以,界定一下你的問題,是專家花在便是你的問題和回答所需要付出的時間減少到最少,這技巧對你的回答相當有幫助–但這技巧和簡化問題有所區別。因爲,問“我想更好理解X,可夠指點一下哪裏有好一點的說明?”通常比問“你能解釋一下X嗎?”更好。如果你的程式碼不能運作,通常請別人看看哪裏有問題,比要求別人替你改正明智得多。

詢問有關程式碼的提問時

被要求他人幫你有問題的代碼出錯而不提示應該從何入手。張貼幾百行的代碼,然後說一聲:“他不會動”會讓你完全被忽略。直貼十幾行代碼,然後說一句“在第七行以後,我期待它顯示,但世紀出現的是”比較有可能讓你得到迴應。

最有效描述程式問題的方法是提供最精簡的Bug展示測試示例(bug-demonstratinf test case)。什麼是最精簡的測試示例?那是問題的縮影:一個小程式片段能剛好展示出程式的異常行爲,而不包含其他令人分散注意力的內容。怎麼製作最精簡的測試用例?如果你知道哪一行或那一段程式碼會造成異常的行文,複製下來並加入足夠重現這個狀況的程式碼(例如,足以讓這段程式碼能被編譯/直譯/被應用程式處理)。如果你無法將問題所見到一個特定區域,就複製一份程式碼並移除不影響產生問題行爲的部分。總之,測試示例越小越好。

別把自己佳通作業的問題貼上來

去掉無意義的提問句

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

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

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

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

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

這是你的問題,不是我的問題。

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

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

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

問題解決後,向所有幫助過你的人發個說明,讓他們知道問題是怎樣解決的,並再一次向他們表示感謝。

最理想的方式是向最初提問的話題恢復此消息,並在標題中包含“已修正”,“已解決”或其他同等含義的明顯標記。

補充說明不必很長或是很深入:簡單的一句“你好,原來是網絡線除了問題!謝謝大家 -Bill”比什麼也不說要來的好。

如何戒賭答案

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

有一個古老而神聖的傳統:如果你收到RTFM(Read The Fucking Manual)的迴應,回答者認爲你應該讀那該死的手冊。當然,基本上他是對的,你應該去讀一讀。

RTFM有一個年輕的親戚。如果你收到STFW(Search TheFucking Web)的迴應,回答者認爲你應該到該死的網絡上搜索過了。那個人多半也是對的,去搜索一下吧。(更溫和一點的說法是Google是你的朋友

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

通常,用這兩句之一回答你的人會給你一份包含你需要內容的手冊或者一個網址,而且他們打這些字的時候也正在讀着。這些答覆意味着回答者認爲
- 你需要的諮詢非常容易獲得
- 你自己去搜索這些諮詢比灌給你能讓你學到更多。

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

如果還是搞不懂

如果你看不懂迴應,別立刻要求對方解釋。想你以前試着解決問題時那樣(利用手冊,FAQ,網絡,身邊的高手),先試着去搞懂他們的迴應。如果你真的需要對方解釋,記得表現出你已經從中學到了點什麼。

必反說,如果我回答你:“看來似乎是zentry卡住了;你應該先清除它。”然後,這是一個很糟糕的後續問題迴應:“zentry是什麼?”好的文法應該是這樣:“我~~~我看過說明了但是隻有 -z和-p兩個參數中提到了zentries,而且還都沒有清楚的解釋如何清除它。你是指這兩個中的哪一個嗎》還是我看漏了什麼?”

處理無理的迴應

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

如果你覺得被冒犯了,試着平靜反應。如果有人真的做了出格的事,郵件列表、新聞羣組或論壇中的前輩多半會招呼他。如果這沒有發生而你缺發貨了,那麼你發火了,那麼你發火對象的語言可能在黑客社區看起來是正常的,而你將被視爲有錯的一放,這將傷害到你獲取訊息或幫助的機會。

不該問的問題

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

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

問題:我怎樣用X做Y?

回答:如果你想解決的是Y,提問時別給出可能並不恰當的方法。這種問題說明提問者不但對X完全無知,也對Y要解決的問題糊塗,還被特定形式禁錮了思想。最好忽略這種人,等他們把問題好清楚了再說。

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

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

問題:我可以用Bass-o-matic文件轉換工具將AcmeCrop檔案轉換爲TeX格式嗎?

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

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

回答:這不算是問題吧,我對要我問你二十個問題才找得出你真正的問題沒興趣-我有更有意思的事要做呢。在看到這類問題的時候,我的反應通常不外如下三種
- 你還有什麼要補充的嗎?
- 真糟糕,希望你能搞定
- 這關我有什麼屁事?

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

回答:能啊,扔掉微軟的垃圾,換個像Linux或BSD的開放源碼作業系統吧。

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

問題:我的程式不會動了,我認爲系統工具X有問題

回答:你完全有可能是第一個注意到被成千上萬用戶反覆使用的系統呼叫與函式庫檔案有明顯缺陷的人,更有可能的是你完全沒有根據。不同凡響的說法需要不同凡響的證據,當你這樣聲稱時,你必須有清楚而詳細的缺陷說明文件做後盾。

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

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

注意:如果安裝問題與某Linux的發行版有關,在它的郵件列表、論壇或本地使用者羣組中提問也許是恰當的。此時,應描述問題的準確細節。再次之前,先用Linux和所有被懷疑的硬體做關鍵詞仔細搜尋。

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

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

好問題與蠢問題

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

我可以在哪兒找到關於Foonly Flurbamaticde 的資料?

這種文法無非想得到STFW這樣的回答。
聰明問題:

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

這個爲題已經STFW過了,看起來他真的遇到了麻煩。

發佈了37 篇原創文章 · 獲贊 88 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章