【學術(shù)相關(guān)】提問的智慧
大家好,幾分鐘的時間,教大家如何正確的提問以獲得你滿意的答案。
無論是學習還是工作中,大家總會遇到各種各樣的問題,比如程序無法運行、代碼讀不懂等等。
遇到問題去尋求他人的幫助本身是很正常的,但是,很多同學在遇到問題時,第一時間就會想到去尋求他人的幫助,而不是自己先嘗試著解決。
就像在剛學編程時,我們一看到屏幕上出現(xiàn)紅字報錯就會心慌,然后都不先仔細檢查一下就把代碼復制粘貼下來找別人幫忙看。結(jié)果最后發(fā)現(xiàn),竟然是自己敲錯了一個標點符號!場面一度十分尷尬。

其實,很多情況下,自己動手去解決問題的效率可能遠比尋求他人的幫助要高的多。因為當你將問題拋給別人時,首先要給對方描述問題,然后需要對方真正理解問題,才能進一步花時間去幫你分析解決。雙方不僅存在一個信息的收發(fā)過程,還存在很大的信息差,如果問題的描述和理解不當,可能溝通過程消耗的時間遠比解決問題的時間要長,多少有些本末倒置,而最壞的結(jié)果是,對方給了你一個完全錯誤的答案!

尤其是當你進入了一個大公司,就會更加意識到溝通的難度,而且大家都有自己的工作,誰都不喜歡被打斷,尤其是一些可能根本和自己無關(guān)的問題!

因此,在我們遇到問題時,先要嘗試自己去解決,如果實在束手無策,再去提問,而且要有智慧地提問!
今天給大家分享一本小書《提問的智慧》,是 GitHub 上的一個高星項目,并且被眾多開源項目引用,魚皮看完后收獲滿滿,學到了高效提問和回答技巧,又有信心去應(yīng)對未來的無限加班了。
下面列舉書中我覺得講的比較好的部分。

在提問之前
在你準備要通過電子郵件、新聞群組或者聊天室提出技術(shù)問題前,請先做到以下事情:
嘗試在你準備提問的論壇的舊文章中搜索答案。
嘗試上網(wǎng)搜索以找到答案。
嘗試閱讀手冊以找到答案。
嘗試閱讀常見問題文件(FAQ)以找到答案。
嘗試自己檢查或試驗以找到答案。
向你身邊的強者朋友打聽以找到答案。
如果你是程序開發(fā)者,請嘗試閱讀源代碼以找到答案。
當你提出問題的時候,請先表明你已經(jīng)做了上述的努力;這將有助于樹立你并不是一個不勞而獲且浪費別人的時間的提問者。如果你能一并表達在做了上述努力的過程中所學到的東西會更好,因為我們更樂于回答那些表現(xiàn)出能從答案中學習的人的問題。
運用某些策略,比如先用 Google 搜索你所遇到的各種錯誤信息(搜索 Google 論壇和網(wǎng)頁),這樣很可能直接就找到了能解決問題的文件或郵件列表線索。即使沒有結(jié)果,在郵件列表或新聞組尋求幫助時加上一句 我在 Google 中搜過下列句子但沒有找到什么有用的東西 也是件好事,即使它只是表明了搜索引擎不能提供哪些幫助。這么做(加上搜索過的字串)也讓遇到相似問題的其他人能被搜索引擎引導到你的提問來。
別著急,不要指望幾秒鐘的 Google 搜索就能解決一個復雜的問題。在向?qū)<仪笾?,再閱讀一下常見問題文件(FAQ)、放輕松、坐舒服一些,再花點時間思考一下這個問題。相信我們,他們能從你的提問看出你做了多少閱讀與思考,如果你是有備而來,將更有可能得到解答。不要將所有問題一股腦拋出,只因你的第一次搜索沒有找到答案(或者找到太多答案)。
準備好你的問題,再將問題仔細的思考過一遍,因為草率的發(fā)問只能得到草率的回答,或者根本得不到任何答案。越是能表現(xiàn)出在尋求幫助前你為解決問題所付出的努力,你越有可能得到實質(zhì)性的幫助。
小心別問錯了問題。如果你的問題基于錯誤的假設(shè),某個普通黑客(J. Random Hacker)多半會一邊在心里想著蠢問題…, 一邊用無意義的字面解釋來答復你,希望著你會從問題的回答(而非你想得到的答案)中汲取教訓。
絕不要自以為夠格得到答案,你沒有;你并沒有。畢竟你沒有為這種服務(wù)支付任何報酬。你將會是自己去掙到一個答案,靠提出有內(nèi)涵的、有趣的、有思維激勵作用的問題 —— 一個有潛力能貢獻社區(qū)經(jīng)驗的問題,而不僅僅是被動的從他人處索取知識。
另一方面,表明你愿意在找答案的過程中做點什么是一個非常好的開端。誰能給點提示?、我的這個例子里缺了什么?以及我應(yīng)該檢查什么地方比請把我需要的確切的過程貼出來更容易得到答復。因為你表現(xiàn)出只要有人能指個正確方向,你就有完成它的能力和決心。
RTFM 和 STFW
有一個古老而神圣的傳統(tǒng):如果你收到 RTFM (Read The Fucking Manual) 的回應(yīng),回答者認為你應(yīng)該去讀他媽的手冊。當然,基本上他是對的,你應(yīng)該去讀一讀。
RTFM 有一個年輕的親戚。如果你收到 STFW(Search The Fucking Web) 的回應(yīng),回答者認為你應(yīng)該到他媽的網(wǎng)上搜索。那人多半也是對的,去搜索一下吧。
更溫和一點的說法是 “Google 是你的朋友!”
好問題與蠢問題
舉一些例子,來說明怎樣聰明的提問;同一個問題的兩種問法被放在一起,一種是愚蠢的,另一種才是明智的。
蠢問題:
我可以在哪兒找到關(guān)于 Foonly Flurbamatic 的資料?
這種問法無非想得到 STFW 這樣的回答。
聰明問題:
我用 Google 搜索過 "Foonly Flurbamatic 2600",但是沒找到有用的結(jié)果。誰知道上哪兒去找對這種設(shè)備編程的資料?
這個問題已經(jīng) STFW 過了,看起來他真的遇到了麻煩。
蠢問題:
我從 foo 項目找來的源碼沒法編譯。它怎么這么爛?
他覺得都是別人的錯,這個傲慢自大的提問者。
聰明問題:
foo 項目代碼在 Nulix 6.2 版下無法編譯通過。我讀過了 FAQ,但里面沒有提到跟 Nulix 有關(guān)的問題。這是我編譯過程的記錄,我有什么做的不對的地方嗎?
提問者已經(jīng)指明了環(huán)境,也讀過了 FAQ,還列出了錯誤,并且他沒有把問題的責任推到別人頭上,他的問題值得被關(guān)注。
蠢問題:
我的主機板有問題了,誰來幫我?
某黑客對這類問題的回答通常是:好的,還要幫你拍拍背和換尿布嗎?,然后按下刪除鍵。
聰明問題:
我在 S2464 主機板上試過了 X 、 Y 和 Z ,但沒什么作用,我又試了 A 、 B 和 C 。請注意當我嘗試 C 時的奇怪現(xiàn)象。顯然 florbish 正在 grommicking,但結(jié)果出人意料。通常在 Athlon MP 主機板上引起 grommicking 的原因是什么?有誰知道接下來我該做些什么測試才能找出問題?
這個家伙,從另一個角度來看,值得去回答他。他表現(xiàn)出了解決問題的能力,而不是坐等天上掉答案。
在最后一個問題中,注意 告訴我答案 和 給我啟示,指出我還應(yīng)該做什么診斷工作 之間微妙而又重要的區(qū)別。
如何更好地回答問題
態(tài)度和善一點。問題帶來的壓力常使人顯得無禮或愚蠢,其實并不是這樣。
對初犯者私下回復。對那些坦誠犯錯之人沒有必要當眾羞辱,一個真正的新手也許連怎么搜索或在哪找常見問題都不知道。
如果你不確定,一定要說出來!一個聽起來權(quán)威的錯誤回復比沒有還要糟,別因為聽起來像個專家很好玩,就給別人亂指路。要謙虛和誠實,給提問者與同行都樹個好榜樣。
如果幫不了忙,也別妨礙他。不要在實際步驟上開玩笑,那樣也許會毀了使用者的設(shè)置 —— 有些可憐的呆瓜會把它當成真的指令。
試探性的反問以引出更多的細節(jié)。如果你做得好,提問者可以學到點東西 —— 你也可以。試試將蠢問題轉(zhuǎn)變成好問題,別忘了我們都曾是新手。
盡管對那些懶蟲抱怨一聲 RTFM 是正當?shù)模苤赋鑫募奈恢茫词怪皇墙ㄗh個 Google 搜索關(guān)鍵詞)會更好。
如果你決定回答,就請給出好的答案。當別人正在用錯誤的工具或方法時別建議笨拙的權(quán)宜之計(workaround),應(yīng)推薦更好的工具,重新界定問題。
正面的回答問題!如果這個提問者已經(jīng)很深入的研究而且也表明已經(jīng)試過 X、 Y、 Z、 A、 B、C 但沒得到結(jié)果,回答 試試看 A 或是 B 或者 試試 X 、 Y 、 Z 、 A 、 B 、 C 并附上一個鏈接一點用都沒有。
幫助你的社區(qū)從問題中學習。當回復一個好問題時,問問自己如何修改相關(guān)文件或常見問題文件以免再次解答同樣的問題?,接著再向文件維護者發(fā)一份補丁。
如果你是在研究一番后才做出的回答,展現(xiàn)你的技巧而不是直接端出結(jié)果。畢竟授人以魚不如授人以漁。
往期精彩回顧
獲取本站知識星球優(yōu)惠券,復制鏈接直接打開:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。
加入微信群請掃碼:
