概要:
這篇文章從“曾經(jīng)我是如何認為‘提問’這件事的、讀《提問的智慧》劲绪、提問與解決問題的能力”三個方面來介紹“如何提問”狡恬。
曾經(jīng)我是如何認為“提問”這件事的
在修讀計算機雙學位之初,我對如何建立解決問題的思路祷安,處理數(shù)據(jù)和過程這件事了解甚少兔乞,想來自己當時也問過一些家庭作業(yè)式的問題凉唐,甚至在一段代碼未經(jīng)測試的情況下去請教其思路的可行與否台囱。當時读整,我認為提問的態(tài)度和講清楚自己的思維過程很重要,站在學習理論課程的視角强品,這無可厚非屈糊,但卻忽視了最重要的事,提問是為了解決問題夫晌,問題的思路與解決方案的思路是相互促進的晓淀,如果提問者不是想通過自己的努力正確高效地解決問題鳄哭,那么他的提問很可能是紙上談兵,毫無貢獻锄俄、毫無意義勺拣,甚至會浪費他人的時間。
讀《提問的智慧》
提問之前
在通過電子郵件毅戈、新聞群組或者聊天室提出技術(shù)問題前愤惰,首先嘗試自己解決問題。如作者所說扇单,至少應該閱讀手冊奠旺、上網(wǎng)搜索施流,然后試驗自己找到的答案瞪醋。具體說來装诡,需要做如下準備工作:
- 嘗試在你準備提問的論壇的舊文章中搜索答案。
- 嘗試上網(wǎng)搜索以找到答案蚓土。
- 嘗試閱讀手冊以找到答案赖淤。
- 嘗試閱讀常見問題文件(FAQ)以找到答案咱旱。
- 嘗試自己檢查或試驗以找到答案绷耍。
- 嘗試向你身邊的強者朋友打聽以找到答案。
- 如果你是程序開發(fā)者诸典,請嘗試閱讀源代碼以找到答案崎苗。
這些準備有助于樹立提問者不是一個不勞而獲且浪費別人時間的人的形象,如果提問者能一并表達在做了上述努力的過程中所學到的東西會更有可能得到幫助肌蜻。
準備好問題后必尼,再將問題仔細的思考一遍,因為草率的發(fā)問只能得到草率的回答豆挽,或者根本得不到任何答案券盅,尤其是在問題是基于錯誤的假設時。越是能表現(xiàn)出在尋求幫助前你為解決問題所付出的努力但汞,越有可能得到實質(zhì)性的幫助。
提問時
向誰提問
1.慎選提問的論壇僵缺,不要在與主題不合的論壇上貼出你的問題踩叭,例如在探討進階技術(shù)問題的論壇張貼非常初級的問題;反之亦然自脯。
2.向項目郵件列表提問好過向單個專家提問斤富,因為好到足以單獨請教的問題對整個列表必然也是有益的;糟糕到不便向列表或群組請教的問題單獨請教也并不能得到預想的答復焕参。即使要單獨請教油额,電郵是相當危險的一種方式,既非熟人也沒有義務解決你問題的人發(fā)送私人電郵涩嚣。
3.不要在太多的不同新聞群組上重復轉(zhuǎn)貼同樣的問題掂僵。
如何描述問題
使用簡短、有意義且描述明確的標題
50字以內(nèi)的標題更可能抓住別人的注意阶淘,去掉毫無意義的問句互妓,去掉低聲下氣地描述自己的慘狀的句子,比如語法正確且清晰正確精準的語句給人留下好印象澈蚌,更重要的是言之有物灼狰。
問題描述言之有物
在問題的描述中要闡述清楚如下內(nèi)容:
- 仔細、清楚地描述你的問題或 Bug 的癥狀份汗。
- 描述問題發(fā)生的環(huán)境(機器配置、操作系統(tǒng)杯活、應用程序、以及相關(guān)的信息)吸重,提供經(jīng)銷商的發(fā)行版和版本號(如:Fedora Core 4嚎幸、Slackware 9.1等)。
- 描述在提問前你是怎樣去研究和理解這個問題的嫉晶。
- 描述在提問前為確定問題而采取的診斷步驟田篇。
- 描述最近做過什么可能相關(guān)的硬件或軟件變更。
- 盡可能的提供一個可以重現(xiàn)這個問題的可控環(huán)境的方法。
采用目的-差異式描述
描述問題癥狀而非你的猜測
告訴黑客們你認為問題是怎樣造成的并沒什么幫助坡疼。(如果你的推斷如此有效,還用向別人求助嗎闸氮?)教沾,因此要確信你原原本本告訴了他們問題的癥狀,而不是你的解釋和理論或悲;讓黑客們來推測和診斷堪唐。如果你認為陳述自己的猜測很重要,清楚地說明這只是你的猜測男公,并描述為什么它們不起作用合陵。
描述目標而不是過程
如果你想弄清楚如何做某事(而不是報告一個 Bug)澄阳,在開頭就描述你的目標碎赢,然后才陳述重現(xiàn)你所卡住的特定步驟执隧。經(jīng)常尋求技術(shù)幫助的人在心中有個更高層次的目標,而他們在自以為能達到目標的特定道路上被卡住了峦嗤,然后跑來問該怎么走屋摔,但沒有意識到這條路本身就有問題。結(jié)果要費很大的勁才能搞定装黑。
提問態(tài)度
解決問題的決心
誰能給點提示弓熏?、我的這個例子里缺了什么疚颊?以及我應該檢查什么地方比請把我需要的確切的過程貼出來更容易得到答復信认。因為你表現(xiàn)出只要有人能指個正確方向,你就有完成它的能力和決心其掂。
明確問題的發(fā)生范圍
如果你有龐大而復雜的測試樣例能重現(xiàn)程序掛掉的情境款熬,盡量將它剪裁得越小越好攘乒。
別要求他人幫你調(diào)試有問題的代碼,不提示一下應該從何入手盔夜。張貼幾百行的代碼,然后說一聲:它不能工作
會讓你完全被忽略返十。只貼幾十行代碼洞坑,然后說一句:在第七行以后迟杂,我期待它顯示 <x>排拷,但實際出現(xiàn)的是 <y>
比較有可能讓你得到回應锅尘。
如果你只是想讓別人幫忙審查一下代碼,在信的開頭就要說出來浪腐,并且一定要提到你認為哪一部分特別需要關(guān)注以及為什么顿乒。
低聲下氣不能代替應做的工作
有些人明白他們不該粗魯或傲慢的提問并要求得到答復,但他們選擇另一個極端 -- 低聲下氣這既使人困擾傍睹,也沒有用犹菱,尤其是伴隨著與實際問題含糊不清的描述時更令人反感腊脱。
提問者應該盡可能清楚地描述背景條件和你的問題情況龙亲。這比低聲下氣能更好地定位提問者的位置。
謙恭有禮
- 注意提問的語氣杜耙,不要吝嗇“請幫幫忙”之類的禮貌用語拂盯。
- 使用易于讀取且標準的格式發(fā)送問題。
- 即使緊急也不要把“緊急”二字表述出來团驱。
- 問題解決后,要及時簡短的回復問題解決的結(jié)果寸痢。
如何解讀答案
對于初學者而言紊选,重要的一點是,當你收到問題的回復時献烦,如果回復是“讓你再上網(wǎng)搜索或者查閱手冊”趣些,那么代表你把提問這件事搞砸了,而且通常這樣的建議都是對的拢操,你應該虛心的接受建議并且重新審視問題舶替,尋找解決方案。
提問與解決問題的能力
提問與解決問題的能力是彼此促進的舔庶,好的問題可以促進人的思維運轉(zhuǎn)陈醒、激勵解決問題的想法產(chǎn)生;好的解決問題的方法無不蘊含著如何提問的智慧弥鹦。因此爷辙,提出好的問題,對提問者和回答者都將大有裨益栓始。