如何提问

摘要(1min Take Away)

  • 提问前,确定自己已经RTFM(Read The Fucking Manual) 和 STFW (Search The Fucking Web).
  • 提出的问题中要显示出自己已经为解决该问题作出了很多尝试与努力。
  • 在描述问题时要清晰明了,让他人知道你出现问题时所处的环境和其他情况(Context).
  • 有礼貌。在提问前、中、后都应有礼貌。
  • 反馈,让帮助你的人知道你的问题已经通过他的帮助得以解决。更好的情况是对自己的问题进行总结,让后来者能够直接从你这一次解决问题的过程中直接获益。
  • 在整个过程中都需要展现出自己知晓别人的帮助并非义务,别人付出的宝贵时间值得尊重和感谢。
详细一点 提问前,首先要仔细思考自己所遇到的问题,通过网络搜索或者阅读相关技术文档来尝试自己解决问题。现在大家的时间碎片化很严重,很多人的耐心已经被娇惯得无法耐心阅读一大段的文字,一大群的伸手党让人不胜其烦。所以如果你无法做到这一点,请培养自己阅读的能力,坚持下去,心无旁骛地阅读半个小时以上,让阅读有些枯燥的技术文档也变得不那么难熬。
  • 网络搜索 我觉得一个是能搜索Google就不搜索Baidu. 在我感觉下来,在Google搜索中文关键字得到的结果都会比Baidu得到的搜索结果更加符合我的需要,有可能是因为百度前几条都是广告的原因,也有可能CSDN的复制粘贴攻略太多了,占领了百度版面?第二个是关于问题的关键字提取。要自己去认真思考问题,提出更准确明晰的关键字。
  • 技术文档 去相关软件的开发网页找找,去Github的readme,wiki,FQA,去Archwiki,去StackOverflow社区等等瞧一瞧。直接man xxxorxxx --helpor:help xxx试一试。
好了,发现自己闷着头找了、看了一个多小时还是没弄明白个所以然来,是时候请强力外援了。对了,在提出问题的时候,需要注意在问题的描述中表达自己已经对其做了很多努力,可以尝试在句子中加入这些语句,比如:
我在Google中搜过XXX,xXX,但是没有找到有用的东西。
我在文档的某个位置看到了XXX,但是还是没有能够解决问题。
因为你自己已经对问题进行了很多探究和尝试了,对其背景知识也有一定的了解了。这时候提出的问题一定更加的有内容,更精炼,更知道自己的痛点到底是什么。所以提问的时候,描述一定要准确,告诉别人自己身处的具体环境,给别人上下文才能更好地回答你的问题。比如机器配置、操作系统、应用程序、版本号、其他相关信息。可以描述再提问前你是怎么去研究和理解这个问题的,描述再提问前为确定问题而采取的诊断步骤,描述最近做过什么可能的相关的硬件和软件变更,尽可能提供一个可以重现这个问题的可控环境方法。
描述目标而不是过程很多时候为了达到一个目标有很多种办法,你卡在自己的方法上无法自拔,但其实即使成功使用这个方法也是绕了一个大弯。更有经验的开发者获取能够直接通过最优解达到你的目的。所以你可以描述自己的过程,但是一定要先说出自己希望达到的目的。
有礼貌。虽然有礼貌对得到期望的满意答案的作用不及做好前面所说的工作,但仍然是很重要的。特别要提的是,不仅仅是需要在提问前有礼貌,在提问后,得到满意答案后,也应该有礼貌。
反馈。当自己的问题得到解决,最好的表达谢意的办法就是告知对方自己问题已经获得解决,并对其进行总结。因为很多时候,你遇到的问题别的后来者也可能会遇到,要是每个人都去提同样的问题,那么再有耐心的回答者也无暇顾及。而对于问题的总结描述,即能够感谢回答者的帮助与时间,又能够让后来者从中获益,在这个过程中还能给了回答者和自己更多的社区Credit.
总之,一定不能Take things for granted,没有人有义务帮你解决问题,所有人的时间都是宝贵的,如果你希望占用别人的时间帮助自己解决问题,一定要展现出自己对提供帮助的人的尊重与感谢。
【如何提问】Ref: 提问的智慧 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

    推荐阅读