ryanhanwu /How-To-Ask-Questions-The-Smart-Way

本文原文由知名 Hacker Eric S. Raymond 所撰寫,教你如何正確的提出技術問題並獲得你滿意的答案。

★ 36,090⑂ 5,818👁 416⑃ 111● 30▤ 0◈ 0
JavaScriptMITCreated 2015-03-28
36,090
stars
+15+33+211
5,818
forks
416
watchers
111
prs
30
issues
0
releases
0
discussions

README

提问的智慧


How To Ask Questions The Smart Way

Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen

本指南英文版版权为 Eric S. Raymond, Rick Moen 所有。

原文网址:http://www.catb.org/~esr/faqs/smart-questions.html

Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu

本中文指南是基于原文 3.10 版以及 2010 年由 Gasolin 所翻译版本的最新翻译;

协助指出翻译问题,请发 issue,或直接发 pull request 给我。

本文另有繁體中文版。

 原文版本历史

 目录
   声明
   简介
   在提问之前
   当你提问时
     慎选提问的论坛
     Stack Overflow
     网站和 IRC 论坛
     第二步,使用项目邮件列表
     使用有意义且描述明确的标题
     使问题容易回复
     使用清晰、正确、精准且合乎语法的语句
     使用易于读取且标准的文件格式发送问题
     精确地描述问题并言之有物
     话不在多而在精
     别动辄声称找到 Bug
     低声下气不能代替你的功课
     描述问题症状而非你的猜测
     按发生时间先后列出问题症状
     描述目标而不是过程
     别要求使用私人电邮回复
     清楚明确地表达你的问题以及需求
     询问有关代码的问题时
     别把自己家庭作业的问题贴上来
     去掉无意义的提问句
     即使你很急也不要在标题写紧急
     礼多人不怪,而且有时还很有帮助
     问题解决后,加个简短的补充说明
   如何解读答案
     RTFM 和 STFW:如何知道你已完全搞砸了
     如果还是搞不懂
     处理无礼的回应
   如何避免扮演失败者
   不该问的问题
   好问题与蠢问题
   如果得不到回答
   如何更好地回答问题
   相关资源
   鸣谢

 声明

许多项目在他们网站的帮助文档中链接了本指南。这很好,这正是我们想要的用途。但如果你是该项目管理员并试图创建指向本指南的超链接,请在超链接附近的显著位置注明:

本指南不提供此项目的实际支持服务!

我们已经深刻领教到缺少上述声明所带来的痛苦:我们将不停地被那些认为发布这本指南就意味着有责任解决世上所有技术问题的傻瓜苦苦纠缠。

如果你因寻求某些帮助而阅读本指南,并在离开时还觉得可以从本文作者这里得到直接帮助,那你就是我们之前说的那些傻瓜之一。别问我们问题,我们只会忽略你。我们在这本指南中想教你如何从那些真正懂得你所遇到的软件或硬件问题的人处取得协助,而 99% 的情况下那不会是我们。除非你确定本指南的作者之一刚好是你所遇到的问题领域的专家,否则请不要打扰我们,这样大家都会开心一点。

 简介

在黑客的世界里,你所提技术问题的解答的好坏, 很大程度上取决于你提问的方式与此问题的难度。本指南将教你如何正确地提问以获得你满意的答案。

现在开源(Open Source)软件已经相当盛行,您通常可以从其他更有经验的用户那里获得与黑客一样好的答案,这是件好事;和黑客相比,用户们往往对那些新手常遇到的问题更宽容一些。尽管如此,以我们在此推荐的方式对待这些有经验的用户通常也是从他们那里获得有用答案的最有效方式。

首先你应该明白,黑客们喜爱有挑战性的问题,或者能激发他们思维的好问题。如果我们并非如此,那我们也不会成为你想询问的对象。如果你给了我们一个值得反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼。好问题可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言,“好问题!”是诚挚的大力称赞。

尽管如此,黑客们有着蔑视或傲慢面对简单问题的坏名声,这有时让我们看起来对新手、无知者似乎较有敌意,但其实不是那样的。

我们不讳言我们对那些不愿思考、或者在发问前不做他们该做的事的人的蔑视。那些人是时间杀手 —— 他们只想索取,从不付出,消耗我们可用在更有趣的问题或更值得回答的人身上的时间。我们称这样的人为 失败者(loser) (由于历史原因,我们有时把它拼作 lusers)。

我们意识到许多人只是想使用我们写的软件,他们对学习技术细节没有兴趣。对大多数人而言,电脑只是种工具,是种达到目的的手段而已。他们有自己的生活并且有更要紧的事要做。我们认可这点,也从不指望每个人都对这些让我们着迷的技术问题感兴趣。尽管如此,我们只为那些真正有兴趣并愿意积极参与问题解决的人调整回答问题的风格。这点不会变,也不该变:否则,我们就是在最擅长的事情上降低效率。

我们(在很大程度上)是自愿的,从繁忙的生活中抽出时间来解答疑惑,而且时常被提问淹没。所以我们无情地滤掉一些话题,特别是拋弃那些看起来像失败者的家伙,以便更高效地利用时间来回答赢家(winner)的问题。

如果你厌恶我们的态度,高高在上,或过于傲慢,不妨也设身处地想想。我们并没有要求你向我们屈服 —— 事实上,我们大多数人非常乐意与你平等地交流,只要你付出小小努力来满足基本要求,我们就会欢迎你加入我们的文化。但让我们帮助那些不愿意帮助自己的人是没有效率的。无知没有关系,但装白痴就是不行。

所以,你不必在技术上很在行才能吸引我们的注意,但你必须表现出能引导你变得在行的特质 —— 机敏、有想法、善于观察、乐于主动参与解决问题。如果你做不到这些使你与众不同的事情,我们建议你花点钱找家商业公司签个技术支持服务合同,而不是要求黑客个人无偿地帮助你。

如果你决定向我们求助,当然你也不希望被视为失败者,更不愿成为失败者中的一员。能立刻得到快速并有效答案的最好方法,就是像赢家那样提问 —— 聪明、自信、有解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。

(欢迎对本指南提出改进意见。你可以把你的建议发送至 [email protected] 或 [email protected]。然而请注意,本文并非网络礼节的通用指南,而我们通常会拒绝无助于在技术论坛得到有用答案的建议)。

 在提问之前

在你准备要通过电子邮件、新闻群组或者聊天室提出技术问题前,请先做到以下事情:

  1. 尝试在你准备提问的论坛的旧文章中搜索答案。
  2. 尝试上网搜索以找到答案。
  3. 尝试阅读手册以找到答案。
  4. 尝试阅读常见问题文件(FAQ)以找到答案。
  5. 尝试自己检查或试验以找到答案。
  6. 向你身边的强者朋友打听以找到答案。
  7. 如果你是程序开发者,请尝试阅读源代码以找到答案。

当你提出问题的时候,请先表明你已经做了上述的努力;这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者。如果你能一并表达在做了上述努力的过程中所学到的东西会更好,因为我们更乐于回答那些表现出能从

Top issues

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON