在某一个瞬间,看到优秀的人不经意就把问题解决了,即使不能解决也可以找人帮忙解决。尴尬的是你不知道如何解决?也不知道如何向别人请教,即使硬着头皮去请教了,收获的也只是一地的‘心碎“,谁让你脆弱呢?
庆幸的是我找到了一个网站http://www.catb.org/esr/faqs/smart-questions.html给了我一套关于“提问题”的方法论,我只是简单翻译了一下,想要看原版的可以自己点击进去。
问之前要做些什么?
1、尝试查找答案,通过搜索您计划发布到的论坛或邮件列表的档案;
2、尝试通过搜索网络找到答案;
3、尝试通过阅读手册找到答案;
4、尝试通过阅读常见问题解答找到答案;
5、尝试通过检查或实验找到答案;
6、尝试通过询问熟练的朋友找到答案;
7、如果您是程序员,请尝试通过阅读源代码找到答案。
这些问题是一个好的开端:
1、有人会提供pointer(指针)吗?
2、我的例子缺少什么?
3、我应该检查哪个网站?
当你问的时候?
仔细选择你的论坛
如果你问下面的问题,那你有可能被忽视,甚至是一个不折不扣的失败者。具体如下:
1、将您的问题发布到一个不在话题的论坛上;
2、将一个非常基本的问题发布到预期有高级技术问题的论坛,反之亦然;
3、交叉发布到太多不同的新闻组;
4、将个人电子邮件发送给既不是您的熟人也不是个人负责解决您问题的人
你需要做的是:第一步是找到合适的论坛;其次,谷歌和其他网络搜索方法是你的朋友。
Stack Overflow
搜索,先用Google,再用Stack Overflow。
Stack Exchange已发展到100多个网站,选出三个最好的:
超级用户是关于通用计算的问题。 如果您的问题与您仅通过网络连接进行通信的代码或程序无关,那么它可能就在这里。
Stack Overflow用于编程问题。
Server Fault用于解决有关服务器和网络管理的问题。
Web and IRC forums
您的本地用户组或您的Linux发行版可能会在新手可以获得帮助的情况下宣传Web论坛或IRC频道。(在非英语国家,新手论坛更可能是邮件列表。)
这些是第一个要问的好地方,特别是如果你认为你可能已经绊倒了一个相对简单或常见的问题。 广告中的IRC频道是一个公开邀请,可以在那里提问并经常获得实时答案**。
使用项目邮件列表
检查项目及其主页的文档以获取项目邮件列表的地址,并使用它。这项行动有下面几个原因:
任何足以让一个开发人员问到的问题对整个项目来说都是有价值的。
相反,如果你怀疑你的问题对于邮件列表来说太愚蠢,那么这并不是骚扰个别开发者的借口。
在列表上提出问题会在开发人员之间分配负载。
个别开发人员(特别是如果他是项目负责人)可能太忙而无法回答您的问题。
大多数邮件列表都已存档,档案由搜索引擎编制索引。
如果您在列表中提出问题并且已经回答,那么未来的问题可以在Web上找到您的问题和答案,而不是再次询问。
如果经常会看到某些问题,开发人员可以使用该信息来改进文档或软件本身,从而减少混淆。
但如果私下询问这些问题,则没有人能够全面了解最常问到的问题。
许多人认为私人电子邮件应该保密,即使其中没有任何秘密。 通过允许转发您的邮件,您可以让您的通讯员选择如何处理您的电子邮件。
使用有意义的特定主题标题
不要把它浪费在像“请帮助我”这样的唠叨上;
不要试图用痛苦的深度给它们留下深刻的印象;
不要简单地回复列表消息以启动一个全新的线程;
如何做到使用有意义特定主题标题呢?
编写“对象偏差”描述的过程将帮助您更详细地组织您对问题的思考;
想象一下查看问题档案的索引,只显示主题行;
因此,除非您确定只想询问当前活动在该主题中的人员,否则请启动一个新主题。
轻松回复
使用“请将您的回复发送给...”完成查询后,您很可能无法得到答案。
如果您想在线程中有人回复时发送电子邮件副本,请求Web论坛发送; 在“观看此主题”,“在答案上发送电子邮件”等选项下,几乎所有地方都支持此功能。
用清晰,语法,拼写正确的语言书写
请正确拼写,标点和大写。
不要将“its”与“it's”混淆,将“loose”与“lose”混淆,或将“discrete”与“discreet”混淆。
不要输入所有大写字母; 这被视为大喊大叫并且被认为是粗鲁的。
下面这样的话也不要说,不然你的回信也是石沉大海。
英语不是我的母语; 请原谅输入错误。
如果你说$ LANGUAGE,请发邮件/ PM me; 我可能需要协助翻译我的问题。
我熟悉技术术语,但对我来说,一些俚语表达和习语很难。
我用$ LANGUAGE和英文发布了我的问题。 如果您只使用其中一个,我会很乐意翻译回复。
可访问的标准格式发送问题
1、发送纯文本邮件,而不是HTML;
2、 MIME附件通常是正常的,但前提是它们是真实内容,而不仅仅是您的邮件客户端生成的样板**;
3、不要发送电子邮件,其中整个段落是单个多重包装的行;
4、不管怎样,请勿以任何固定列宽包装数据(例如日志文件转储或会话转录);
5、不要将MIME Quoted-Printable编码发送到英语论坛;
6、永远不要指望黑客能够阅读封闭的专有文档格式,如Microsoft Word或Excel。
7、如果您要从Windows计算机发送电子邮件,请关闭Microsoft有问题的“智能报价”功能(从“工具”>“自动更正选项”中,清除“键入时自动套用格式”下的智能引号复选框。);
8、在网络论坛中,不要滥用“笑脸”和“HTML”功能。
关于你的问题要准确,有效
1、仔细清楚地描述您的问题或错误的症状;
2、描述它发生的环境(机器,操作系统,应用程序,等等)。 提供供应商的分发和发布级别(例如:“Fedora Core 7”,“Slackware 9.1”等);
3、描述您在提出问题之前尝试并了解问题所做的研究;
4、描述您在提出问题之前尝试自行确定问题的诊断步骤;
5、描述计算机或软件配置中最近可能发生的相关更改;
6、如果可能的话,提供一种在受控环境中重现问题的方法。
音量不是精确
如果您有一个庞大而复杂的测试用例正在破坏程序,请尝试修剪它并使其尽可能小。
好处是:
一是被视为努力简化问题使得你更有可能得到答案;二、简化问题使你更有可能获得有用的答案; 三、在完善您的错误报告的过程中,您可以自己开发修复或解决方法。
不要急于声称你发现了一个bug
当您遇到某个软件问题时,除非您非常非常确定自己的理由,否则不要声称您发现了错误。
提示:除非您可以提供修复问题的源代码补丁,或者针对演示不正确行为的先前版本的回归测试,否则您可能不够确定。
卑躬屈膝不能替代做功课
不要浪费你的时间或我们的时间在原始的灵长类动物政治上。 相反,尽可能清楚地呈现背景事实和您的问题。 这是一种更好的定位自己的方式,而不是卑躬屈膝。
描述问题的症状,而不是你的猜测
告诉黑客你认为导致问题的是什么并没有用。 (如果您的诊断理论是如此热门的东西,您会咨询其他人寻求帮助吗?)
因此,请确保您告诉他们出现问题的原始症状,而不是您的解释和理论。 让他们做解释和诊断。 如果您觉得说出您的猜测很重要,请清楚地标明它,并说明为什么答案不适合您。
按时间顺序描述您的问题症状
找出问题最有用的线索通常在于之前发生的事件。 因此,您的帐户应该准确描述您所做的事情,以及机器和软件的作用,从而导致爆炸。
在命令行处理的情况下,具有会话日志,并引用相关的大约20行是非常有用的。
描述目标,而不是步骤
如果您正在尝试找出如何做某事(而不是报告错误),首先要描述目标。 只有这样才能描述你被封锁的特定步骤。
不要让人们通过私人电子邮件回复
明确你的问题
开放式问题往往被视为开放式时间来讨论。
要了解专家所居住的世界,请将专业知识视为丰富的资源,并将时间作为稀缺资源来应对。
你隐含地要求的时间承诺越少,你就越有可能从一个真正优秀且非常忙碌的人那里得到答案。
在询问代码时
不要求别人调试破坏的代码而不提示他们应该搜索什么样的问题。
什么是最小的测试用例?
这是问题的一个例子; 只需足够的代码来展示不良行为,而不是更多。
你如何制作一个最小的测试用例?
如果您知道哪些代码行或代码段产生了有问题的行为,请复制它并添加足够的支持代码以生成完整的示例。
如果您无法将其缩小到特定部分,请复制源并开始删除不影响有问题行为的块。
不要发布功课问题
修剪无意义的查询
拒绝接受关于语义空问题的诱惑。例如“任何人都可以帮助我吗?”或“有没有答案?”
首先:如果你已经中途写出了你的问题描述,那么这些固定的问题就是多余的; 第二:因为它们是多余的,黑客觉得它们很烦人 。
不要将您的问题标记为“紧急”,即使它适合您
声称紧迫性很可能适得其反:大多数黑客只会删除诸如粗鲁和自私的尝试以引起立即和特别关注的信息。
紧急:帮我保存模糊的小海豹!“即使黑客认为模糊的海豹很重要,也能让你安心避开。
礼貌从不伤害,有时也有帮助
跟进解决方案的简要说明
问题解决后,向所有帮助过您的人发送说明; 让他们知道它是如何出来的,再次感谢他们的帮助。
如果问题引起了邮件列表或新闻组的普遍兴趣,那么在那里发布后续内容是合适的。
如何解释答案?
RTFM和STFW:如何告诉你严重搞砸了
有一个古老而神圣的传统:
如果你得到一个写着“RTFM”的回复,发送它的人认为你应该read the fucking manual。 他或她几乎肯定是对的。 去看吧。
RTFM有一个年轻的亲戚。 如果您收到“STFW”的回复,发送它的人认为您应该searched the fucking web。 他或她几乎肯定是对的。 去搜索它。 (较温和的版本是当你被告知“谷歌是你的朋友!”)
如果你不明白......
如果您不理解答案,请不要立即恢复要求澄清。 使用您用来尝试回答原始问题的相同工具(手册,常见问题解答,网络,熟练的朋友)来理解答案。
然后,如果您仍需要澄清,请展示您所学到的知识。
处理粗鲁
在黑客圈子中看起来粗鲁的大部分内容并不是为了冒犯。
相反,它是直接的,彻头彻尾的废话沟通风格的产物,对于那些更关心解决问题而不是让别人感到温暖和模糊的人来说,这是很自然的。
不要像失败者的反应
当事情搞砸时,你做的最糟糕的事情如下:
抱怨经历;
声称受到口头攻击;
要求道歉;
尖叫;
屏住呼吸;
威胁诉讼;
向人们的雇主抱怨;
离开马桶座。
相反,你应该做的事情应该是:
一是克服它,这是正常的。 事实上,它是健康和适当的;二是夸张地“友好”(以这种方式)或有用:选择一个;
不要去回答的问题
1、Where can I find program or resource X?
2、How can I use X to do Y?
3、How can I configure my shell prompt?
4、Can I convert an AcmeCorp document into a TeX file using the Bass-o-matic file converter?
5、My {program, configuration, SQL statement} doesn't work?
6、I'm having problems with my Windows machine. Can you help?
7、My program doesn't work. I think system facility X is broken.
8、I'm having problems installing Linux or X. Can you help?
9、How can I crack root/steal channel-ops privileges/read someone's e-mail?
如果你无法得到答案
如果您无法得到答案,请不要亲自接受,我们认为我们不能帮助您。 有时,被询问群体的成员可能根本不知道答案。
没有任何回应与被忽略不一样,但不可否认的是,很难发现外界的差异。
如何以有益的方式回答问题?
1、要温柔;
2、Reply to a first offender off-line;
3、如果您不确定,请说出来;
4、如果你无法帮助,请不要阻碍;
5、询问探究问题以获得更多细节;
6、如果您要回答这个问题,请给予良好的价值;
7、帮助您的社区从这个问题中学习;
我也自己开了一个微信公众号(丁昆朋YKPD),喜欢写作、英语、编程、区块链的朋友可以关注一下,共同成长。