教你用认知和人性来做最棒的程序员

2019-07-29  本文已影响0人  java欧阳丰

不久前,在团队内部和大家做了一次分享,内容就是这次要讲的“用认知和人性来提升自己的技术水平”,大家反响不错,所以这次整理一下也分享给大家。 最初我是想用“借优秀的产品经理思维来做最棒程序员”的这个标题,但想想还是要有同理心,技术同学平时和产品同学已经是相爱相杀了,就不刺激大家啦。但是必须要说的是优秀的产品经理思维和优秀的程序员思维确实是殊途同归的,两者是想通的,就是来自认知和人性。

这里我不会过多去梳理认知和人性的概念,后面会用很多例子来说明,保证通俗易懂,只想先提2个概念:

  1. 对人性的理解能帮助提升认知
  2. 狭义的技术是指java,php,android,spring,vue等的掌握和实践,它们只是帮助你提升认知的工具,却绝不等同于认知。

下面我来逐一举例说明

例子1-技术选型

例子2-查线上问题

例子3-技术面试

例子4-最严重的线上故障

例子5-如何看待代码逻辑复用

例子6-开源的意义

关键点:如何提升认知

内心简单:

内心越简单的人,将来能到达的境界就越高。大家千万不要误解了,我说的不是思想浅薄,而是内心简单纯粹要像少年一样。一个很好的例子,郭靖,用世俗的眼光来看他天资不高,开始学什么都慢。但是他有一个很大的优点,就是想法简单,无私心,持之以恒。报家仇,报国仇,保护好他爱的人,不会去想是不是别人骗了他,他多做一点是不是亏了。20岁就达到五绝水平,最后终于融合“降龙十八掌”、“九阴真经”和“左右互搏”三大盖世武功为一体,武林尊为“天下第一侠士”。 内心越简单,就越不会花费额外的精力在一些无关紧要的事上面。随着时间的推移,你的认知水平就一定能提升得更快。不要去想今天你学的语言明天是否还流行,先利用当前语言训练好你的思维模式。不要去想我作为测试给开发指出太多问题后,开发会不会不爽,做为测试你的核心是保证产品质量。不要去想今天我帮组内的开发分担了额外的代码编写,我是不是亏了,这些付出一定会在将来某个时候兑现,因为你比他们有更多的代码实践。

相信跨界的力量:

ipod+手机诞生了iphone,手机+钱包诞生了支付宝,c,python+java诞生了go,人类的创新其实都是来自于跨界的结合。很多时候大家去看一个技术大神,会认为他一定是看了很多专业的书,看了很多牛逼开源项目的代码,写了很多项目才达到现在的这个水平。然后又看到别人的兴趣爱好:音乐,滑雪,画画,牛逼,大神就是大神,做好技术的同时还能“兼顾”这些兴趣。 这个认知完全错了好吗,我告诉你,写代码看书固然很重要,但如果他没有这些兴趣,他在技术上可能根本达不到今天的程度。一个有画画功底的人,理解向量,理解数据的PCA分析就是快好吗。一个财务出身的人,写支付系统的代码就是不容易出错好吗。人类的大脑从来都是一个网状的,互相关联的知识图谱,根本不存在靠”单一事物”修炼成功的好吗。千万不要成为技术上的孔乙己,天天学各种API的写法,和学习茴香豆的茴字有几种写法没有任何区别。在方案想不出来的时候,在代码水平感觉到瓶颈的时候,在看不懂一些专业书籍的时候,一定要跳出来,和自己的兴趣结合,和自己经历结合,和自己的生活结合,这样才能突破瓶颈,提升到更上一层的认知。

相信更高认知人的指引:

科幻神作三体里,外星人看地球人就像纸片一样,在三体人的眼中,地球人是二维的,而不是三维的。回到现实中,高认知的人看低认知的人也是一样的,不是低认知的人不够努力,而是你的知识图谱里比高认知的人少了一些维度。所以不管你怎么努力,你会发现仍旧无法超过他,他还比你轻松,学霸给大家留下的阴影就是这么来的。 在实际工作中,你的leader,你的架构师只要不是水货,往往他们的认知就是比你高的。一旦你觉得这个人的本性是靠谱的,你就该无条件去相信他给你的建议和指引。因为他能看到在你那个维度上感受不到的东西,照他的话去实践几次,你才有机会到达他那个维度,才能升级认知。不过在现实情况中,我们往往看到很多leader和架构给下面的同学苦口婆心说了很多,但是他们不理解,反而更叛逆。这份痛苦我懂,你是拼了命想拉他到你那个维度,但是他还年轻着呢。:)

持之以恒地实践

人就是一个如此奇妙,如此复杂的生物,不管你看多少书,看多少源码,写多少demo,你不真刀真枪地去实践,去写代码,这些知识无论如何都无法进入你大脑的知识图谱。它们永远只能是“狭义上的知识”,而不是“有价值的认知”。相信大家人生中都有过类似的经历了,越是辛苦的实践,越是坚持,你最后的收获一定越大。简单来说,认知不通过持之以恒的实践是不可能升级的。 还有一点我必须要强调,实践应该尽量和公司的项目去结合,而不是依靠于自己写demo。这里面有一个很大的误区,自己私下写demo经常是没有“明确,高压的”目标的(人性总是偏懒的),这种实践往往很难提升认知。而公司的项目往往不同,会提出"支持多少用户访问",“为什么你每次开发都不能更快一点”(核心挑战的是你架构的扩展能力),“为什么这个功能这么卡”(性能优化),这些“明确的,高压的”目标能督促你去拼命提升自己的认知(只是写demo是很难给自己设下这些障碍的,是反人性的)。当然从结果来看,又是公司的压榨剥削拉,让我们回忆一下前面说的,如果你觉得这个公司是靠谱的,那就让我们的“内心简单一点”,持之以恒地实践升级认知吧。:)

最后总结一下,现在已经不是一个单纯比拼知识量的时代,而是比拼认知高低的时代。作为程序员我们并不特殊,和市场,财务,产品,运营的这些同学一样,核心看的是认知,并不存在谁比谁困难,谁比谁辛苦的这种浅层比较。 而我们学习的那些语言,框架,工具,和我们大学时期学习的微积分,高等物理没有区别,都只是帮助我们不断训练提升认知的实践工具,而不是认知本身。让我们不要再局限于程序员狭义技术的范畴内,把提升自己的认知作为最重要的目标,我们要努力做到“既是程序员,也不是程序员”。

作者:刘轶
链接:https://juejin.im/post/5c3f23606fb9a049b50715f0

上一篇 下一篇

猜你喜欢

热点阅读