如何做知识投资及减少知识失效的影响
引言
常常听到程序员童鞋哀叹:不过三五年,学到的大半编程知识都过时了。得拼命学习新知识新技术,这啥时候是个头?要解答这个问题,先来看初级工程师和高级工程师有什么区别。
初级工程师与高级工程师的区别在哪?初级工程师通常是按产品经理的要求堆功能,全然不顾系统整体的复杂性和稳定性,高级工程师则会对每增加一次的 IO 精打细算,因为每一个 IO 都会增加模块耦合和交互复杂性,会降低系统整体和局部稳定性。高级工程师不是从功能单点来考虑问题,而是从系统容错、性能、稳定性、高可用、可复用、可扩展性、可运维等多个层面来达到平衡。
初级工程师和高级工程师的区别在哪?从上述可知,高级工程师与初级工程师的知识构建体系是不一样的。高级工程师在原理、判断力、经验、系统设计方面要比初级工程师掌握更多,而在新知识新技术上的累积则可能不如初级工程师。这涉及到知识体系构建的问题。
知识体系
程序员在职业生涯中会累积很多编程知识。这些知识可以大致分为五类:
-
原理性知识。程序之所以能运行的基本原理和编程设计理念。万变不离其宗。失效率5%。
-
通用性的恒定性使用知识。比如 linux 命令。只要 linux 不倒,这些知识一直有效,除非有更好的工具更换。失效率 20%。
-
不太通用的易变性使用知识。比如某个库、框架、中间件的配置和编程。由于场景不断变化、技术更替,这类的使用知识很容易失效,甚至可能面临大面积更替。然而,很多程序员(包括我在内)在大部分时间都是跟这些打交道。失效率 80%。
-
稀缺性的经验性知识。比如 CPU 飙高、内存满、IO 抖动或尖刺、高并发的解决,这类知识是不过时且比较稀缺的知识和经验。失效率 5%。
-
稀缺性的判断力和设计能力。比如一个系统要成功,要具备哪些质量属性,如何去达成这些质量属性,如何在这些质量属性中作出取舍。如何解决棘手的性能问题、如何保证系统的容错能力、稳定性和可维护性,如何增强可扩展能力和通用能力,如何做到高可用?这类属于判断力和设计能力。失效率 5%。
(上述失效率数字是我根据自己情况凭感觉估,勿较真)
以上,第 0 类是基础之基础,却是大部分初学者最容易忽视的。以为没用,却决定了程序员的长远技术之路;第 1 类和第 2 类是接触最频繁的; 第 3 类是接触最少的(因为发生和有机会接触的概率就很小);第 4 类是经常会遇到但很少会去察觉和有意识去提升的。
在职业生涯的初中期,我们会积累大量的第 1、2 类的知识及部分的 0 类知识,尤其是第2类知识,以便有能力干活领取工资。然而,在中后期,很多人可能会止步于第 1、2 类,即着眼于实际干活,没有提升第0、3、4 类的知识,原理、判断力和经验没有跟上去,导致在某个时间节点上第 2 类知识大量失效,又缺乏新鲜的第 2 类知识来补足(毕竟人要考虑的非技术性事情也很多)。此外,第 0 类知识和第 4 类知识的匮乏,会导致第 2 类知识的吸收效率低下,加剧了知识失效的恐慌。
如果能够在投入大量时间在第 1、2 上,同时从中磨练和投资第 0、3、4 类知识,那么,按理来说,是不应当担心大量知识失效的。因为第 2 类知识注定是要失效的。保守估计人一生中会有 70% 的知识失效,但只要 30% 的原理认知、判断力和经验还在,第 2 类知识是可以源源不断补足,知识失效就不会成为大的问题。这就好比,人体细胞每天都会有大量更替,但只要机体能力在,细胞更替并不会对整体造成明显的影响。
事实上,知识失效应该是个普遍性问题,在各行各业都大量存在。只是在技术更替很快的软件和互联网领域感知得更加明显。
我们做编程开发时会考虑容错处理。同理,在知识体系的构建中,也需要考虑容错处理,即:能够容忍一部分知识失效,且不造成比较明显的影响。
知识投资
引申一下,其实是“知识投资”的问题。当我们求学的时候,是几乎没有意识到求学就是一种知识投资行为,只是觉得别人让我们学就学。待到踏入社会之后,知识投资就变成一个私人化的事情。有的人懂得投资什么知识并持续学习,有的人持续学习却不清楚该投资什么知识,有的人则干脆停止了学习(知识投资)。
种瓜得瓜,种豆得豆。
该投资哪些知识? 从上述分析,答案已经很明显了:
-
原理性知识。这是认识和产生一切第 1、2、3、4 类知识的源头。只不过,掌握第 0 类知识的人是知识创造者,而大部分缺乏第 0 类知识的人,无可避免成为了知识的搬运工。
-
通用性恒定使用知识。 适量投资。
-
易变性使用知识。谨慎投资。
-
稀缺性的经验性知识。这是很多人简历上很想要的内容,然而由于发生概率低、机会有限,实际上大部分人很难会有这样的知识和经验。有机会就投资,但不能强求。
-
稀缺性的判断力和设计能力。这是我认为最应该投资的知识。完全可以类比老医生把脉,看上去玄之又玄,又有实在道理支撑。
此外,对于非技术性知识投资:
-
待人处事的知识。至少要懂一点人情世故,做好对外接口。
-
经济财富知识。如今,个体的财富,已经远远不是靠个人努力就能实现,很大程度上会依赖国家发展和时代、行业的机遇。懂一些微观经济、宏观经济、理财、财富相关的知识,个人觉得也是很有必要的。不信你看,买房早的人,是不是比买房晚的人要少奋斗十年?我就吃了这方面的亏。
-
生活爱好类知识。主要是作为生活的调剂,缓解工作的压力。
-
设计和艺术类知识。设计和艺术类可以成为生活的有力精神支撑,虽然看上去没用。