提问的智慧(个人总结版)

提问前的准备

在你向任何非亲非故的同行咨询技术问题之前, 应该先做以下事情:

  1. 如果可以用chatGPT的话, 可以先尝试直接问chatGPT(如果用不了请忽略此条)
  2. 在社区的issue或者FAQ中尝试寻找答案
  3. 尝试使用google搜索, 不推荐使用baidu
    • 搜索时应使用关键词搜索, 而不是口语化表述
    • 如使用国外的技术或者框架, 优先使用英文关键词检索
  4. 查看官方文档
  5. 自己思考或通过试验的方式尝试解决。即便解决不了,你也可以获得更多有用的信息
  6. 找自己团队或者认识的懂相关知识的朋友咨询
  7. 如果你是程序员,尝试阅读源代码以找到答案(如果你不是或者你认为自己不是,请忽略此条)

如果你做了上述事情,你就获得了向他人提问的资格

提问时,先说明你做了上述尝试,以及你从中发现了哪些关键信息,这会给对方留下一个好的印像。他们会觉得你是同道中人,也是一个努力上进的好青年

审问之,慎思之。好的答案不是免费的,要么你付费咨询,要么请用一个好的问题来做交换。轻率的提问只能得到轻率的回答,或者如石沉大海

如何提问

描述问题应准确且有内容

  • 仔细、清楚地描述问题的症状
  • 描述问题发生的环境(主机、操作系统、应用程序等)
  • 描述提问前做过的研究及其理解
  • 描述提问前为确定问题而采取的诊断步骤
  • 描述最近对计算机或软件配置的任何相关改变
  • 如果可能,提供在可控环境下重现问题的方法

尽最大努力预测别人会提到的问题, 并提前备好答案, 这样可以提高沟通的效率

如果你认为是代码有问题, 则应该提供可复现的测试代码和样例, 这会让你得到回复的几率大幅增加

西蒙 · 泰瑟姆(Simon Tatham写过一篇 如何有效报告Bug的文章, 强烈推荐各位阅读

有节制的提出请求

直接要求他人帮你解决问题是愚蠢且自私的。在你遇到问题, 寻求他人帮助时, 你应抱着一定要自己解决的信念, 别人只是给你提供解决思路和纠正错误。没有人有帮你解决问题的义务, 合理有节制的提出请求, 你才有可能得到他人的回复

礼多人不怪

礼貌一点, 使用『你好』、『请』、『谢谢』, 让别人明白你感谢他们无偿的帮助

问题解决后有回复

有些人在他人帮助下解决了问题就销声匿迹, 远走高飞。别人花费大量时间提供帮助, 而他却在问题解决后不愿向帮助的人说明一下结果

问题解决后向所有帮助过的人回一条消息, 让他们知道问题是如何解决的并再次感谢。有来有往,来日方长

如果问题比较复杂, 可以梳理总结一篇文章发出来, 一来可以自己巩固, 二来可以帮助他人。前车之鉴, 后事之师。

如何更好的回答他人

态度和善一点

遇到难题时的压力可能会让人显得无礼或愚蠢,但你要知道,这并不是真实的他。他只是遇到难处了,宽容善待他人,也是体现自己的良好修养。良言一句三冬暖,恶语伤人六月寒

对初犯者私下回复

对那些无心之失没有必要当众羞辱。闻道有先后, 术业有专攻, 如是而已。人非生而知之者, 大家都是从麻瓜做起的, 一个真正的新手也许连怎么搜索或在哪找FAQ都不知道。回复别人 STFW 合理但不合情

没有十足把握,就别信誓旦旦

一个听起来权威的斩钉截铁的错误回复比没有回复还要糟,不要随意许诺,信誓旦旦地说“就是这的问题”。时刻记住,谦受益,满招损

可以不帮忙,但别瞎闹

不要在具体步骤上开玩笑,有些可怜的麻瓜真的会把 rm -rf /* 当成重启指令

探索性的反问以启发提问者打开思路

授人以鱼, 不如授人以渔。探索性的反问、讨论比直接给出答案更难能可贵

从中发现自己软件的不足

当回复一个好问题时, 问问自己 『如何修改程序或 FAQ 文档以免再次解答同样的问题?』

过程比结果更重要

如果你自己也是研究了很久之后才得到答案, 那在回复他人时,不仅回复其然, 最好是能回复其所以然。这个过程才是真正的价值所在

注:

STFW: 全名是 Search The F**king Web , 它还有个弟弟叫 RTFM, 全名是 Read The F**king manualSTFW 还有一个温和点的说法,叫 google is your friend

参考: 提问的智慧-中国版