如何提问
要善于提问题,能够提出问题,就解决了问题的一大半,问题的高度解决了所处的高度,一个大问题分解成多个小问题,逐步去迭代
不过这些都没用,问题是如何去提问题?
有哪些具体可执行的操作
如果是参加讲座或者阅读文章等有明确观点的可以通过下面的结构化方式。
寻找论题与观点
对方要讨论的问题是什么,观点是什么,只有找到了对象想要讨论的论题以及立场,大家才有了初步的共识,一般在阅读文章、论坛时比较容易找到论题与论点。而在参加分析或者讲座时不太容易捕捉,因为上面演讲的人一直在表达,有论据,有观点,有论据,并且比较随性,如果逻辑不够清晰的,很难去get到对方的点,必须要聚精会神,理清对方的思路。
寻找论据
论据分为两种,一种是文章或演讲或者讨论中明确提出的理由,另外一种是没有明确提出的理由,也就是对方默认的一些观点,如果是演绎性论证(遵守数学中的充分条件),比较容易寻找这些假设,例如今天老大说要把一个二方库拆成两个,咋一看确实也应该拆,两个包好像不太一样,但是停下来想想哪种情况会导致一个功能从一个二方库拆分出来呢,老大给出的理由是“内聚性更好,依赖更干净”,那这个论证的论据就是:
1. 这个功能是个独立的功能,内聚性比较好
2. 内聚性的功能应该独立出来(没有明确说出来的)
这个推理过程中确实1.2可以推到出结论,但是2很明显是有问题,因为原有的包中有很多比较小的独立模块,都是合在一起的。可以通过这样的方式来挖掘充分条件来寻找明确和不明确的论据。但是生活中往往不是演绎性论证,也就是并不是强的充分条件,例如上面的例子中,我也赞同拆分二方包,但是不能通过具体的几条理由来强势的证明,只能说这样做可能更好,后面也跟老大讨论了下,补充了下面两条理由
1. 这部分功能不太会给外部使用,而目前的其它功能是会的
2. 这部分功能是一种富客户端的行为,而不是简单的常量与接口定义
加上了上面的两条之后会让拆分的行为更具有说服力(有一个假设是具有较多不同的特性的功能应该独立出来)。
寻找模糊词语
在论点与论据中都有可能存在模糊的地方,这也是平时接触很多的地方。比如在软件工程中经常听到的一句话
函数应该尽量短小
那什么叫短小,多长的函数叫小呢,是1行,还是10行,有些书籍会推荐一个数,比如说20行,这确是比较明确了,但是通常也无法给出令人信服的理由。