技术与业务(来自 ck2016)

67
原文链接: www.jianshu.com

技术与业务

在说技术与业务的关系之前,先说一下基因突变与自然选择。


基因突变提供原动力
基因突变随机创造很多性状,上图箭头方向表示各种性状,比如手指头分成10个,人类长尾巴等等。

自然选择提供方向,不起创造性作用
自然选择把一些不适合环境的性状剔除,比如长了一只脚的,长了尾巴的。

缺少基因突变,没发展。
缺少自然选择,没方向。
基因突变与自然选择缺少谁都不行。


技术好比基因突变,业务市场好比自然选择

技术提供原动力,符合业务方向的技术将生存下来,业务本身不提供技术创造性。

站在个人的角度,建议多学技术,提供足够强的原动力,那么业务代码就分分钟秒杀了,技术不再是业务的阻碍,开发效率自然高了。

另外业务市场会变,跟自然选择一样,哪天海水占领大陆了,那么又发起一轮新的自然选择,不会游泳的人肯定被淹死了,业务也是变化的,哪天变出个对技术要求很高的业务,技术一般的就做不到了。

思维与经验

经常听到一句话,你没有10年经验,你是一个经验用10年。

这里转载一篇王垠的文章,他里面说的就是我想说的。

原地址:www.yinwang.org/blog-cn/201…

很多人很在乎“经验”,比如号称自己在某领域有 30 年的经验,会用这样那样的技术。我觉得经验是有价值的,我也有经验,各个领域的都有点。然而我并不把经验放在很重要的位置,因为我拥有大部分人都缺乏而且忽视的一种东西:洞察力(insight)。

每进入一个新的公司,我进入的几乎都是不同的领域。所以最开头的时候,我有可能对那个领域所知甚少。甚至有人觉得我没有经验,所以可以“教育”我。然而每一次他们都没有想到的是,我很快就掌握了他们的经验,并且经过提炼,抛弃其中的垃圾,很快的超越了他们,完成他们根本无法达到的目标。这就是洞察力的威力。

举个亲身例子,很多人都有用线程的经验,可是有多少人知道线程的本质是什么?有多少人在头脑里有一幅画面,显示出多线程程序的各种动态特征?其实很少有人知道。这就是为什么很多人过度的使用线程并发,结果产生各种同步问题,竞争状态(race condition),死锁等现象。某公司的一片多线程代码,号称是“有非常多并发程序经验”的程序员写的。结果没多久我就发现里面其实含有非常微妙的竞争情况,会在非常小的概率随机发作。发现之后没过几天,已经卖出去用了两年多的产品,由于这个竞争情况,终于引发了严重的后果。有那么多并发编程经验的程序员,两年多都没有察觉这个竞争情况,而很少写多线程程序的我,不但发现了这个竞争,而且很快的想出了修复它的办法,这是为什么呢?靠的就是洞察力。我知道线程的本质,而这是经验不会告诉你的。

什么是洞察力?洞察力就是透过现象看到本质的能力。有洞察力的人很容易得到经验,然而有经验的人却不一定有洞察力。再愚钝的人,总是可以通过大量的时间获取经验,然而就算你花再多的时间和精力,也难以得到洞察力。所以洞察力是比经验宝贵很多的东西。很难说清楚如何才能有洞察力,也很少有人会告诉你如何去得到它。当然,我也不会告诉你。