前言
本文是根据Github
上How to ask questions the smart way
一文整理而来。由于原文篇幅较多,本文仅摘取了原文我感兴趣或认为重要的一部分,放在这里。想看原文的,请点击这里。
为什么学会提问很重要
在现实世界中,我们难以避免他人沟通交流。无论是面对面还是网络的形式。那在交流中,也总是会出现提问题的时候。好的提问题的方式,能够提高沟通的效率,降低交流的成本;而坏的方式,别人心里可能很有意见,敷衍你的问题,甚至不想回答这个问题。
实际中,我们可能或多或少的经历过低效沟通的痛苦以及高效带来的便利。
这个有哪些要注意的方面
提问之前
在你准备要通过电子邮件、论坛、贴吧等提出技术问题前,请先做到以下事情:
尝试在你准备提问的论坛的旧文章中搜索答案。
尝试上网搜索以找到答案。
尝试阅读手册以找到答案。
尝试去FAQ看看能不能找到答案。
尝试自己检查或试验以找到答案。
向你身边的有经验的人打听以找到答案。
如果你是开发者,请尝试阅读源码、查看日志等定位问题寻找答案。
当你提出问题的时候,请先表明你已经做了上述的努力;这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者。如果你能一并表达在做了上述努力的过程中所学到的东西会更好,因为人们更乐于回答那些表现出能从答案中学习的人的问题。
在你提问时
慎选提问的论坛
小心选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者:
- 在与主题不合的论坛上贴出你的问题。
- 在探讨进阶技术问题的论坛张贴非常初级的问题;反之亦然。
- 在太多的不同新闻群组上重复转贴同样的问题。
- 向既非熟人也没有义务解决你问题的人发送私人邮件或信息。
如果在错误的场合提问,可能不会有人回复这个问题,或者不够专业的人回复这个问题。当然,有人回答这个问题可能是出于好心,但是答案未必能解决你的问题,你也不想看到这样是吧。
描述问题
问题的描述同样重要,不够清晰的描述,难以让别人快速了解你的情况。问题描述应足够精炼,又能同时覆盖你的问题。
- 使用有意义且明确的标题
- 描述问题的环境(例如机器配置等),你在什么操作下出现的这个问题
- 说明一下问题的详细情况,去掉无意义的描述。
- 你在处理这个问题上做了哪些努力,尝试了哪些方案,都有什么样的效果。
- 说明一下你的预期结果,再说你哪个过程出现了问题。
态度
不会有人喜欢无礼、傲慢的提问并要求得到回答,但也不应该过于低声下气的提问,这无益于让别人帮你解决问题。
这个过程中,大家应做到相互尊重,有理有据。
除非双方或大部分人都具备一样的知识背景,否则不应使用过于专业的术语交流。与陌生人交流,好的态度,别人才可能愿意进一步帮你解决问题。
问题解决后
当问题解决后,我们仍然有些补充性工作要做:
- 向为你提供帮助的人表示感谢
- 愿意的话,可以把这次问题及解决过程写出来,让别人知道这是怎么解决的。
- 如果是
bug
的话,也可以提交给开发者,让他们知道并修复这个bug
。
总结
有几点我觉得是在这个过程中比较重要的:
- 学会使用Google等搜索引擎,查询自己的答案,不要遇到问题就问。
- 找合适的场合寻找问题答案,对技术性问题跑到生活板块下找,可能不会解决你的问题。
- 对问题要有足够清晰的描述,以帮助别人能快速定位你的问题,不要问为什么会这样、我该怎么办等描述。
- 和别人交流问题的过程中,要把握分寸,懂礼貌,不会有人喜欢无礼的人。
以上就是我根据Github
仓库How to ask questions the smart way
中摘取的一些。
其实,我们能够发现整个过程还是比较繁琐的,但这是必要的。可能寻找一个问题的答案,未必要完整按这个流程来,但是这给我们提供一个途径的参考。我也认为,解决问题的过程可能需要付出很多的“代价”,但这是值得的。