Skip to content

Commit 9c85917

Browse files
author
baoguo
committed
update
1 parent 6533b9e commit 9c85917

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

_posts/2022-05-16-606-How-To-Ask-Questions-The-Smart-Way.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ tags: [岗前培训]
66

77
---
88

9-
# 在提问之前
9+
# 1. 在提问之前
1010

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

@@ -31,7 +31,7 @@ tags: [岗前培训]
3131

3232
另一方面,表明你愿意在找答案的过程中做点什么是一个非常好的开端。谁能给点提示?、我的这个例子里缺了什么?以及我应该检查什么地方比请把我需要的确切的过程贴出来更容易得到答复。因为你表现出只要有人能指个正确方向,你就有完成它的能力和决心。
3333

34-
# 使用有意义且描述明确的标题
34+
# 2. 使用有意义且描述明确的标题
3535

3636
在邮件列表、新闻群组或论坛中,大约 50 字以内的标题是抓住资深专家注意力的好机会。别用喋喋不休的帮帮忙、跪求、急(更别说救命啊!!!!这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。
3737

@@ -55,13 +55,13 @@ tags: [岗前培训]
5555

5656
在网页论坛上,好的提问方式稍有不同,因为讨论串与特定的信息紧密结合,并且通常在讨论串外就看不到里面的内容,故通过回复提问,而非改变标题是可接受的。不是所有论坛都允许在回复中出现分离的标题,而且这样做了基本上没有人会去看。不过,通过回复提问,这本身就是暧昧的做法,因为它们只会被正在查看该标题的人读到。所以,除非你只想在该讨论串当前活跃的人群中提问,不然还是另起炉灶比较好。
5757

58-
# 使问题容易回复
58+
# 3. 使问题容易回复
5959

6060
以请将你的回复寄到……来结束你的问题多半会使你得不到回答。如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦,我们也觉得花几秒钟思考你的问题更麻烦。如果你的邮件程序不支持这样做,换个好点的;如果是操作系统不支持这种邮件程序,也换个好点的。
6161

6262
在论坛,要求通过电子邮件回复是非常无礼的,除非你相信回复的信息可能比较敏感(而且有人会为了某些未知的原因,只让你而不是整个论坛知道答案)。如果你只是想在有人回复讨论串时得到电子邮件提醒,可以要求网页论坛发送给你。几乎所有论坛都支持诸如追踪此讨论串、有回复时发送邮件提醒等功能。
6363

64-
# 用清晰、正确、精准并语法正确的语句
64+
# 4. 用清晰、正确、精准并语法正确的语句
6565

6666
我们从经验中发现,粗心的提问者通常也会粗心的写程序与思考(我敢打包票)。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。
6767

@@ -91,7 +91,7 @@ I've posted my question in $LANGUAGE and English. I'll be glad to translate resp
9191

9292
+ 我把我的问题用某语言和英文写出来,如果你只用一种语言回答,我会乐意将其翻译成另一种。
9393

94-
# 使用易于读取且标准的文件格式发送问题
94+
# 5. 使用易于读取且标准的文件格式发送问题
9595

9696
如果你人为地将问题搞得难以阅读,它多半会被忽略,人们更愿读易懂的问题,所以:
9797

@@ -105,7 +105,7 @@ I've posted my question in $LANGUAGE and English. I'll be glad to translate resp
105105
+ 在论坛,勿滥用表情符号和HTML功能(当它们提供时)。一两个表情符号通常没有问题,但花哨的彩色文本倾向于使人认为你是个无能之辈。过滥地使用表情符号、色彩和字体会使你看来像个傻笑的小姑娘。这通常不是个好主意,除非你只是对性而不是对答案感兴趣。
106106
+ 如果你使用图形用户界面的邮件程序(如微软公司的 Outlook 或者其它类似的),注意它们的默认设置不一定满足这些要求。大多数这类程序有基于选单的查看源代码命令,用它来检查发送文件夹中的邮件,以确保发送的是纯文本文件同时没有一些奇怪的字符。
107107

108-
# 精确的描述问题并言之有物
108+
# 6. 精确的描述问题并言之有物
109109

110110
+ 仔细、清楚地描述你的问题或 Bug 的症状。
111111
+ 描述问题发生的环境(机器配置、操作系统、应用程序、以及相关的信息),提供经销商的发行版和版本号(如:Fedora Core 4、Slackware 9.1等)。
@@ -115,15 +115,15 @@ I've posted my question in $LANGUAGE and English. I'll be glad to translate resp
115115

116116
以上几点中,当你报告的是你认为可能在代码中的问题时,给黑客一个可以重现你的问题的环境尤其重要。当你这么做时,你得到有效的回答的机会和速度都会大大的提升。
117117

118-
Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。强力推荐你也读一读。
118+
Simon Tatham 写过一篇名为[《如何有效的报告 Bug》](https://www.chiark.greenend.org.uk/~sgtatham/bugs-cn.html)的出色文章。强力推荐你也读一读。
119119

120-
# 话不在多而在精
120+
# 7. 话不在多而在精
121121

122122
你需要提供精确有内容的信息。这并不是要求你简单的把成堆的出错代码或者资料完全转录到你的提问中。如果你有庞大而复杂的测试样例能重现程序挂掉的情境,尽量将它剪裁得越小越好。
123123

124124
这样做的用处至少有三点。 第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加; 第二,简化问题使你更有可能得到有用的答案; 第三,在精炼你的 bug 报告的过程中,你很可能就自己找到了解决方法或权宜之计。
125125

126-
# 别动辄声称找到Bug
126+
# 8. 别动辄声称找到Bug
127127

128128
当你在使用软件中遇到问题,除非你非常、非常的有根据,不要动辄声称找到了 Bug。提示:除非你能提供解决问题的源代码补丁,或者提供回归测试来表明前一版本中行为不正确,否则你都多半不够完全确信。这同样适用在网页和文件,如果你(声称)发现了文件的Bug,你应该能提供相应位置的修正或替代文件。
129129

@@ -133,15 +133,15 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
133133

134134
提问时,即使你私下非常确信已经发现一个真正的 Bug,最好写得像是你做错了什么。如果真的有 Bug,你会在回复中看到这点。这样做的话,如果真有 Bug,维护者就会向你道歉,这总比你惹恼别人然后欠别人一个道歉要好一点。
135135

136-
# 低声下气不能替代你的功课
136+
# 9. 低声下气不能替代你的功课
137137

138138
有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 -- 低声下气:我知道我只是个可悲的新手,一个撸瑟,但...。这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。
139139

140140
别用原始灵长类动物的把戏来浪费你我的时间。取而代之的是,尽可能清楚地描述背景条件和你的问题情况。这比低声下气更好地定位了你的位置。
141141

142142
有时网页论坛会设有专为新手提问的版面,如果你真的认为遇到了初学者的问题,到那去就是了,但一样别那么低声下气。
143143

144-
# 描述问题症状而非你的猜测
144+
# 10. 描述问题症状而非你的猜测
145145

146146
告诉黑客们你认为问题是怎样造成的并没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,而不是你的解释和理论;让黑客们来推测和诊断。如果你认为陈述自己的猜测很重要,清楚地说明这只是你的猜测,并描述为什么它们不起作用。
147147

@@ -155,15 +155,15 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
155155

156156
由于以上这点似乎让许多人觉得难以配合,这里有句话可以提醒你:所有的诊断专家都来自密苏里州。 美国国务院的官方座右铭则是:让我看看(出自国会议员 Willard D. Vandiver 在 1899 年时的讲话:我来自一个出产玉米,棉花,牛蒡和民主党人的国家,滔滔雄辩既不能说服我,也不会让我满意。我来自密苏里州,你必须让我看看。) 针对诊断者而言,这并不是一种怀疑,而只是一种真实而有用的需求,以便让他们看到的是与你看到的原始证据尽可能一致的东西,而不是你的猜测与归纳的结论。所以,大方的展示给我们看吧!
157157

158-
# 按发生时间先后列出问题症状
158+
# 11. 按发生时间先后列出问题症状
159159

160160
问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,你的说明里应该包含你的操作步骤,以及机器和软件的反应,直到问题发生。在命令行处理的情况下,提供一段操作记录(例如运行脚本工具所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。
161161

162162
如果挂掉的程序有诊断选项(如 -v 的详述开关),试着选择这些能在记录中增加调试信息的选项。记住,多不等于好。试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中。
163163

164164
如果你的说明很长(如超过四个段落),在开头简述问题,接下来再按时间顺序详述会有所帮助。这样黑客们在读你的记录时就知道该注意哪些内容了。
165165

166-
# 描述目标而不是过程
166+
# 12. 描述目标而不是过程
167167

168168
如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。
169169

@@ -179,15 +179,15 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
179179

180180
第二种提问法比较聪明,你可能得到像是建议采用另一个更合适的工具的回复。
181181

182-
# 别要求使用私人电邮回复
182+
# 13. 别要求使用私人电邮回复
183183

184184
黑客们认为问题的解决过程应该公开、透明,此过程中如果更有经验的人注意到不完整或者不当之处,最初的回复才能够、也应该被纠正。同时,作为提供帮助者可以得到一些奖励,奖励就是他的能力和学识被其他同行看到。
185185

186186
当你要求私下回复时,这个过程和奖励都被中止。别这样做,让回复者来决定是否私下回答 -- 如果他真这么做了,通常是因为他认为问题编写太差或者太肤浅,以至于对其它人没有兴趣。
187187

188188
这条规则存在一条有限的例外,如果你确信提问可能会引来大量雷同的回复时,那么这个神奇的提问句会是向我发电邮,我将为论坛归纳这些回复。试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的 -- 但你必须信守诺言。
189189

190-
# 清楚明确的表达你的问题以及需求
190+
# 14. 清楚明确的表达你的问题以及需求
191191

192192
漫无边际的提问是近乎无休无止的时间黑洞。最有可能给你有用答案的人通常也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞相当厌恶,所以他们也倾向于厌恶那些漫无边际的提问。
193193

@@ -197,7 +197,7 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
197197

198198
所以,界定一下你的问题,使专家花在辨识你的问题和回答所需要付出的时间减到最少,这技巧对你有用答案相当有帮助 -- 但这技巧通常和简化问题有所区别。因此,问我想更好的理解 X,可否指点一下哪有好一点说明?通常比问你能解释一下 X 吗?更好。如果你的代码不能运作,通常请别人看看哪里有问题,比要求别人替你改正要明智得多。
199199

200-
# 询问有关代码的问题时
200+
# 15. 询问有关代码的问题时
201201

202202
别要求他人帮你调试有问题的代码,不提示一下应该从何入手。张贴几百行的代码,然后说一声:它不能工作会让你完全被忽略。只贴几十行代码,然后说一句:在第七行以后,我期待它显示 ,但实际出现的是 比较有可能让你得到回应。
203203

@@ -207,13 +207,13 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
207207

208208
如果你只是想让别人帮忙审查(Review)一下代码,在信的开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。
209209

210-
# 别把自己家庭作业的问题贴上来
210+
# 16. 别把自己家庭作业的问题贴上来
211211

212212
黑客们很擅长分辨哪些问题是家庭作业式的问题;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由你来搞定,你会从中学到东西。你可以要求给点提示,但别要求得到完整的解决方案。
213213

214214
如果你怀疑自己碰到了一个家庭作业式的问题,但仍然无法解决,试试在使用者群组,论坛或(最后一招)在项目的使用者邮件列表或论坛中提问。尽管黑客们会看出来,但一些有经验的使用者也许仍会给你一些提示。
215215

216-
# 去掉无意义的提问句
216+
# 17. 去掉无意义的提问句
217217

218218
避免用无意义的话结束提问,例如有人能帮我吗?或者这有答案吗?。
219219

@@ -223,7 +223,7 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
223223

224224
一般来说,避免用 是或否、对或错、有或没有类型的问句,除非你想得到是或否类型的回答。
225225

226-
# 即使你很急也不要再标题写紧急
226+
# 18. 即使你很急也不要再标题写紧急
227227

228228
这是你的问题,不是我们的。宣称紧急极有可能事与愿违:大多数黑客会直接删除无礼和自私地企图即时引起关注的问题。更严重的是,紧急这个字(或是其他企图引起关注的标题)通常会被垃圾信过滤器过滤掉 -- 你希望能看到你问题的人可能永远也看不到。
229229

@@ -233,7 +233,7 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
233233

234234
如果你觉得这点很不可思议,最好再把这份指南剩下的内容多读几遍,直到你弄懂了再发文。
235235

236-
# 礼多人不怪,而且有时还很有帮助
236+
# 19. 礼多人不怪,而且有时还很有帮助
237237

238238
彬彬有礼,多用请和谢谢您的关注,或谢谢你的关照。让大家都知道你对他们花时间免费提供帮助心存感激。
239239

@@ -243,7 +243,7 @@ Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。
243243

244244
(我们注意到,自从本指南发布后,从资深黑客那里得到的唯一严重缺陷反馈,就是对预先道谢这一条。一些黑客觉得先谢了意味着事后就不用再感谢任何人的暗示。我们的建议是要么先说先谢了,然后事后再对回复者表示感谢,或者换种方式表达感激,譬如用谢谢你的关注或谢谢你的关照。)
245245

246-
# 问题解决后,价格简短的补充说明
246+
# 20. 问题解决后,价格简短的补充说明
247247

248248
问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在新闻组或者邮件列表中引起了广泛关注,应该在那里贴一个说明比较恰当。
249249

0 commit comments

Comments
 (0)