提問的智慧

一些不該問的問題

以下是幾個經典的糟糕問題,以及黑客沒有回答時心中可能會想的事情。它們的共同點不是“問題太簡單”,而是提問者沒有展示必要的準備、邊界和判斷。

先看目錄,再看每個例子背後的原因:

問題:我能在哪找到 X 程序或 X 資源?

問題:我怎樣用 X 做 Y?

問題:如何設定我的 shell 提示?

問題:我可以用 Bass-o-matic 文件轉換工具將 AcmeCorp 文件轉換為 TeX 格式嗎?

問題:我的程序/設定/SQL 語句沒有用

問題:我的 Windows 電腦有問題,你能幫我嗎?

問題:我的程序不會動了,我認為系統工具 X 有問題

問題:我在安裝 Linux(或者 X )時有問題,你能幫我嗎?

問題:我怎麼才能破解 root 帳號/竊取 OP 特權/讀別人的郵件呢?


把搜索任務直接丟給別人

問題:我能在哪找到 X 程序或 X 資源?

回答:就在我找到它的地方啊,白痴 —— 搜索引擎的那一頭。天哪!難道還有人不會用 Google 嗎?

這類問題的問題在於,它沒有展示任何搜索或篩選過程。更好的問法應該說明你查過哪些關鍵詞、找到了哪些候選結果、為什麼它們不適用。

把手段誤當成目標

問題:我怎樣用 X 做 Y?

回答:如果你想解決的是 Y ,提問時別給出可能並不恰當的方法。這種問題說明提問者不但對 X 完全無知,也對 Y 要解決的問題糊塗,還被特定形勢禁錮了思維。最好忽略這種人,等他們把問題搞清楚了再說。

如果你真正想解決的是 Y,就直接描述 Y 的目標、約束和上下文。也許 X 根本不是合適工具,過早限定手段只會讓回答者被迫沿著錯誤方向幫你。

不願閱讀基礎文檔

問題:如何設定我的 shell 提示??

回答:如果你有足夠的智慧提這個問題,你也該有足夠的智慧去 RTFM,然後自己去找出來。

這類問題通常可以從手冊、FAQ 或入門文檔裡直接找到答案。如果你已經閱讀過相關材料,請指出你卡住的具體段落,而不是把整件事交給別人重講一遍。

不願自己做最小實驗

問題:我可以用 Bass-o-matic 文件轉換工具將 AcmeCorp 文件轉換為 TeX 格式嗎?

回答:試試看就知道了。如果你試過,你就知道了答案,就不用浪費我的時間了。

如果實驗成本很低,請先自己試。提問可以圍繞“為什麼這個實驗結果和預期不一致”,而不是要求別人替你做本該由你完成的確認。

沒有描述具體問題

問題:我的「程序/設定/SQL 語句」沒有用

回答:這不算是問題吧,我對要我問你二十個問題才找得出你真正問題的問題沒興趣 —— 我有更有意思的事要做呢。在看到這類問題的時候,我的反應通常不外如下三種

  • 你還有什麼要補充的嗎?
  • 真糟糕,希望你能搞定。
  • 這關我屁事?

“沒有用”不是可診斷的信息。你需要說明你做了什麼、期望發生什麼、實際發生什麼、完整錯誤信息是什麼,以及你已經排除了哪些原因。

把平臺問題扔給不相關的人

問題:我的 Windows 電腦有問題,你能幫我嗎?

回答:能啊,扔掉微軟的垃圾,換個像 Linux 或 BSD 的開源操作系統吧。

注意:如果程序有官方版 Windows 或者與 Windows 有互動(如 Samba),你可以問與 Windows 相關的問題,只是別對問題是由 Windows 操作系統而不是程序本身造成的回覆感到驚訝, 因為 Windows 一般來說實在太爛,這種說法通常都是對的。

關鍵不是“不能問 Windows”,而是要問對地方、問對範圍。與項目本身有關的問題可以問項目社區;純粹的系統使用問題則應找更合適的 Windows 支持渠道。

指控基礎工具有問題卻沒有證據

問題:我的程序不會動了,我認為系統工具 X 有問題

回答:你完全有可能是第一個注意到被成千上萬用戶反覆使用的系統調用與函數庫文件有明顯缺陷的人,更有可能的是你完全沒有根據。不同凡響的說法需要不同凡響的證據,當你這樣聲稱時,你必須有清楚而詳盡的缺陷說明文件作後盾。

越是指向底層、通用、被大量使用的組件,就越需要嚴謹證據。先假設自己的環境、輸入、用法或理解可能有誤,再用最小復現和清晰日誌支持你的判斷。

需要現場操作的問題

問題:我在安裝 Linux(或者 X )時有問題,你能幫我嗎?

回答:不能,我只有親自在你的電腦上動手才能找到毛病。還是去找你當地的 Linux 使用群組者尋求實際的指導吧(你能在這兒找到用戶群組的清單)。

注意:如果安裝問題與某 Linux 的發行版有關,在它的郵件列表、論壇或本地用戶群組中提問也許是恰當的。此時,應描述問題的準確細節。在此之前,先用 Linux所有被懷疑的硬件作關鍵詞仔細搜索。

安裝類問題常常依賴現場環境、硬件狀態和屏幕輸出。如果無法提供足夠細節,本地用戶群組、發行版社區或能遠程查看環境的支持渠道,通常更適合處理這類問題。

請求非法或惡意行為

問題:我怎麼才能破解 root 帳號/竊取 OP 特權/讀別人的郵件呢?

回答:想要這樣做,說明了你是個卑鄙小人;想找個黑客幫你,說明你是個白痴!

不要把破壞、竊取、繞過授權或侵犯隱私包裝成“技術問題”。負責任的技術社區不會幫助你傷害別人,也不會為了展示技術能力而參與違法或不道德的行為。

總結

這些問題之所以糟糕,是因為它們把搜索、實驗、定義目標、提供證據和承擔責任都推給了回答者。真正值得問的問題,應該讓別人看到:你已經做了合理準備,現在只是在某個具體、清晰、可討論的點上需要幫助。