程序员对经验的一点思考[1]
曾经有一段时间对经验不是很在意,甚至有过这样一种想法:总觉得经验会制约思维的能动性,会构成个体客观思考问题的障碍。
举几个自己经历过的例子:
1、在自己现在参与的这个产品研发过程中,一开始设计一组核心数据结构的时候,我们team里一个有经验的同事对一个我和老大作出的设计提出了不同的建议,我和老大也跟他作了一番讨论,他告诉我们以前他在一家大公司里就是采用他建议的方法解决了我们在设计面对的问题,但是具体到以前他们公司为什么要采用这个方法及其前因后果,他不能详细地作出解释。所以最终我和经理还是坚持了已有的作法。数个月后,在后续开发工作中,我的老大发现之前的那个设计的确存在一定的局限,而那位同事基于他的经验提出的建议的价值也显现了出来。于是在经过又一轮讨论,并结合现有的代码进行分析以后,我们决定对以前的设计作出调整,而因为这个设计用于一个比较底层的数据结构,其调整也造成较多的代码需要进行相应的重构。
2、最近我的老大在作一件事情。这件事情从实现上来看,工作量并不是非常大。但是在确定这件事情的目标特征范围上,他花了比预期要多得多的时间。因为之前没有相应的经验,不知道这件事情作到什么程度,涵盖哪些场景会比较适宜,于是只能通过使用现有的一些工具来获得一些实验结果,对实验结果进行分析,总结,以协助确定任务的特征范围。这份实验工作消耗了他大量的时间。
3、前一段时间,自己在作一件事情,老大跟自己的观点存在不一致,老大存在不同意见的一个重要的依据是之前在他的公司里,他们对相似问题的解决办法跟我给出的办法有所不同,但是因为这件事情是我具体在负责,细节方面他并不是非常了解,所以我总是能够找到一些具体的理由来证明自己观点的正确性。
在激烈的争论之后,老大没有继续试图说服我,让我选择了自己提出的方案。事隔半年之后,在加入一个新的'feature的时候,自己发现之前的设计的确存在较大的局限性,而当初跟老大争论时老大提出的建议以现在的眼光看来还是比较正确的, 自己也不得不在已经基于原始方案展开一定工作的前提下再度考虑他提出的方案。
在第三个例子里,面对一个问题,自己作完一遍,要在真正遇到障碍以后,才能意识到问题的关键,而我的老大却能在第一次看到问题的时候就作出准确的判断。我想,这固然跟个体能力的不同,思维穿透性的差异有关,但是跟老大丰富的工作经验也有一定关系。
而另两个例子则更生动地说明了经验的重要性,如果说我的老大或是我在遇到问题的时候具备相应的经验的话,我觉得在很大程度上是可以少走一些弯路,至少是可以节约一些因为在问题空间里作尝试消耗掉的时间,加快项目的开发进度。
在我看来,经验是主观个体在实践过程中获得的一种解决问题的方法以及思考模式的积累,这种积累对于以后遇到问题的时候能够提供可复用的参考以及借鉴,是有着很大的积极意义的。但是如果采用不当的方式使用经验的话,也会给个体带来一些局限。
1、随着经验越积累越多,个体会倾向于将自己的经验视作自我的一部分,个体对自己的经验会产生一种"维护其正确性,确保其不受攻击"的心理,这就可能带来知见障了。
2、经验获取的过程中,有的时候,因为思维的惰性,个体只会知道经验的具体表现,而未必搞清楚了经验背后的前因后果。通过这种方式积累起来的经验往往不扎实,容易随着时间的推移而淡化甚至发生扭曲变形,其参考价值和借鉴意义也就大打折扣了。
【程序员对经验的一点思考[1]】相关文章:
1对1面试的经验技巧分析08-05
盘点面试的一点经验11-21
JAVA程序员的面试经验01-23
程序员简历的项目经验范文12-08
方正集团程序员的面试经验01-29
关于优化纳税服务的一点思考10-19
计算机教学的一点思考11-14
软考笔试的一点经验分享06-29
对形体练习的一点体会10-17