今天來給大家聊一聊 Stack Overflow,Stack Overflow 是什么呢?
什么是 Stack Overflow?
Stack Overflow 是一個全球最大的技術問答網站,作為一個程序員不得不知的網站。程序員可以在上面進行提出問題,別的程序員會免費幫大家解答這個問題。
然后這個問題還可以被打分,比如說頂,這個問題就會被頂上去,就會被更多人搜索到,基本上遇到的問題都可以在 Stack Overflow 上找到答案,所以很少會去 Stack Overflow 上進行提問,但是提問問題作為一個程序員基本技能,還是要聊一聊的。
如何優雅地提問?
在你准備要提出技術問題前,請先做到以下事情:
- 嘗試在你准備提問的論壇的舊文章中搜索答案。
- 嘗試上網搜索以找到答案。
- 嘗試閱讀手冊以找到答案。
- 嘗試閱讀常見問題文件(FAQ)以找到答案。
- 嘗試自己檢查或試驗以找到答案
- 向你身邊的大佬打聽以找到答案。
- 如果你是程序開發者,請嘗試閱讀源代碼以找到答案。
當你提出問題的時候,請先表明你已經做了上述的努力;這將有助於樹立你並不是一個不勞而獲且浪費別人的時間的提問者。如果你能一並表達在做了上述努力的過程中所學到的東西會更好,因為我們更樂於回答那些表現出能從答案中學習的人的問題。
在了解了上面的內容后,接下來,我們來看一下提問的三要素:
- 環境描述:操作系統,JDK 版本,軟件/工具版本等可能和問題相關的信息
- 問題描述:描述要解決的問題和思路。可能要解決的問題或者思路本身就有問題。如果問題和程序執行的錯誤有關,則要把錯誤信息描述詳盡,包括 exception trace 等
- 代碼+配置:和問題可能相關的代碼和配置
我認為在 Stack Overflow 上提問的核心:
要自己先思考,先嘗試解決。問題要清晰明了有條理,要讓想回答的人能夠重現所說的問題。而不是甩手掌櫃一樣不清不楚的問:XX 應該怎么搞?XX 應該怎么弄?XX 程序運行出錯怎么改?像這種一句話的提問,一般不會有人想去回答,被人踩幾下,這個問題就消失了。
提問/回答筆記
提問:
- In my limited experience with .. 謙虛表達自己在某方面的經驗
- I am searching for a long time on net. But no use. Please help or try to give some ideas how to achieve this. 找了很久未果,求助攻
- after searching around for a decent XX solution and found that everything out there was difficult to use. 找了N種方法都發現太TM難了。
- I' ve looked around and apparently I've got the choice between these libraries/ solutions: 說明自己是努力搜索過的,然后目前有了哪幾種方案
- which seems it's a promising solution. 看起來是一個好解決方案
- I' ve tried multiple variations of this, but none of them seem to work. Any ideas? 試了很多種方法都無效,求助
- Wanted to know if it's good practice to do that and what would be the best way to do that? 我的做法是否正確,是否有更好的法子?
- Thanks in advance. 先行謝過
回答問題:
- If I understand you correctly, you want to xxx 如果我沒理解錯,你想。。
- Could you provided more details about your use case ? Can you provide more xml and code setting the url ? 提供更詳細
當別人回答你的問題后,你對回答的評論:
Thank you for your answer sincerely 感謝回答
總結
提問問題是程序員的基本技能,如何能夠更好地去提問需要我們在一次次的提問中成長,把英文學好也是不可或缺的,不僅在 Stack Overflow 上提問如此,好多框架的博客都是英文寫的,因此大家可以多多閱讀外文博客,逐步提高自己的英語水平。
參考
How To Ask Questions The Smart Way
如何優雅地使用 Stack Overflow?