版权声明
本文首发自微信公共帐号: 造物家联盟英语(zaowujia0508);
无需授权即可转载,甚至无需保留以上版权声明;
转载时请务必注明作者,否则将被视为侵权。
每一个爱学习的人
都置顶了“造物家联盟英语”
How to Ask Questions the Smart Way (2)
点击可跳转英文页面
二、说清问题
用清晰、精确的语句书写
多花点时间斟酌字句。你不必那么刻板、正式,实际上黑客文化崇尚通俗、幽默的非正式表达方式,但一定要做到精确、清晰。
表达尽量显得专业一点,过于小白的表达很可能会无人理会。不要只是为了少打几个字而使用即时通讯中的简写或火星文。幼稚的鬼画符更是找死,要不然无人理会,要不然就是招致一堆嘲笑。
如果你是在非母语论坛提问,那么你有一些语法和拼写错误可以被原谅,但不能因此就在思考上错误百出。
除非你知道对方使用哪种语言,否则请用英语,因为英语是网络中的工作语言。而且繁忙的黑客会直接删除那些使用他不懂的语言提的问题。如果英语不是你的母语,最好在提问中说明你可能在语法和拼写等方面有些错误:
English is not my native language; please excuse typing errors.
英语不是我的母语,请原谅我可能的拼写错误。
If you speak $LANGUAGE, please email/PM me; I may need assistance translating my question.
如果你使用某种语言,请私讯我;我需要别人帮我翻译我的问题。
I am familiar with the technical terms, but some slang expressions and idioms are difficult for me.
我对技术名词很熟悉,但一想俗语或特别的表达方式并不很了解。
I've posted my question in $LANGUAGE and English. I'll be glad to translate responses, if you only use one or the other.
我已经用英文和某语言把我的问题写出来了,你只需要用其中一种语言回答,我自己翻译就可以。
使用易读取、易理解的标准格式提问
使用纯文本,而不是超文本标记语言(HTML)。
邮件可以有附件,但附件一定要是有用的内容(比如源码或补丁),而不只是邮件程序生成的样板文件。
不要把多个问题放在一段文字当中,这会让对方难以理解,要有条理地、清晰地表达你的问题。尽量把你每行的字符设定在80字以内,这样对方即使在小屏幕上也能愉快地阅读。
但是,对于一些数据资料(如日记文件的拷贝或会议记录)就不要用固定列宽度来换行了,数据资料应该原样显示。
在英语论坛中不要使用MIME Quoted-Printable 编码。在ASCII不能表达的语言中,这种编码格式是必要的,但很多邮件程序并不支持它。这时,到处都是=20这样的符号,没法看。
不要指望黑客会阅读Word、Excel这类封闭所有权的文档,在他们眼中这和狗屎一样。
如果你用Windows系统的电脑发送邮件,请关掉“智能引用”功能(选项 > 校订 > 自动校正选项,取消 智慧引号 选项),以免在你的邮件中到处都是垃圾字符。
不要滥用表情包。偶尔用个表情是可以的,但花哨的彩色文字会让人觉得你是个十几岁的懵懂小女孩。
如果你使用的是微软的Outlook这类图形交互界面的邮件程序,要知道在他们的默认设定下会违背上述一些规则。大多数这类程序都有基于菜单的查看源码命令,用它来检查发送文件夹中的消息,确认你在发送纯文本时没有乱七八糟的东西加进去。
使用描述明确的标题
想象你在一个只显示标题的讨论区查找问题的答案——如果你能让你的标题完全反映你的问题,那将来其他遇到类似问题的人就不必再次重复提问同样的问题。
50字(这里指英文)以内的标题最能得到资深专家的注意。
不要用“急、在线等、跪求、救命啊”这类词语,这会令人条件反射式地生厌,从而一律忽略这些问题。
更不要试图描述你的痛苦来加深我们的印象,请尽可能简洁精确地说清楚你的问题。
如果你想在回复中提问,一定要修改你的标题,以表明你是在提问。这时用“回复”开头肯定是不可取的。还有,在不影响连贯性的前提下,尽可能减少对前文的引用,这样对后来的人来说读起来更易懂。
开始一个全新的线索时,不要直接在消息列表中点击回复进行。因为有些邮件阅读程序允许用户按照线索排序,并将消息隐藏在线索中,这样做对方看不到你在回复中新发的消息。不如发一个全新的帖子。
精确且全面地说明你的问题
清楚地说明你的问题是什么。尽可能预估黑客可能会问你哪些问题,在你请求帮助时就先回答这些问题。
说明你的问题发生的环境:电脑配置、操作系统、应用等等,提供版本和版本号。
描述在提问前你是怎么研究和理解这个问题的。
描述你为了确定问题所在做了什么,以及你怎样阻止问题造成进一步的影响。
如果你想到最近做过任何可能与此相关的软件安装、升级等,请说明。
如果可能的话,提供在可控环境下重现这个问题的方法。如果你发现的是个代码中的bug,那这一点非常重要。如果这时你能提供重现这个问题的环境,那么你得到解答的几率和速度都会显著提高。
话不在多而在精。不要把一大堆代码、数据一股脑放进提问请求当中,尽可能精练、简洁。这样做有三个好处:首先,表现出你为简化问题付出了努力,可以使你更容易获得答案;其次,简化问题能使你更可能获得有用的答案;第三,在简化你的问题的过程中,你很可能会找到解决办法或权变措施。
开放式问题是浪费他人的时间。因为那些最有能力给你最优答案的人往往也是最忙碌的人,这类人通常无法接受浪费时间,当然也就非常讨厌开放式问题了。明确说明你想让回答者做什么(提供指导、发送一段代码、检查你的补丁),这能让对方集中注意力在你的需求上,也能让他对自己需要付出多少时间、精力有一个判断。
要想理解专家的世界,就要理解专家、大牛们什么都不缺,就缺时间。你的问题需要对方花费的时间越少,你越可能得到那些大忙人的回复。因此,在提问时想方设法少花对方的时间是有必要的。比如,“我想解释X问题,您能给我点指导、提示吗?”比“您能帮我解释X问题吗?”要好。再比如你有一段代码出错了,让对方帮助解释哪里出错了,比直接让对方帮你改正要更好。
按发生的先后顺序列出你的问题
最有助于找到问题所在的线索就是在问题出现前你做了些什么,电脑、软件对你的操作有什么反应。如果是在命令行进程中,那么提供系统日志,并相关的几十行命令会利于解决问题。
如果崩溃的程序有诊断选项,那就试着选择能在记录中增加调试信息的选项。记住,多不等于好,试着选择合适的调试级别,以便提供有用的信息,而不是产生大量的垃圾信息。
如果你的问题内容的确很多,那就在开头先简述你的问题。然后按照发生的先后顺序详述你的问题。这样,黑客就会知道该注意哪些内容了。
先说清目标,再说明步骤
如果你是想知道怎样达成某个目标,而不是报告bug,那首先要说明你的目标是什么。然后再描述你采取的步骤以及被卡在了哪里。
通常,需要技术帮助的人心中有个目标要达成,被卡在了自己选择的技术路径的某一步,然后他们就问这一步应该怎么走。他们没有意识到的是,他们选择的技术路径本身可能就是错的。
蠢问题:我怎么才能从某绘图程序的颜色选择器中选择十六进制的RGB值呢?
好问题:我想改变这张图片的颜色。但我唯一能想到的方法就是分别编辑每个区块的颜色,但我无法再某绘图程序的颜色选择器中选择十六进制的RGB值。要怎么做呢?——好问题的提问方式相当于告诉黑客,如果你能推荐给我一个更好用的绘图软件,那也可以。
一种好的提问格式:目标—差异。目标部分说明是哪一个或哪一组东西出问题了,差异部分说明与期望得到的结果差在哪里。
蠢问题:救命啊!我的笔记本不能正常显示了。
好问题:X.org 6.8.1 光标会变形,某品牌显卡MV1005 芯片组。
更好的问题:X.org 6.8.1的光标,在某牌显卡 MV1005 芯片组环境下 —会变形。
写目标—差异式问题描述的过程有助于你更细致地分析问题。是什么受到了影响?只是光标还是还有其他部分?只在X.org的6.8.1版中出现?是针对某种显卡才会出现吗?问题描述的足够清晰准确,黑客一眼就能明白你所处的环境和你所遇到的问题是什么。
多描述问题本身,而不是你的猜想
告诉黑客你认为问题是怎么造成的没有多大帮助,因为如果你认为的是对的,那你自己早就把问题解决了,又何必求助呢?所以你要做到的就是把问题的原原本本地告诉对方,让他们去做出诊断。如果你实在认为自己的猜测很重要,那就请清楚地标记这只是你的猜测,并且要说明为什么这并没有解决你的问题。
蠢问题:我在编译内核时接连遇到SIG11错误,我猜可能是主板上的某根电路丝断了。有什么好办法检查吗?
好问题:我的组装电脑是某某主板搭载某某芯片,某某RAM。在编译内核时,开始20分钟后频频出现SIG11错误,但前20分钟内从不出错。重启没用,但关机一晚上第二天又可以正常工作20分钟。换掉RAM也没用。相关部分的标准编译记录如下......
上述规则可能对很多人来说难以实行,但要知道的是:所有的高手见不到真相都不会轻信。在高手看来, 这不是是否相信你的问题,而是为了更好地解决问题,必须让我们看到到底出现了什么问题,而不是只看到你的猜测。
去掉无意义的问句
不要以类似“谁能帮帮我?”或“这有答案吗?”结尾。首先,如果你的问题本身说明的就不够清晰,这样的结尾只能是画蛇添足;其次,因为这是画蛇添足,黑客们会对此很反感,他们很可能会以符合逻辑但毫无用处的回答来表示他们的厌恶——“我可以帮你”或“没人能帮你”,让后就没有然后了,以牙还牙。
关于代码的问题
不说明你遇到了什么问题,直接把几百行代码发过去要求对方帮助找bug的人——有多远滚多远。正确的做法是把相关的几十行代码发过去之后,要同时说明“执行第7行之后,应该得到X,但我得到的是Y”,请问是哪里出错了?
精确描述代码问题的最有效方式就是提供一个最小化bug说明实例。也就是说,如果你知道大概是哪一部分代码导致了这个问题,那就把这部分代码单独拿出来,然后配合必要的相关代码,只要足够重现问题即可。如果你不知道到底是哪段代码导致了这个问题,那就不断去删减那些你认为不相关的代码,一直删减到最少。当然,最小化bug说明实例有时是做不到的,但尝试的过程本身仍是有意义的。它有可能会让你找到解决问题的办法,黑客知道你这么做也会更想帮助你。
如果你只是想进行代码评审,那就要在一开始说明哪些部分需要评审以及为什么。
三、几条“禁令”
别动辄声称你发现了bug、错误
当你在使用某软件时发现了问题,除非你可以提供源码补丁来修正这个问题,或者做回归测试出现错误(所谓回归测试,是指对代码进行修改后,某一在旧版本中可以正常运行的功能在新版本中反而不能正常运行了,如果这不是故意要去掉的或已经没必要存在的功能,那就说明新版本bug),不要轻易声称自己发现了个bug。这也适用于网页和文件,如果你认为自己发现了一个文件中的错误,你应该提供正确的文本来替换。
你要明白的是,还有很多其他用户并没有遇到你的问题,否则你在遇到问题后早就已经在FAQ或Google中找到解决办法了。这就说明很可能是你自己操作有误,而不是软件有bug。
做软件的人为此付出了巨大努力,如果你声称自己发现了bug,这首先是对他们能力的怀疑。即使你是对的,也可能会冒犯他们中的一些人,尤其是当你在标题栏嚷嚷有bug的话。
即使你确定自己的确发现了个bug,提问时最好也写的像是是自己操作有什么错误。如果最终真的是个bug,你会收到答案和歉意。但如果以一开始就出言不逊,万一最终证实使你操作有误,那你就医给对方道歉了。
不要把你课程作业的问题贴上来
黑客很容易看出你这是课程的作业,这是需要你自己动脑完成的任务,这样你才能进步。你可以寻求一点点的提示,但没人会给你最终的答案。
如果你在课程作业中确实遇到了自己解决不了的问题,那可以去用户论坛求助,黑客应该不会理你,但其它用户可能会给你一点提示。
装可怜没用,做足功课才是王道
读到这里,一些人知道了问问题时态度要好,但却走到了另一个极端、歧途——低声下气、卑躬屈膝。“我知道我只是个可怜的loser,但是......”。这只会分散对方的注意力,对你获得答案毫无帮助。尤其是你对问题的描述含糊不清的时候更会令人厌烦。别用帝制时代长幼尊卑那套东西浪费你我的时间,把你的问题尽可能描述清楚,才能得到好的解答。
有些论坛有专门供新手提问的地方,如果你觉得自己的问题确实有点小蠢,那可以去新手区试试看,但即使在那里也不需要低声下气。
即使你真的很着急,也不要写“急,在线等...”
这是你的问题,不是别人的。声称自己很着急很可能会导致相反的结果:大多数黑客会直接删除这样的信息,因为你这是非常自私、粗鲁地想让别人立即停止自己的工作来帮助你。甚至,“急”这类的字眼很可能会直接被当做垃圾邮件过滤掉。
也有例外,如果你在一个知名度很高、备受黑客崇敬的地方使用某个软件,并且你真的很急,那这时你足够客气地说明你很着急,你可能会更快得到帮助。这很冒险,但因为黑客的兴奋点、判断标准跟你很可能大不相同。从国际空间站发“急”这样的标题肯定没问题,但如果一个慈善组织或政治组织黑客们就很可能无感。比如,你发一个“急,请救救这些可怜的小海豹”不会得到黑客的重视,即使那些认为海豹很重要的黑客也是如此。
不要要求对方用私人邮件回复
黑客认为解决问题应该是个公开、透明的过程,这样如果有高手中的高手看到解决方案不够好,就可以帮助改善。并且,提供帮助的一方也可以因此受到大家敬重。
把是否要用私人邮件回复的选择权交给回答者。如果他这么做了,那通常是因为他认为你的问题太过肤浅,对他人毫无用处。
这一规则只有一个例外,那就是你确信这个问题会得到大量雷同的回复时,你可以说明“用email回复我,我会为论坛总结出一个答案”。尝试着帮助论坛减少大量雷同、重复的内容是值得做的。
礼多人不怪
使用“please”或“Thanks for your attention”这些礼貌用语表明你很感激对方无偿地的帮助,这当然没什么坏处。尤其是你有一串问题等着解决的时候,礼貌点能让你得到更多帮助。
但这不如把问题描述的清晰、简洁更重要。黑客们更喜欢虽然无礼但问题表述清晰的帖子,而不是非常礼貌但问题含糊不清的帖子。
本指南发布后,从黑客那里收到的唯一严重反对意见就是关于“提前感谢”的做法。有些黑客会感觉“提前感谢”过了就意味着事后就不会再感谢了,让人感觉不舒服。我们对此的建议是:要么你事先事后都要表示感谢,要么用“Thanks for your attention/cosideration”代替“Thank you "。
四、问题得到解决后,要在后面做个简短说明
问题得到解决后,要对所有帮助解答的人做个简短说明,让他们知道最终是怎么解决的,同时再次对他们表示感谢。如果你的提问引起了一个论坛的普遍关注,那就要写个说明贴。最恰当的方式就是在最初的问题贴的标题行中标明“已解决”,这样其他黑客就不用再浪费时间来帮助解决你的问题了。
除非答案真的很有技术深度,否则说明不要太长、太复杂,只需要简单说明是什么方法解决了你的问题。
对于有深度的问题,最好对解决问题的过程做一个总结。先说明问题是什么,然后说明怎么解决了这个问题,最后说明之前的走错的路。不要搞得像推理小说一样复杂。
列出帮你解决问题的人的名字,这样你能交到更多朋友。这么做除了显得有礼貌之外,还能让将来遇到类似问题的人清楚地知道你的问题是如何一步步得到解决的,他们也就不用再次提问了。
最重要的是,这会让那些帮过你的人满意,这种感觉对于专家、黑客们来说很重要。问题一直得不到解决是令人沮丧的,黑客们对此无法忍受。你对问题解决的说明会让你在下次提问时左右逢源。在黑客中间,在解决问题后作出恰当说明实际上比讲礼貌重要多了。这是你在这种文化中获得好名声的重要方法,而好名声在黑客中是很有价值的。
花时间思考有没有办法可以避免其他人出同样的错误,在FAQ中做个说明是不是能解决这个问题?如果是,那就像维护人员提出建议。
▲ 陈洪伟,微信二维码,加入请备注姓名
微信公众号:zaowujia0508
一个每天都会更新的微信公众号。
eading
推荐阅读
扩展阅读是今年写得几篇文章,不着急,慢慢来:
(点击文字即可跳转)
12.11盘点☞刻意练习小组(⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️)
12.18刻意练习小组作业2(⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️)
谁能生巧?(⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️)
V200<<<V对话守则 (⭐️⭐️⭐️⭐️⭐️)
如果你想看我的朋友圈,
可以加我的个人微信号13082756376。
在微信zaowujia0508后台回复m能够查阅之前所有文章目录。
在微信zaowujia0508后台回复m1能够查阅第1季文章目录。
在微信zaowujia0508后台回复m2能够查阅第2季文章目录。
在微信zaowujia0508后台回复m3能够查阅第3季文章目录。
在微信zaowujia0508后台回复m4能够查阅第4季文章目录。
微信公众号:zaowujia0508
一个每天都会更新的微信公众号。