提问也是一门学问
混迹于各大技术群,下面的这些场景,你肯定经常遇到。
小明:哪位大哥能帮忙看下这个问题吗?为什么数据还是不能插入?
小明:[一张图]
小白:有大佬在么?关于 xx 有人会么?
小明:[一张图] 或者 [一小段代码]
小明:这个为啥报错啊?
……
面对这些提问,热心回答者最初更多的是各种猜测:“你说的 xx 是这个 xx 意思?”、“能不能说下你是如何使用的?”、“你有没有检查过 xx?”……
经过一大圈的询问,才搞清楚对方想问的问题!
归更到底,是你不会提问,总是零散的提问、不愿一次性描述问题发生的场景、已经做过哪些排查等等。所以,才有了大家的各种猜测、推断,最终浪费了别人的时间,回答的可能却不是你想要的结果。
今天想和大家一起谈谈关于提问的这些事,如何高效提问,便于更快、更直接的诉求你的问题。
提问也是一门学问。
如果你是一个经常游逛在 github 上,特别是一些外国优秀的开源项目,在issues
中你可能就会找到答案。
提问言简意赅,没有废话,例如:
Describe the bug:
I'm trying to upload a file and stream it through a filter to a client of a object storage. It works OK with very small files, but it seems like the gateway ignores slight bigger files.
org.springframework.boot:spring-boot-starter-test:jar:2.0.0.RELEASE
org.springframework.cloud:spring-cloud-starter-gateway:jar:2.0.0.M9
org.springframework:spring-core:jar:5.0.4.RELEASE
Sample:
https://github.com/RichardMarto/cloud-gateway-test/tree/master
关于提问,有以下建议,可供参考:
1、提问前
在提问题之前,先做以下事:
尝试搜索互联网寻求答案。
尝试阅读相关手册或官网寻求答案。
尝试阅读“常见问题文档”(FAQ)寻求答案。
尝试自己检查或排查来找到答案。
提问时,请先做了以上这些事情。
运用某些策略,比如用谷歌(Google)搜索你遇到的各种错误提示, 这样很可能直接就找到了解决问题的线索。 即使没有结果,在寻求帮助时提一句“我在谷歌中搜过下列句子但没有找到什么有用的东西” 也是件好事,至少它表明了搜索引擎不能提供哪些帮助。将搜索关键词与你的问题及可能的解决方案联系起来,还有助于引导其他有类似问题的人。
别着急,不要指望几秒钟的谷歌搜索就能解决一个复杂的问题。读一下常见问题文档。在提问之前,再思考一下问题。
认真地思考,准备好你的问题。轻率的提问只能得到轻率的回答,或者压根没有。在提问时,你越是表现出在此前做过思考与努力去解决自己的问题,你越有可能得到真正的帮助。
注意别提错问题。
“有没有人能指个方向?”,“我这样写是不是不对?”,“我应该查哪个网站?”,通常要比“请给出我可以用的完整步骤”更容易得到回复。
2、提问时
2.1 明确问题
问题主题是你在五十个或更少的字以内吸引大家注意的黄金机会,不要用诸如 “请帮我”之类的唠叨浪费机会。
使用主题的好惯例是“对象──偏差”(式的描述),许多技术支持组织就是这样做的。在“对象”部分指明是哪一个或哪一组东西有问题,在“偏差”部分则描述与期望的行为不一致的地方。
愚蠢的问题:
救命啊!我的这段代码运行不了,谁能帮我看看啊!
明智的提问:
各位,我下面这段代码是这样写的,理论上运行的结果应该是 xx,可是现在却运行不了。我通过 Debug 调试也没有发现啥异常,有人能帮我看看或者给个思路么?
2.2 清楚表达你的问题
清楚、良好地表达你的问题非常重要。花点额外的精力斟酌一下提问字句,确保别人能够看得懂。
2.3 准确描述问题
仔细、清楚地描述问题的现状。
描述问题发生的环境(操作系统、应用程序、编程语言及任何相关的内容)。
描述提问前做过的研究及其理解。
描述提问前已经做过哪些尝试或排除。
描述出现问题前后,做了哪些修改。
如果可能,可提供程序便于回答者直接重现问题。
2.4 关于代码的提问
别要求他人能直接帮你写代码。
张贴几百行的代码,然后说一声“它不能运行”,这只能让人反感,没人愿意理会你。只贴几十行代码,然后说一句“在第七行以后,本应该显示,但实际出现的是 xx”,这样提问非常有可能让你得到回复。
如果你只是想让别人帮忙审一下代码,在最开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。
2.5 礼貌提问
礼貌一点,使用 请
和 谢谢
之类的,让别人明白你感谢他们无偿花时间帮助你。
3、解决后
问题解决后向所有帮助过的人追加一条消息,让他们知道问题是如何解决的,并再次感谢大家。
版权声明: 本文为 InfoQ 作者【xcbeyond】的原创文章。
原文链接:【http://xie.infoq.cn/article/b8c2d206a01453ad9148d1737】。文章转载请联系作者。
评论