社区和交流中充斥着没有意义的提问,有许多问题得不到答案并非由于问题太难,而是提问的角度和方法完全错误。 科学的提问需要一些理论指导,从感性的角度出发,我建议提问者务必抱持这样的心态再向人请教:“为解答者提供更有利于解答的条件”。
一个好的提问往往携带了大量的调研和思考,而不是脑子一热就脱口而出,举一个例子:
提问者:请问怎么重装系统?
这就是一个经典的无法解答的问题。无法解答的点在于信息极度缺失,以至于让人做出任何回答都是在浪费时间:
- 你目前是什么系统?——要知道 Windows、Mac、Linux、iOS、Android 要重装系统的流程都不一样。
- 目前是什么设备?——有的系统根本无法装在特定设备上。
- 是否有按照自己的设备和系统在网上找过资料?——没找过就去找。
- 是否有按照找到的资料实践?——没做过就去做。
- 实践进行到哪一步?——没有记录就记下来。
你看,这是一个可以自己解决的问题,但是被抽象成一个极度复杂的问题之后,任何人都对它束手无策了。 优秀的提问就应该将这些信息一一展开,让接收者能够更好地理解问题,且提供充足的资料,例如 问题的背景、历史遗留问题、以往的做法等等。
“为解答者提供更有利于解答的条件”,不仅是描述要得体,还涉及到问题之外的东西,例如提问的礼仪、友善和谐的交流、迅速及时地信息补充等等。
正确提问表
正确提问是一个相当有难度的事,如果暂且做不到,也可以通过下面罗列出来的问题表,通过填表的方式来完善自己的描述,从而被动获得更精确的问题描述,作为练习。
描述的需求和目的
讲清楚为什么要做这个需求
- 是什么
- 它解决了什么问题
- 它达到了什么目的
描述你的想法或思路
- 想到的主要难点是什么
- 是什么思路去解决
- 为什么这个思路可以解决这个问题
描述具体的实现过程
- 使用的技术栈,看的文档、教程、博客、问答等链接
- 编写的代码
- 是否有按照你的思路实现
- 如是 bug,加一条复现的具体步骤
对错误的处理过程
- 报错在哪些关键的点
- 验证哪些部分是正确的,哪些部分是不正确的
- 若不同的前提的触发条件不同,找出这个前提
贴具体代码
- 截图要截全,比如网页要有 url、代码要有文件目录和行数等
- 关键信息、代码要放文本方便 copy
- 可以贴上 codepen 地址以方便他人查看