版權聲明
本文首發自微信公共帳號: 造物家聯盟英語(zaowujia0508);
無需授權即可轉載,甚至無需保留以上版權聲明;
轉載時請務必註明作者,否則將被視為侵權。
每一個愛學習的人
都置頂了「造物家聯盟英語」
How to Ask Questions the Smart Way (1)
點擊可跳轉英文頁面
前言
在黑客的世界裡,你提出一個技術問題後,最終能否得到滿意的答案,取決於你的提問方式。這個指南就是關於如何正確提問的。現在開源軟體已經越來越多了,你可以從高手、黑客那裡得到很多問題的解答。和黑客相比,一般的高手會對新手更耐心一些。但即便如此,如果你按照本指南中推薦的方式,像對待黑客那樣對待所有高手,你會更高效地獲得優質解答。
高手、黑客喜歡有挑戰性、需要深入思考的問題,如果不是這樣,我們也成不了黑客。如果你提出一個值得反覆咀嚼玩味的問題,我們會對你感激不盡。好的問題可以刺激我們的思維,可以加深我們對問題的理解,還經常揭露出我們之前沒有意識到、思考過的地方。
但黑客也並不是對新手和簡單的問題不予理睬,我們只是對那些提問前不願自己思考,不願自己做足功課的人態度粗魯。這種人是時間殺手,他們只知索取,從不付出,把我們本該花在更值得的問題和人上的時間都浪費了。我們回答問題的方式適合於那些真正對問題感興趣並且願意積極主動地參與到問題的解決中的人。我們從繁忙的工作中抽出時間回答問題,為了做到價值最大化,我們會果斷地過濾掉那些時間殺手的問題。
無知沒關係,裝白痴就不好了。你不需要現在就已經是個行家,但你要具備最終能使你成為一個高手的特質:機敏、深入思考、善於觀察、樂於主動參與問題的解決。如果你做不到,那你最好付錢請人回答你的問題,而不是讓黑客幫你。想快速得到解答的最好方法就是表現出你的聰明、自信、有自己對問題的思考,只是在某個特定問題上遇到了麻煩而已。
提問之前
1. 嘗試在你準備提問的論壇的舊文章中找答案
2. Google:既要搜索網頁也要搜索谷歌論壇
3. 嘗試閱讀官方指導手冊找答案
4. 嘗試閱讀常見問題文件(FAQ)找答案
5. 試著通過試驗尋找答案
6. 想想有沒有自己認識的朋友知道答案
7. 如果你是個程式設計師,嘗試通過讀源碼找答案
當你提問的時候,要說明自己已經做了上述努力,這樣對方就知道你不是個伸手黨,幫助你不是在浪費時間。最好同時說明你從這些嘗試當中學到了什麼,因為我們更樂於幫助那些真正能夠從答案中學到東西的人。
遇到任何錯誤信息提示,都可以直接用Google搜索那些錯誤提示,這可能會直接搜到可以解決問題的文件。即使找不到,在提問時說明「我搜索了這些關鍵字,但沒找到任何有用的東西」也是個好習慣,因為它至少表明這些問題是搜索不到結果的。這也會把那些遇到相似問題的人通過搜尋引擎引導到你的帖子。
別著急,不要期望隨便Google一下就能解決複雜的問題。讀讀手冊、FAQ等等,努力思考,嘗試著獨立解決這個問題。真正的高手能夠從你的提問方式中分辨出你在提問前做了多少準備和思考,他們更願意幫助那些提問前已經嘗試獨立解決問題的人。
絕對不要認為別人有義務幫助你,你並沒有付錢給對方。你只能通過提出一個經過自己努力搜索、思考的,有價值的問題來爭取獲得答案。要知道一個好問題的解答,不只會讓你自己取得進步,也會為整個社群做出貢獻。
「誰能給個提示嗎?」,「請問我的案例中缺了什麼?」,「請問我該去哪個網站找答案?」,這樣的提問方式更能獲得幫助,因為這表明你非常願意在尋找答案的過程中積極主動、付出努力,只要有人能指出方向,你就有完成的能力和決心。
「請把我需要的詳細答案給我」,這樣的提問方式令人厭惡,因為這表明你是「飯來張口,衣來伸手」。
提問之時
一、找對地方
慎選提問的論壇
1. 不要去與主題不合的論壇提問。黑客為防止論壇的溝通渠道被無關的東西幹擾,會刪除那些搞錯地方的問題。所以第一步就是要Google找到與你的問題最相關的論壇,先去看舊文章、FAQ等等,如果經過上述努力依然找不到答案,那就發帖提問吧。
2. 不要去進階技術論壇提問太過初級的問題,反之亦然。選擇論壇、討論組或郵件列表的時候,不要太過相信它們的名字,閱讀About、FAQ等來確定這是不是與你的問題相關的地方。發帖前先讀一點舊文,這樣你能對它們的文化、做事方式更了解。
3. 不要把同一個問題同時轉帖太多個討論組。這會像機關槍掃射一樣,會打擾大家。要一步步慢慢來。
4. 不要給一個既不是熟人也沒有義務回答你的問題的人發私人郵件。向自己不熟悉的人或論壇發郵件是很危險的。不要假定一個提供內容豐富的網頁的人就會願意做你的免費顧問。也不要對自己的問題是否會受到歡迎做太過樂觀的估計,如果你不確定自己的問題在這裡是否會受歡迎,那就去別處提問,或者乾脆不要發郵件。
事實上,那些高階黑客和流行軟體的創造者們已經收到了太多的錯發信息、郵件。如果你不以正確的方式提問,你就會是壓死駱駝的最後一棵稻草。很多自願給大家解答的黑客後來選擇退出就是因為以錯誤的方式提問的私人郵件洶湧而來,讓人不堪承受。
Stack Overflow
近些年來,Stack Exchange community 已經成為了回答技術問題和其他相關問題的主要社群,尤其是對於那些開放源碼的程序來說是首選。
先Google,因為Google索引是即時的,有其他人問過類似問題的可能性很大,這時Stack Exchange 網站會排在Google搜索結果的前面。如果Google後什麼都沒找到,那就再去特定的相關網站搜索。使用標籤搜索會更精準。
如果還是搜不到答案,就在與你的問題最相關的網站發帖提問。發帖要符合格式,尤其對於代碼方面的問題,要添加與你的問題主題相關的標籤,包括編程的語言、作業系統、使用的框架等。如果回答者說需要你提供額外的信息,請在你的主貼中添加,這樣其他遇到相似問題的人能更容易地通過你的帖子得到答案。如果得到了任何有幫助的答案,一定要給對方點讚。如果有答案解決了你的問題,請標明這是正確答案。
Stack Exchange 已經有超過100個網站,但以下是最常用的幾個:
Super User 是問通用的電腦使用相關問題的網站。如果你遇到聯網之類的問題,請到這裡。
Stack Overflow 是問編程問題的網站。
Server Fault 是問伺服器和網絡管理問題的網站。
網站和IRC論壇
通過論壇和IRC(聊天程序)頻道提供用戶支持的趨勢漸增,而郵件更多地用於程序開發者之間的交流。所以,先去搜索這些論壇、IRC頻道。
你當地的用戶組織,或者你的電腦系統的新版發布時,都可能在宣傳一些幫助新人的論壇或IRC(即時聊天)頻道。當你是個零基礎小白,常被一些很簡單、基礎的問題攔住去路時,這是你提問的好地方。這些有廣告贊助的IRC頻道都是歡迎你來提問的,並且你一般可以立即得到回覆。
如果你只在特定的Linux版本中程序出現問題(這很常見),在去該程序的論壇之前最好先去該發行版本的論壇諮詢,否則你得到的回答很可能是—— 使用我們的版本。
在IRC頻道,最好不要一下拋出一大段的問題描述,對方會暈掉。最好先儘可能簡短地描述你的問題來開始你們的交流。
還解決不了?使用郵件列表
當項目提供開發者郵件列表時,向列表而不是其中的個別成員提問,這樣做有以下幾個原因:
任何值得某個開發者回答的問題,對整個項目組也用價值。相反,如果你的問題對整個項目組來說太愚蠢,那也就更沒有理由去打擾個別的開發者了。
通過列表問問題可以分散開發者的負擔,不致使個別開發者太忙。
大部分郵件列表都會被存檔並被搜尋引擎收錄。如果你通過郵件列表的提問得到回答,將來其他遇到相似問題的人就不用再重複提問。
如果某些問題經常被問到,開發者會據此改善說明文件或軟體本身。但如果你私聊,那開發者就無法統計哪些問題是會被經常問到的。
如果一個項目既有使用者論壇又有開發者論壇,而你並不想研究他們的源碼,那就請你去使用者論壇提問。不要以為開發者論壇會歡迎你們這些使用者,他們多半會把你的提問視為影響他們開發的噪音。
然而,如果你確認自己的問題是足夠有價值的,並且在使用者論壇裡好幾天都得不到答案,那就去開發者論壇試試。你最好先在開發者論壇潛伏几天,看看舊文章,了解他們的「風俗習慣」,然後再發帖子。
如果你找不到項目的郵件列表,只有維護者的郵件地址,那就發郵件給他。但不要認為項目的郵件列表就一定不存在,或許只是你沒找到,在你發出的郵件中要說明這一點。並且要說明可以幫忙把郵件之間轉給相關負責人。
讓回復更容易進行。以「請回復到.」的郵件多半不會得到回覆。如果你都不願意花幾秒鐘在客戶端設置一下回復地址,那對方也不願花時間回答你的問題。
在論壇中要求通過郵件給你解答是無理的要求,除非你認為郵件內容有敏感信息。如果你只想在有人在論壇中回答時得到郵件提醒,那大多數論壇都支持這一功能。
▲ 陳洪偉,微信二維碼,加入請備註姓名
微信公眾號:zaowujia0508
一個每天都會更新的微信公眾號。
擴展閱讀是今年寫得幾篇文章,不著急,慢慢來:
(點擊文字即可跳轉)
如果你想看我的朋友圈,
可以加我的個人微信號13082756376。
在微信zaowujia0508後臺回復m能夠查閱之前所有文章目錄。
在微信zaowujia0508後臺回復m1能夠查閱第1季文章目錄。
在微信zaowujia0508後臺回復m2能夠查閱第2季文章目錄。
在微信zaowujia0508後臺回復m3能夠查閱第3季文章目錄。
在微信zaowujia0508後臺回復m4能夠查閱第4季文章目錄。
微信公眾號:zaowujia0508
一個每天都會更新的微信公眾號。