“提問的智慧”之程序員篇
譯文【51CTO精選譯文】無論你做什么事,你都會遇到需要提問的時候。對于技術人員來說尤其如此。網絡上曾流傳一文《提問的智慧》(如果你還沒看過,請自行搜索),雖然講的是黑客社區中的事情,但其智慧性令其成為了很多技術與非技術論壇的法典。
下面這篇文章和那篇經典的《提問的智慧》一樣,內容都是開發人員在社區中所能夠看見的真實的問題(唯一的不同可能是沒有那篇長吧)??傊?,如果你是一個程序員,遇到問題要在社區里發問,那么請一定不要忽略這位作者提出的建議——它們會幫你更好的得到你想要的答案。
我在stackoverflow.com(51CTO編者注:stackoverflow是英文界一個相當不錯的開發問答站,在這里推薦一下)上花費很多時間來回答各種各樣的問題,有些問題問得好,但有些問題簡直無法回答,優秀的開發人員應該知道如何提問才能最快獲得***的答案。
首先,我想說的是,如果你認為你還是一名程序員,如果你每天都沒有一點問題要問,那你一定正在錯誤中前行。問問題不要害羞,這沒什么丟人的,大師也會有不懂的地方。
由于我在各種各樣的問答網站上混了很長時間,看到過無數怪異的提問方法,根據我遇到的問題,提煉出幾點建議:
不要害怕過度描述你的問題
有些人似乎害怕在問題中泄露什么天機,不愿意帖出代碼片段,可能無關的詳細信息等,其實很多時候這些信息可能是解決問題至關重要的東西,當然也有一個限度,我不鼓勵你將整個類庫都貼出來,除非確有必要。
包括錯誤消息
如果我看到類似“它不工作了”,“它失效了”等問題,我一般會直接跳過。你不說清楚一點,叫人家怎么回答你呢?難道要讓人家來猜測你想問的是什么?你可能覺得有些信息沒必要帖出來,對于你而言,你可能是這么認為的,但對于想幫助你的人,他們肯定不太清楚這些,因此你一定要清楚到底發生了什么,即使是些微不足道的信息也要貼出來,當然包括錯誤信息。
簡要列出你的環境信息
我的另一篇文章“我痛恨那些還不知道如何報告BUG的人”也提到了這個問題,環境變量常常被忽略,多花幾秒鐘列出象軟件的詳細信息,版本號等對回答問題是很有幫助的。
你自己的推測
如果在你的問題中將你對問題的看法,以及自己所想到一些思路等帖出來,或許其它人看了就會受到啟發,或者發現你的錯誤之處,這樣即使沒人能準確回答你的問題,至少也可以獲得不少建議。
例子
雖然不是所有問題都可以舉一個例子,但如果有一個例子進行表達,那效果會相當好。如你的代碼片段,如果可以截圖也可以張貼關鍵的圖片,對于CSS這樣的問題,可能只有將你的代碼貼出來人家才有法回答。
提問前先自己嘗試找解決辦法
Stackoverflow上每天都有無數的問題通過Google簡單搜索一下就可以得到答案,但有些人偏偏要提出來,在張貼問題之前自我探索和研究應該是必需的,不要做一個懶人,那樣你會一直提不高;反之,即使你通過自我探索和研究最終也沒有找到解決辦法,但你會發現你又多學到了好多東西。
不要得罪回答你問題的人
大多數時候回答問題的人都是利用業務時間在幫助人,如果有人對你的提問做了響應,但沒有正面回答你的問題,而是進一步詢問你一些相關的內容,此時你應該耐心回答他們的詢問,可能還有一些人會直言不諱地說你“這個都不懂”或“這個太簡單了,搜索一下便知”,你也不要以為自己就很笨了,更不要回復一些不敬的話語。
這幾點還是很好做到吧!沒有人知道所有問題的答案,因此不要害羞提問,在遇到你能解決的問題時,也不要吝嗇你的回答。
提問的智慧,也是程序員的必修課。
原文:How Do GOOD Developers Ask Questions?
作者:Mike Bernat
【編輯推薦】