提问的基本原则

社区和交流中充斥着没有意义的提问,有许多问题得不到答案并非由于问题太难,而是提问的角度和方法完全错误。 科学的提问需要一些理论指导,从感性的角度出发,我建议提问者务必抱持这样的心态再向人请教:“为解答者提供更有利于解答的条件”。

一个好的提问往往携带了大量的调研和思考,而不是脑子一热就脱口而出,举一个例子:

提问者:请问怎么重装系统?

这就是一个经典的无法解答的问题。无法解答的点在于信息极度缺失,以至于让人做出任何回答都是在浪费时间:

  • 你目前是什么系统?——要知道 Windows、Mac、Linux、iOS、Android 要重装系统的流程都不一样。
  • 目前是什么设备?——有的系统根本无法装在特定设备上。
  • 是否有按照自己的设备和系统在网上找过资料?——没找过就去找。
  • 是否有按照找到的资料实践?——没做过就去做。
  • 实践进行到哪一步?——没有记录就记下来。

你看,这是一个可以自己解决的问题,但是被抽象成一个极度复杂的问题之后,任何人都对它束手无策了。 优秀的提问就应该将这些信息一一展开,让接收者能够更好地理解问题,且提供充足的资料,例如 问题的背景、历史遗留问题、以往的做法等等。

“为解答者提供更有利于解答的条件”,不仅是描述要得体,还涉及到问题之外的东西,例如提问的礼仪、友善和谐的交流、迅速及时地信息补充等等。

正确提问表

正确提问是一个相当有难度的事,如果暂且做不到,也可以通过下面罗列出来的问题表,通过填表的方式来完善自己的描述,从而被动获得更精确的问题描述,作为练习。

描述的需求和目的

讲清楚为什么要做这个需求

  • 是什么
  • 它解决了什么问题
  • 它达到了什么目的

描述你的想法或思路

  • 想到的主要难点是什么
  • 是什么思路去解决
  • 为什么这个思路可以解决这个问题

描述具体的实现过程

  • 使用的技术栈,看的文档、教程、博客、问答等链接
  • 编写的代码
  • 是否有按照你的思路实现
  • 如是 bug,加一条复现的具体步骤

对错误的处理过程

  • 报错在哪些关键的点
  • 验证哪些部分是正确的,哪些部分是不正确的
  • 若不同的前提的触发条件不同,找出这个前提

贴具体代码

  • 截图要截全,比如网页要有 url、代码要有文件目录和行数等
  • 关键信息、代码要放文本方便 copy
  • 可以贴上 codepen 地址以方便他人查看