计算机软件开发是一个日新月异的领域,几乎每天都有新的技术诞生。每隔几年,软件开发领域就会进行一次大的技术潮流变换,所以身处其中的软件开发技术人员也常常疲于奔命,不断学习各种新知识、新技术,生怕被这个快速变革的时代所抛弃。但是每次从头开始学习一个新的技术,这个过程既痛苦又漫长,好不容易掌握得差不多了,新的技术又出现了,于是不断重复从入门到放弃这一过程。这个过程是如此痛苦、艰难,以至于整个行业形成了一种所谓的“共识”:随着学习能力和体力精力的下降,编程知识和技能逐渐衰退,35 岁以后就不能写代码了。
其实很多看起来难以坚持、让人容易放弃的事情,并不是智力、体力或者意志力的问题,更多的是方法问题。很多时候,学习新知识和新技术之所以困难,是因为没有理解这些新技术背后的思想和原理,以及这些新技术诞生的来源。太阳底下没有新鲜事,绝大多数新技术其实都脱胎于一些既有的技术体系。
物理学有一个第一性原理, 指的是根据一些最基本的物理学常量,从头进行物理学的推导,进而得到整个物理学体系。有硅谷钢铁侠之称的埃隆·马斯克特别推崇第一性原理,他做电动汽车、做航空火箭,并没有去遵从别人的老路,而是从这个产品最本质的需求和实现原理出发,重新设计了产品最核心的关键以及发展路径,进而开发出自己独特创新的产品。Google 的创始人拉里·佩奇说过:“让我自由地从物理规则出发去思考问题,而不是迎合那些所谓的世俗智慧。”其实也是第一性原理。