怎样正确提问

作者: 王振华1990 | 来源:发表于2018-03-06 21:28 被阅读511次

    How To Ask Questions The Smart Way  , 这篇著名的文章系统全面地讲述了应该如何正确地提问,给了我很大启发。以下是我对文章做的翻译,与大家交流。


    前言

    在黑客的世界里,你提出一个技术问题后,最终能否得到满意的答案,取决于你的提问方式。这个指南就是关于如何正确提问的。现在开源软件已经越来越多了,你可以从高手、黑客那里得到很多问题的解答。和黑客相比,一般的高手会对新手更耐心一些。但即便如此,如果你按照本指南中推荐的方式,像对待黑客那样对待所有高手,你会更高效地获得优质解答。

    高手、黑客喜欢有挑战性、需要深入思考的问题,如果不是这样,我们也成不了黑客。如果你提出一个值得反复咀嚼玩味的问题,我们会对你感激不尽。好的问题可以刺激我们的思维,可以加深我们对问题的理解,还经常揭露出我们之前没有意识到、思考过的地方。

    但黑客也并不是对新手和简单的问题不予理睬,我们只是对那些提问前不愿自己思考,不愿自己做足功课的人态度粗鲁。这种人是时间杀手,他们只知索取,从不付出,把我们本该花在更值得的问题和人上的时间都浪费了。我们回答问题的方式适合于那些真正对问题感兴趣并且愿意积极主动地参与到问题的解决中的人。我们从繁忙的工作中抽出时间回答问题,为了做到价值最大化,我们会果断地过滤掉那些时间杀手的问题。

    无知没关系,装白痴就不好了。你不需要现在就已经是个行家,但你要具备最终能使你成为一个高手的特质:机敏、深入思考、善于观察、乐于主动参与问题的解决。如果你做不到,那你最好付钱请人回答你的问题,而不是让黑客帮你。想快速得到解答的最好方法就是表现出你的聪明、自信、有自己对问题的思考,只是在某个特定问题上遇到了麻烦而已。


    提问之前

    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频道,最好不要一下抛出一大段的问题描述,对方会晕掉。最好先尽可能简短地描述你的问题来开始你们的交流。


    还解决不了?使用邮件列表

    当项目提供开发者邮件列表时,向列表而不是其中的个别成员提问,这样做有以下几个原因:

    *  任何值得某个开发者回答的问题,对整个项目组也用价值。相反,如果你的问题对整个项目组来说太愚蠢,那也就更没有理由去打扰个别的开发者了。

    *  通过列表问问题可以分散开发者的负担,不致使个别开发者太忙。

    *  大部分邮件列表都会被存档并被搜索引擎收录。如果你通过邮件列表的提问得到回答,将来其他遇到相似问题的人就不用再重复提问。

    *  如果某些问题经常被问到,开发者会据此改善说明文件或软件本身。但如果你私聊,那开发者就无法统计哪些问题是会被经常问到的。

    如果一个项目既有使用者论坛又有开发者论坛,而你并不想研究他们的源码,那就请你去使用者论坛提问。不要以为开发者论坛会欢迎你们这些使用者,他们多半会把你的提问视为影响他们开发的噪音。

    然而,如果你确认自己的问题是足够有价值的,并且在使用者论坛里好几天都得不到答案,那就去开发者论坛试试。你最好先在开发者论坛潜伏几天,看看旧文章,了解他们的“风俗习惯”,然后再发帖子。

    如果你找不到项目的邮件列表,只有维护者的邮件地址,那就发邮件给他。但不要认为项目的邮件列表就一定不存在,或许只是你没找到,在你发出的邮件中要说明这一点。并且要说明可以帮忙把邮件之间转给相关负责人。

    让回复更容易进行。以“请回复到......”的邮件多半不会得到回复。如果你都不愿意花几秒钟在客户端设置一下回复地址,那对方也不愿花时间回答你的问题。

    在论坛中要求通过邮件给你解答是无理的要求,除非你认为邮件内容有敏感信息。如果你只想在有人在论坛中回答时得到邮件提醒,那大多数论坛都支持这一功能。


    二、说清问题

    用清晰、精确的语句书写

    多花点时间斟酌字句。你不必那么刻板、正式,实际上黑客文化崇尚通俗、幽默的非正式表达方式,但一定要做到精确、清晰。

    表达尽量显得专业一点,过于小白的表达很可能会无人理会。不要只是为了少打几个字而使用即时通讯中的简写或火星文。幼稚的鬼画符更是找死,要不然无人理会,要不然就是招致一堆嘲笑。

    如果你是在非母语论坛提问,那么你有一些语法和拼写错误可以被原谅,但不能因此就在思考上错误百出。

    除非你知道对方使用哪种语言,否则请用英语,因为英语是网络中的工作语言。而且繁忙的黑客会直接删除那些使用他不懂的语言提的问题。如果英语不是你的母语,最好在提问中说明你可能在语法和拼写等方面有些错误:

    *  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中做个说明是不是能解决这个问题?如果是,那就像维护人员提出建议。


    如何解读答案

    RTFW 和 STFW:说明你提问前没做足功课

    有一个古老而又神圣的传统,如果你得到的回复是RTFW(Read The Fucking Manual),他十有八九是对的,赶紧滚去读吧。

    RTFW的亲戚是STFW(Search The Fucking Web),收到这个也是一样,滚去搜索。STFW温柔一点的说法是“Google 是你的好朋友”。

    在论坛中,你可能会被告知查看旧文章,实际上这么回复的人已经很温柔了。你应该在提问前就做过这事了。

    通常,用RTFW或STFW回答你的人会给你相应的网址,并且他回复你的同时也正在看相关内容。他之所以那么做,是因为他觉得你自己去搜索、学习比他给你填鸭式的教育对你更好。你不该为此而生气,因为以黑客的标准来看,你没有仔细搜索就提问,他们没有直接不予理会,已经是足够好心了。你应该对他们慈祥老奶奶般的耐心感激不尽才对。

    如果你看不懂

    如果你看不懂黑客的答案,不要立即要求对方做进一步说明。先用和之前一样的手段如Google、FAQ等等,努力把答案搞懂。如果竭尽全力还是搞不定再问,但同样也要说明你已经做出了哪些努力。

    例如,加入你收到的回答是“似乎你被zentry 卡住了,你需要先清除它”。愚蠢的做法是立即追问“zentry是什么?”正确的做法是“我读了操作手册,zentry只在 z 和 p 参数中提到,并且都没有说明要如何清除zentry。请问是这两个中的一个吗?还是我漏掉了?”

    对于粗鲁无礼

    在黑客的文化中,大部分看似粗鲁的行为并不是有意冒犯。那只是因为他们更关心如何解决问题,而不是怎样能让人感觉温暖舒适。这样的观念自然会导致他们说话直爽。

    如果你觉得被冒犯了,尽量平静下来。如果真有人做的太过分了,那论坛里的前辈一般都会跟他打招呼。但如果你大发雷霆,那大多数人都会觉得对方的做法是合规矩的,而你会被认为是不懂事。你的问题当然也得不到解答。

    另一方面,你偶尔真的会遇到无礼和装逼的行为,这时你可以立即以牙还牙,骂的他体无完肤。但在这之前你要非常确定对方确实是太过分了。纠正无礼的行为与开启一场口水大战只有一线之隔,如果你是个新人,那你也很难把握好这个尺寸。但要知道你是为了寻求答案的,所以还是尽量退一步海阔天空。

    有些人声称许多黑客都有轻微的自我中心主义或艾斯伯格综合征,因此不懂得在人类的社交中注意态度、分寸。这既可能是真的也可能是假的。如果你不是个黑客,那么相信这是真的可能会有助于你和我们这些古怪的人交流。而我们并不在意这些。


    不要像个loser一样

    你肯定会弄砸几次,而且你将会被公开告知你错在了哪里,并且你得到的批评可能会令你愤怒。这时候,不要抱怨、发牢骚、说自己遭受了语言暴力、对方应该道歉、威胁要提起诉讼、向对方的老板打小报告等等。正确的心态应该是——这很正常。一个论坛的行为标准并不是创办者规定的,而是使用者共同塑造的。不要抱怨说批评应该通过私人邮件,这不是我们的行事方式。

    当有人认为你的观点是错误的,不要认为你受到了侮辱,那是loser心态。你的观点不等于你!

    曾经有论坛由于受“礼貌至上主义”的错误引导,规定黑客们不能说话粗鲁、无礼,如果不想帮忙那就什么都别说。结果使那些有想法的人纷纷离开,论坛有变的毫无用处。友好或有用,你自己选。

    记住:当有黑客告诉你你错了并且不要再犯的时候,不论他的态度多么恶劣,他都是为了你和论坛好。因为它完全可以对你无视。即使你做不到心存感激,至少也不要抱怨。不要因为自己是个有课脆弱而敏感灵魂的新手,就应该被像小公主一样对待。

    有时真会有人无缘无故地攻击你,这时候开启一场口水战反而会引火烧身。这些人可能自认为自己很牛逼,聪明的做法是别理他们。

    也有些人喜欢比较巧妙地回答问题,所以收到回复后先仔细思考对方到底是什么意思。也行答案就藏在看似驴唇不对马嘴的回复当中。


    千万别问的问题

    Q: 我到哪里可以找到某软件或某资源?

    A:天哪,难道还有人不会用Google吗?

    Q: 怎么使用X 处理Y呢?

    A:这样问的人被X这一工具限制住了,这说明你不仅对X这一软件一无所知,对要解决的问题Y到底是什么也没搞清楚。黑客们通常会忽略这类问题,直到你想明白你到底要解决什么问题为止。

    如果你想处理Y问题,正确的提问方式应该是不要限定一定要用X这种工具或方法。

    Q:我怎么安装提示符?

    A: 如果你都有问出这个问题的智商,那你也有去Google的智商。

    Q: 我能用Bass-o-matic 工具把AcmeCorp 格式的文件转换为TeX格式吗?

    A: 试试不就知道了吗?别再浪费我的时间了。

    Q:我的程序/软件、、、出问题了。

    A:这让我怎么回答?我有义务花时间问你N个问题直到搞明白你到底遇到了什么问题吗?你就不能把问题说清楚吗?

    Q: 我电脑的Windows出问题了,能不能帮帮我?

    A:当然。把微软的垃圾扔掉,装个Linux之类的开放源码的系统。

    注意:如果一个软件有官方Windows版,你可以问与Windows相关的问题。但不要对上述回答感到惊讶,因为Windows 的东西通常都很烂。

    Q:我的程序崩溃了。我想有可能是系统工具X出问题了。

    A:有可能你是千百万用户中第一个发现系统严重bug的人,但更可能的是你只是瞎猜。下结论要有根据,要做出这么大胆的判断,你就必须要有详尽的缺陷说明文件做后盾。

    Q:我的Linux系统安装出问题了。能帮帮我吗?

    A:不能。难道要我飞过去吗?这只能找你当地的人帮忙。

    注意:关于系统安装的问题最好到相关的系统版本论坛或你当地的用户群论坛。详细说明你电脑的各个硬件配置,然后说明你的问题是怎样的。

    Q:我怎么才能破解他人账号/读取他人邮件呢?

    A:你这个人渣。


    好问题和蠢问题举例

    蠢问题:我在哪里可以找到关于Foonly Flurbamatic的资料?—— 得到的回答只能是STFW(Searching The Fucking Web)。

    好问题:我Google了 Foonly Flurbamatic 2600,但没有找到任何相关资料,请问我在哪里可以找到相关资料?——你已经做过搜索了,看来你真的遇到问题了。

    蠢问题:我从foo项目找来的源码无法编译。为什么做的这么烂?—— 好像别人都是傻逼一样,你这个自以为是的自大狂。

    好问题:我从foo项目找来的源码在Nulix 6.2版下无法编译。我查看了FAQ,但没有相关解答。这是我编译过程的记录,有什么不对的地方吗?—— 提问者说明了运行环境,读了FAQ,列出了出错的地方,并且没有把责任推给别人。

    蠢问题:我的主板出问题了,谁能帮帮我吗?—— 好啊,还要我喂饱你后帮你拍拍背,然后给你换尿布吗?

    好问题:我在S2464主板上试了X 、Y、 Z,但都没用。我又试了A 、B、C,在C的情况下可以看到florbish 在grommicking,但结果出人意料。是什么导致了主板上出现grommicking呢?我还需要做哪些测试才能找出问题所在呢?—— 他列出了自己为解决问题所做的努力,而不是消极地等待别人帮忙。

    要能区分“给我答案”和“给我一点指引,告诉我我还可以做些什么”之间微妙但终于的差别。好问题让回答者一下就清楚地知道我面临的情况是怎样的。我也显示出自己和他们拥有同等的能力,希望和他们共同探讨这一问题。我也表示了对他们的时间的尊重,因为我已经进行了所有想到的尝试。


    如果最终还是没得到解答

    如果没人回答你的问题,不要以为是整个论坛都没人能解决这个问题。有时可能只是看到你问题的人没能力解决这个问题。

    总之,到处张贴你的问题不好,会打扰大家。有耐心一点,能回答你的问题的人可能在不同的时区,也有可能是你提问的方式不对。


    如何正确地回答问题

    *  温柔点。出现问题有时会让人变得急躁、易怒、脑子短路,所以不要过分苛责他们。

    *  私下回复初犯者。一个零基础的新手可能真的不知道去查找旧文、FAQ,没有必要对他们进行公开批评。

    *  不要不懂装懂。假装权威的错误指导不如不指导,“知之为知之,不知为不知”。

    *  如果帮不上忙,至少也不要捣乱。不要故意给出错误的引导,这会破坏提问者的所有努力。

    *  进一步问清各种细节。这样能把蠢问题变成好问题,要知道我们都曾是新手。

    *  如果对方真的是因为懒才坐等答案,那回复RTFM是最恰当的。但大部分情况下还是给出相关网址更好。

    *  帮人帮到底。如果提问者使用了错误的工具或方法,那就建议他使用更好的,并重新界定问题。

    *  帮助改善社群。如果你发现了个好问题,那就想想怎么能避免这一问题再次出现。如果能通过修改FAQ做到,那就告诉相关人员。

    *  授人以鱼不如授人以渔。如果你是通过搜索了解答了对方的问题,那就教会对方这一方法,而不要只是把问题的答案给对方。

    相关文章

      网友评论

        本文标题:怎样正确提问

        本文链接:https://www.haomeiwen.com/subject/ilarfftx.html