如何优雅地提问
1 在各个地方提问时,大家会发现有几个现象:
- 提问题后没人回答
- 提的问题过了很久才有人回答
- 对方老是嫌弃自己太菜
2 问问题前,确认自己已经学习了文档中驱动相关、软件相关与硬件相关的章节
文档中驱动相关、软件相关与硬件相关的章节,是使用 my系列 的基础中的基础,不管你是否有过开发经验,是大佬还是小白,请务必从前到后完整阅读并操作一遍。
很多问题会在这个过程中解决,切忌一开始就到 QQ群、论坛 、issue, 或者邮件随便提问,很多在文档中一开始就说明了的问题可能不会得到社区的及时的回答,节省大家的时间,也为了更好的社区环境,大家共同更好地成长,请互相理解。
3 提问时,尽量做到以下几点,会大大提高问题被快速解决的几率:
缕清问题,弄清楚到底发生了什么,以及我做了什么,包括:
我想实现什么效果,什么功能?
为了实现这个效果,我是怎么做的,详细的过程是什么?
实施的过程中,什么错误发生了,现象是什么(比如报错了,报了什么错,完整的错误内容是什么?)
我是否认真看了报错的信息,报错信息中是否有提示了错误的原因和解决的方法?
根据这些报错信息,仔细思考,是否能解决问题?
搜索文档、issue,以及用搜索引擎能不能搜索到问题的解决方法?
4 如果问题自己实在不能解决,需要请教于人,需要考虑:
请教谁,在哪里请教,谁会更有几率回答我的问题?以及实时性如何?
我应该给他提供什么数据和现象他才能愿意快速帮我解决问题?
- 提供我的目的(方便让回答者知道你在做什么事情)
- 提供完整的实施过程,以及过程中出现的现象(方便回答者跟着你的流程去做一遍,即问题复现)
- 给出错误的地方,指明哪里出现的现象或结果和自己预期的不一样!(让回答者知道,哪里没达到预期)
- 提供出现的错误信息,需要完整,尽可能更多地截图,更多的日志,千万别小气地截一张小图,或者之给出日志的一部分(因为回答者可能很久没做这件事情了,忘记了一些细节,需要靠截图和完整日志来快速回忆起来;而且根据详细的日志可以快速定位到问题处在哪里)
怎么提问态度显得比较诚恳,就算我再小白,大家也愿意回答
5 提问模板
提问尽量做到提问优雅,不需要添加多余的语气词,抱怨的词汇,斟酌每一个词和标点符号,站在回答人的角度思考问题,如何让回答的人快速帮助自己解决问题,字数太少描述不清楚,字数太多则让人没有耐心。
6 标题
无论在哪里提问(包括QQ群
),给自己的问题拟定一个30
个字左右标题,阐明问题的中心思想,包括:
- 问题类别,是问题请教,还是 BUG提交,还是经验分享等等。让大家在满是文字的屏幕上可以立马定位到你想做什么
- 一句话阐明问题的中心你思想,比如
运行摄像头示例程序,报错 reset fail,可能是硬件问题
所以综合后标题可以是这样:
【mycobot 提问】 运行摄像头示例程序,报错 reset fail,可能是硬件问题吗
这样的标题尽量不要出现:
啊啊啊啊啊为什么我的板子又不行了
为什么我的代码不能运行了
为什么我的屏幕黑屏了
【mycobot 提问】 收到了开发板,开发板屏幕是红的,一行小字,为什么呢
我运行xxx程序,出了问题
可以这样问:
【mycobot 提问】 我的板子在我接反电源后,现在板子无法启动,怎么判断板子哪里烧毁了,如果可以,怎么救活呢
7 内容
首先站在回答者的角度,如果被问问题:
- 首先要知道对方要做什么,实现什么目标
- 为了实现这个目标,他是参考了哪里的步骤做的
- 实际上采用了哪些具体的步骤,然后在那一步出现了问题,方便我照着他的步骤去尝试复现一下现象。如果这个问题看起来不好解决,又没有复现的步骤,那可能要花很多时间去复现,先放一放先解决其它问题吧
- 具体出现的问题是什么,如果他只说出了问题,我怎么知道他出了什么问题,也许是身体不适?所以这很重要,需要让他说明出问题时的现象,并指明与预期有什么不同,不然我还得去猜去对比和预期有什么不同,解决问题的时长又增加了
- 出问题了,我可能需要他的日志文件,方便我根据日志去看源码等进行分析,不然可能会很难解决问题,那这个问题可以放到后面慢慢看吧
综上,可以这么提问:
- 详细阐明自己的目标,想做什么事情,现象应该是什么样的
- 我有没有参考哪里的文档、代码或者教学
- 如何复现错误:具体怎么做的,每一个步骤写详细,直到问题出现
- 详细阐述错误出现时的现象,以及和期望的相比哪里不一样,需要证明问题确实出现了
- 附带日志文件,以及截图,甚至是视频,日志和截图一定要完整,不要只截取一小部分,回答者可能会从你的完整日志和截图中发现一些你没注意到的问题,这很重要
- 另外,粘贴代码注意格式,别粘贴后显示很乱,无法入目,尽量能复制后直接能运行
- 最后,对解答问题的社区朋友们表达感谢