歡迎持續關注閱讀,一起學習,共同交流(有興趣加 477819525君羊)。
在程序員世界裏,當提出一個技術問題時,你能得到怎樣的回答?這取決於挖出答案的難度,同樣取決於你提問的方法。本文意義在於幫助你提高發問技巧,以獲取你最想要的答案。
我們不想掩飾對這樣一些人的蔑視--他們不願思考,或者在發問前不去完成他們應該做的事。這種人只會謀殺時間--他們只願索取,從不付出,無端消耗我們的時間,而我們本可以把時間用在更有趣的問題或者更值得回答的人身上。我們稱這樣的人爲“失敗者”(由於歷史原因,我們有時把它拼作“lusers”)。
我們在很大程度上屬於志願者,從繁忙的生活中抽出時間來解惑答疑,而且時常被提問淹沒。所以我們無情的濾掉一些話題,特別是拋棄那些看起來象失敗者的傢伙,以便更高效的利用時間來回答勝利者的問題。
========
提問之前
========
當你提出問題的時候,首先要說明在此之前你幹了些什麼;這將有助於樹立你的形象:你不是一個妄圖不勞而獲的乞討者,不願浪費別人的時間。如果提問者能從答案中學到東西,我們更樂於回答他的問題。
周全的思考,準備好你的問題,草率的發問只能得到草率的回答,或者根本得不到任何答案。越表現出在尋求幫助前爲解決問題付出的努力,你越能得到實質性的幫助。
小心別問錯了問題。如果你的問題基於錯誤的假設,普通程序員通常會用無意義的字面解釋來答覆你,心裏想着“蠢問題...”,希望着你會從問題的回答(而非你想得到的答案)中汲取教訓。
決不要自以爲夠資格得到答案,你沒這種資格。畢竟你沒有爲這種服務支付任何報酬。你要自己去“掙”回一個答案,靠提出一個有內涵的,有趣的,有思維激勵作用的問題,而不僅僅是被動的從他人處索要知識--去掙到這個答案。
另一方面,表明你願意在找答案的過程中做點什麼,是一個非常好的開端。
“誰能給點提示?”、“我這個例子裏缺了什麼?”以及“我應該檢查什麼地方?”比“請把確切的過程貼出來”更容易得到答覆。因爲你顯得只要有人指點正確的方向,你就有完成它的能力和決心。
==========
明白你想問什麼
==========
漫無邊際的提問近乎無休無止的時間黑洞。最能給你有用答案的人也正是最忙的人(他們忙是因爲要親自完成大部分工作)。這樣的人對無節制的時間黑洞不太感冒,因此也可以說他們對漫無邊際的提問不大感冒。
如果你明確表述需要回答者做什麼(提供建議,發送一段代碼,檢查你的補丁或是別的),就最有可能得到有用的答案。這會定出一個時間和精力的上限, 便於回答者集中精力來幫你,這很湊效。
要理解專家們生活的世界,要把專業技能想象爲充裕的資源,而回復的時間則是貧乏的資源。解決你的問題需要的時間越少,越能從忙碌的專家口中掏出答案。
因此,優化問題的結構,儘量減少專家們解決它所需要的時間,會有很大的幫助--這通常和簡化問題有所區別。因此,問“我想更好的理解X,
能給點提示嗎?”通常比問“你能解釋一下X嗎?”更好。如果你的代碼不能工作,問問它有什麼地方不對,比要求別人替你修改要明智得多。
================
別問應該自己解決的問題
================
大牛總是善於分辨哪些問題應該由你自己解決;因爲我們中的大多數都曾自己解決這類問題。同樣,這些問題得由你來搞定,你會從中學到東西。
你可以要求給點提示,但別要求得到完整的解決方案。
==============
去除無意義的疑問
==============
別用無意義的話結束提問,例如“有人能幫我嗎?”或者“有答案嗎?”。
首先:如果你對問題的描述不很合適,這樣問更是畫蛇添足。其次:由於這樣問是畫蛇添足,大牛們會很厭煩你--而且通常會用邏輯上正確的回答來表 示他們的蔑視,例如:“沒錯,有人能幫你”或者“不,沒答案 ”。
======================
謙遜絕沒有害處,而且常幫大忙 x
======================
彬彬有禮,多用“請”和“先道個謝了”。讓大家都知道你對他們花費時間提供幫助心存感激。
然而,如果你有很多問題無法解決,禮貌將會增加你得到有用答案的機會。
(注意到,從資深程序員處得到的唯一嚴重缺陷反饋,就是對預先道謝這一條。一些程序員覺得“先謝了”的言外之意是過後就不會再感謝任何人了。我們的建議是:都道謝。)
==================
問題解決後,加個簡短說明
==================
問題解決後,向所有幫助過你的人發個說明,讓他們知道問題是怎樣解決 的,並再一次向他們表示感謝。如果問題在談論區域內引起了 廣泛關注,應該在那裏貼一個補充說明。
補充說明不必很長或是很深入;簡單的一句“你好,原來是網線出了問題!謝謝大家--Bill”比什麼也不說要強。事實上,除非結論真的很有技術含量,否則簡短可愛的小結比長篇學術論文更好。說明問題是怎樣解決的,但大可不必將解決問題的過程複述一遍。
最後(至少?),這種補充有助於所有提供過幫助的人從中得到滿足感。
如果你自己不是老手,那就相信我們,這種感覺對於那些你向他們求助的導師或者專家而言,是非常重要的。問題久拖未決會讓人灰心;大牛們渴望看到問題被解決。好人有好報,滿足他們的渴望,你會在下次貼出新問題時嚐到甜頭。
==========
三思而後問
==========
以下是幾個經典蠢問題,以及大牛在拒絕回答時的心中所想:
問題:我能在哪找到X程序?
問題:我的程序/配置/SQL申明沒有用
問題:我的Windows有問題,你能幫我嗎?
問題:我在安裝Linux(或者X)時有問題,你能幫我嗎?
問題:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢?
提問:我能在哪找到X程序?
回答:就在我找到它的地方啊蠢貨--搜索引擎的那一頭。天吶!
還有人不會用Google嗎?
提問:我的程序(配置、SQL申明)沒有用
回答:這不算是問題吧,我對找出你的真正問題沒興趣--如果要
我問你二十個問題才找得出來的話--我有更有意思的事要做呢。
在看到這類問題的時候,我的反應通常不外如下三種:
1. 你還有什麼要補充的嗎?
2. 真糟糕,希望你能搞定。
3. 這跟我有什麼鳥相關?
提問:我的Windows有問題,你能幫我嗎?
回答:能啊,扔掉萎軟的垃圾,換Linux吧。
提問:我在安裝Linux(或者X)時有問題,你能幫我嗎?
回答:不能,我只有親自在你的電腦上動手才能找到毛病。
還是去找你當地的Linux用戶組尋求手把手的指導吧(你能在這兒找到用戶組的清單)。
提問:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢?
回答:想要這樣做,說明你是個卑鄙小人;想找個黑客幫你,說明你是個白癡!