背后的思想和原理,以及这些新技术诞生的来源。太阳底下没有新鲜事,绝大多数新技术其
实都脱胎于一些既有的技术体系。
如果你能建立起这套技术思维体系,掌握这套技术体系背后的原理,那么当你接触一个新技
术的时候,就可以快速把握住这个新技术的本质特征和思路方法,然后用你的技术思维体系
快速推导出这个新技术是如何实现的。这个时候你其实不需要去学习这个新技术了,而是去
验证这个新技术,你会去看它的文档和代码,去验证它是不是和你推导、猜测的实现方式一
致,而不是去学习它怎么用了。那么,学习一个新技术就变成了一个简单、轻松、快速且充
满乐趣的过程了。你不再惧怕学习新技术,而是开始抱怨:为什么技术革新得这么慢,太无
聊了。你甚至可以开始自己创造新技术。
第一性原理——建立技术体系的起点
那么如何实现这一美好的愿景,建立自己的技术思维体系呢?
物理学有一个第一性原理, 指的是根据一些最基本的物理学常量,从头进行物理学的推
导,进而得到整个物理学体系。有硅谷钢铁侠之称的埃隆·马斯克特别推崇第一性原理,他
做电动汽车、做航空火箭,并没有去遵从别人的老路,而是从这个产品最本质的需求和实现
原理出发,重新设计了产品最核心的关键以及发展路径,进而开发出自己独特创新的产品。
Google 的创始人拉里·佩奇说过:“让我自由地从物理规则出发去思考问题,而不是迎合
那些所谓的世俗智慧。”其实也是第一性原理。
第一性原理就是让我们抓住事物最本质的特征原理,依据事物本身的规律,去推导、分析、
演绎事物的各种变化规律,进而洞悉事物在各种具体场景下的表现形式,而不是追随事物的
表面现象,生搬硬套各种所谓的规矩、经验和技巧,以至于在各种纷繁复杂的冲突和纠结中
迷失了方向。
软件开发技术也是非常庞杂的,各种基础技术,各种编程语言,各种工具框架,各种设计模
式,各种架构方法,很容易让人觉得无所适从。就算下定决心要从基础学起,上来一本厚厚
的《操作系统原理》,好不容易咬牙坚持学完,回头一看,还是各种迷茫,不知道在讲什
么。继续学下去,再来一套更厚的《TCP/IP 详解》,彻底耗尽了意志力和兴趣,完全放
弃。
其实,我们不需要一开始就精通操作系统进程调度的各种算法,也不需要上来就掌握
TCP/IP 协议里的各种帧格式。我们应该从软件技术的第一性原理出发,了解每个基础技术
评论