大家好,我是孟健。
之前我说,AI Coding 一旦发展到 L3 阶段,程序员就没有价值了。有些人说我在危言耸听,散播焦虑。
其实焦虑不需要散播,事实摆在眼前,现在基本上没有不用 AI 的程序员了吧?
那么,程序员工作了这么多年,真的就一文不值,被 AI 取代了吗?
我想用这篇长文,尝试回答它,并和你一起复盘:在 AI 时代,程序员真正的优势到底是什么。
这里的 L3,是借用自动驾驶的分级来类比:从"辅助驾驶"(L2)到"条件自动驾驶"(L3)。
放到软件开发里,L3 更像是一种工作形态:你描述目标、约束和验收标准,AI 能在较长时间的无人值守下,自主完成大部分实现、测试、修复和迭代。
先说结论:
-
如果你掌握的是 how-to(怎么写、怎么配、怎么调),你大概率干不过 AI。
-
如果你沉淀的是底层思维(怎么抽象、怎么推理、怎么权衡),AI 反而会成为你的杠杆。
本文不谈软素质(沟通、协作、管理),只谈程序员的"硬思维"。
我认为至少有 7 个:抽象、逻辑、结构化、批判、分治、简单、成长。
01 抽象思维:软件是一门抽象的艺术
第一个思维一定是抽象思维,也是程序员最重要的一个思维。
软件本质上就是一门抽象的艺术。
程序员的工作实际上是思维的游戏,我们会敲键盘、看显示器,但是程序的运行在我们的视野之外,我们看不到程序是怎么运行的。
所以程序员必须动用抽象思维,对问题进行抽象,挖掘概念之间的关系,通过建模,实现业务需求。
很多时候,我们并不是在写代码,而是在梳理需求,或者看别人的代码,理清关系。
要理解抽象思维,我们可以从毕加索的画入手:

可以看到,抽象的牛只有几根线条,过滤了绝大多数的细节,保留了最基本的特征。
其实抽象思维更接近问题的本质,所有的牛都逃不过这几根线条。
如果你研究过哲学,其实柏拉图的洞穴之喻也是一种抽象:

囚徒们只能看到影子、听到回声,于是认为这些影子和声音就是真实世界。实际上,他们认知的真实世界,只是冰山一角。
包括我们目前所处的世界,对宇宙的认知,也是建立在抽象的基础上。如果说三维空间我们可以具体感知到,那么多维的弦理论就是无限的抽象,必须依靠想象才能理解。
数学也是一门抽象科学,所有的数学符号,本质上都是一种抽象。很多人觉得数学比较难学,就是因为它是建立在抽象思维基础之上的科学。
软件设计首要考察的能力就是抽象能力,所谓面向对象,OOAD,就是一种抽象的科学方法,从复杂的需求中挖掘关键概念和实体。

抽象是有一定的评判标准的,在软件系统的设计中,我们以 4 个指标来衡量抽象设计是否良好:
-
耦合性: 降低耦合性,可以降低复杂性。如无必要,我们希望的是弱耦合设计。
-
内聚性: 各个元素之间的联系应该是高内聚的,功能性内聚。
-
充分性: 保持最小但充分的接口设计原则。
-
完整性: 所有的必要的场景都值得考虑。

甚至我们说,设计模式就是建立在抽象思维之上的。整个计算机科学也是抽象思维,我们还记得 TCP/IP 的分层协议设计吧?这个分层设计非常经典,本质上也是对协议的拆分和抽象。

另外,编程语言的发展,本质上也是不断的抽象,我们现在所用的高级编程语言,是抽象后的结果,程序员是不可能理解底层机器码究竟怎么运行的。

软件设计的建模工具------UML,更是建立在抽象思维的基础上,没有抽象思维,我们是无法真正掌握 UML 的:

最后,我们计算机的三大难题之一:命名,本质上也是抽象思维,你命名是否恰当,完全体现在抽象思维是否够强,能够找到合适的表达方式。
在软件设计中,依赖倒置的解耦思想,面向接口编程的思想,本身就是抽象模式的设计,它需要我们具备较强的抽象思维能力才能够理解:

那么,有了 AI 之后,我们还需要抽象思维吗?
答案都不用想,肯定需要,而且抽象思维是程序员最重要的优势,有了抽象思维,你就有了总结能力,概括能力,全局观,这是人类文明诞生之后所具备的非常重要的能力!
02 逻辑思维:让"关系"可被推理
第二个思维是逻辑思维。程序构建在逻辑基础之上,然而,逻辑学是一门非常复杂的学科,不过逻辑思维并不复杂。所谓逻辑,其实就是关系,指的是一切可理解的规律。
我们常常说一个事情无逻辑,是指没有建立起事物之间的正确关系。比如一个人说"今天天气不错",回答是"肚子好饿啊",这两者之间就不符合逻辑关系。

我们将逻辑思维,首先第一步就是把概念定义清楚,在一个领域内,如果一个系统的核心概念定义出现问题,可能会给上层业务带来毁灭性的打击。
在领域驱动设计(Domain Driven Design)的思想中,我们需要先制定团队通用语言,语义的重要性体现在界限上下文(Bounded Context)中,一个团队只有统一了语言概念基础,划分了清晰的边界,才能更好的沟通协作。

逻辑的第二个要素是判断,是推理的基础,我们单元测试的断言,本质上就是在做判断。
我们都知道"世界上的所有人都是善良的"这个判断是假的,否则这个世界就没有违法犯罪的人了。
准确地运用判断,我们才能够进行正确的思考,而思考的形式就是推理了。
第三个要素是推理,逻辑推理可以分为演绎推理、归纳推理和溯因推理。
所谓的演绎推理,就是从一般到特殊的过程,三段论大家应该还记得:大前提 -> 小前提 -> 结论。
最著名的例子是:"所有人都会死"(大前提) -> 苏格拉底是人(小前提) -> 苏格拉底会死(结论)。
这其实是一种必然推理(保真推理),因为其结论就包含在前提之中,"所有人会死"本身就包含"苏格拉底会死"。
归纳推理则是反过来,也就是从特殊到一般的过程,我们中学学过的科学归纳法,就是一种归纳推理。
经典的例子是:天鹅 A 是白的,天鹅 B 是白的,天鹅 C 是白的,天鹅 D 是白的...因此,天鹅是白的。
不过,显然我们知道这个结论是错误的,因为有黑天鹅的存在。
所以,很多哲学家认为,归纳推理永远得不到真理(但是可以产出新知识)。
而逻辑推理可以得到真理,但是不能产生新知识(真理是先验的)。
其实现代科学知识,基本上是基于归纳推理的,实验科学就是明显的归纳推理过程,本质上来说确实不是真理。
比如牛顿力学是伟大的理论,但是受到了相对论的挑战,相对论是精妙绝伦的理论,但是又受到了量子力学的挑战。
第三种推理方式是溯因推理,简单来说就是:大胆假设,小心求证。
这是个很重要的推理方式,也是最早由亚里士多德提出,我们先假设知道了答案,再去推理原因。
我们现在很多的科学解释,都建立在假说的基础之上,比如著名的宇宙大爆炸假说、生物进化假说。
很多假说都是先假设,然后被验证证实,变成了真理,比如原子假说、细胞学说、地球板块漂移假说、光量子假说、中微子假说,等等。
当然也有很多失败的假说,比如地心说,以太假说等等。
逻辑思维还有一个非常重要的概念是逻辑链,逻辑链本质上是因果链,我们可以分两个方向扩展。
往因的方向扩展,形成 5why 思考法;往果的方向扩展,形成 5so 思考法。

在工作中,在职场中,掌握 5why 和 5so 思考法,基本上就掌握了底层的逻辑思维,对于个人发展是非常有帮助的。
逻辑思维也是程序员的优势,不论是 AI 时代前还是后,逻辑思维都是我们必不可少的基础思维。
03 结构化思维:把混乱变成可协作的"结构"
第三个思维是结构化思维,相信大家都听过或看过金字塔原理。
结构化思维是以逻辑思维为基础,是一种无序到有序、混乱到清晰的思维能力。
系统的性质是由结构决定的,要素的内容是不稳定的,可随时被替换。就像忒修斯之船,虽然船的木板被换掉了,但是只要船的结构没有变,仍然是忒修斯之船。

我们做程序架构,核心也是结构,所谓的架构,就是"要素+结构"。理论上来说,程序员应该是比较擅长结构化思维的。
结构化思维是一种以逻辑(事物内在规律)为基础,从无序到有序搭建结构的思维过程。其目的是降低复杂度和认知成本,因为大脑更喜欢概念少、有规律的信息。
在金字塔结构中,总体上有两个方向的逻辑关系,即纵向逻辑关系和横向逻辑关系。一个好的金字塔结构,需要在纵向关系上满足结论先行、以上统下;在横向关系上,满足归类分组、逻辑递进这 4 个基本原则。

在纵向上,是一种层次关系,上一层思想是下一层思想的概括,下一层是对上一层的解释和支持。它的核心就是结论先行、以上统下。
在横向上,要保证每组思想必须属于同一个逻辑范畴,按照逻辑顺序进行组织。常见的逻辑顺序有三种:
-
时间顺序,最容易理解的逻辑顺序,比如活动前、活动中、活动后,就是典型的时间顺序。
-
空间顺序,空间包括实物空间和概念空间,在空间顺序上要遵循 MECE 原则(相互独立,完全穷尽),比如垃圾的可回收、不可回收。从外到内 / 从上到下 / 从整体到局部。
-
重要性顺序, 按"重要程度"来讲,通常是"最重要的放前或放后"。比如亚里士多德《修辞学》的说服三要素:品格(Ethos)、情感(Pathos)、逻辑(Logos)。
我们在解决问题的时候,一般有两种方法:一种是从目标出发,沿着不同的路径分解,探求问题的答案;另一种是把各种信息聚合起来,得出一个正确结论或解决方案。
这两种方法也是我们搭建金字塔结构时仅有的两种方法:一是自上而下 地搭建金字塔结构,即问题分解,也叫作疑问回答分解;二是自下而上地搭建金字塔结构,即概括总结做聚合。
我们在写代码时,做架构拆解是自上而下的思想,做单元测试是自下而上的思想,编程的领域,往往需要上下结合,不断切换思想。这就是我说,程序员天然就应该掌握结构化逻辑的原因。
当然,结构化思维领域远不止这些,很多前人已经帮我们抽象好了很多结构框架,我们可以直接套用,比如 2W1H、5W2H、市场营销 4P 模型、组织战略 7S 模型、SWOT 模型、SMART 模型等等,在这里就不展开了。
04 批判性思维:不轻信,也不轻易否定
第四个思维是批判性思维。其实程序员天生就有批判性思维,大家会发现程序员往往来说比较理性,且比较较真,甚至还很容易抬杠,这其实就是一种批判性思维。
冲动和情绪是理性的敌人,要做出明智的选择,就要用到批判性思维。批判性思维不仅有利于我们做出高质量的决策,更重要的是,它会培养我们保持怀疑的态度和理性思考的习惯,让我们的思维保持开放性和灵活性。
保持批判性思维并不容易。除了进行理性的思考,还要排除各种认知、本能、情绪、语言和外部权威及社会环境等其他因素的影响。
古希腊哲学家苏格拉底说,未经审视的人生不值得过。同样,未经批判性思维审视过的结论也是不值得相信的。

在一些西方国家的教育体系中,从小学、高中到大学,一直把批判性思维贯穿在各种课程中,而我国比较缺乏对批判性思维的系统性讲解和训练,国内很少有大学会开设批判性思维方面的课程。
我们的文化比较讲究经验和直觉,而批判性思维比较注重理性和逻辑;我们的文化比较讲究包容和认同,而批判性思维常常需要反驳和质疑。
然而在今天,批判性思维已经越来越重要。在这个信息爆炸的时代,针对同一个事情,你可能看到成百上千个观点,而且每个观点都貌似给出了言之凿凿的证据和结论,我们该相信谁呢?观点有很多,但真相可能只有一个,所以我们越来越难以分辨是非。
过去,我们一生中面临的选择比今天要少很多,物质生活和精神娱乐等的可选范围都非常有限,而如今随着物质和精神世界的丰富,我们面临的选择太多了,但选择多并不是一件好事,它反而会降低我们的幸福感。
坚持自我批判是华为的核心价值观之一,任正非曾说过,二十多年的奋斗实践,使我们领悟了自我批判对一个公司的发展有多么的重要。如果我们没有坚持这条原则,华为绝不会有今天。
没有自我批判,我们面对一次次的生存危机,就不能深刻自我反省,自我激励,用生命的微光点燃团队的士气,照亮前进的方向。
没有自我批判,就会固步自封,不能虚心吸收外来的先进东西,就不能打破局限,把自己提升到全球化大公司的管理境界。
没有自我批判,我们就不能保持内敛务实的文化作风,就会因为取得的一些成绩而少年得志、忘乎所以,掉入前进道路上遍布的泥坑陷阱中。
没有自我批判,就不能剔除组织、流程中的无效成分,建立起一个优质的管理体系,降低运作成本。
没有自我批判,各级干部不讲真话,听不进批评意见,不学习不进步,就无法保证做出正确决策和切实执行。
只有长期坚持自我批判的人,才有广阔的胸怀;只有长期坚持自我批判的公司,才有光明的未来。
自我批判让我们走到了今天;我们还能向前走多远,取决于我们还能继续坚持自我批判多久。
当然,批判性思维绝对不是批评,而且批判性思维的应用,最好是用于自身,而不是用于他人,尤其不适合用于处理家庭关系,如果用批判性思维处理家庭矛盾,会适得其反。
在职场中,在人与人的交往中,情商往往更加重要,批判性思维并不是说你可以毫无顾忌地大放厥词,不分场合,不顾及环境,我们要辩证地看待和运用这种思维,也不要好为人师,轻易介入他人因果。
05 分治思维:软件复杂,必须"分而治之"
第五个思维,是分治思维。分治是一种古老的、非常有效的思想。分治,从字面理解,就是分而治之。
程序员在学习算法的时候,一个非常重要的思想就是分治算法,它有一个先分后合的过程。比如分布式系统架构 Hadoop,Map 是分的过程,而 Reduce 是合的过程。

分治的价值在于,我们不应该试着在同一时间把整个问题域都塞进自己的大脑,而应该试着以某种方式去组织问题,以便能够在一个时刻专注于一个特定的部分。
因为软件太复杂,因此软件应用中,分治可谓无处不在。我们先看两个设计模式:
第一个是管道模式,最著名的当属 UNIX 中的管道设计:
bash
cat access.log \
| awk '{print $1}' \
| sort \
| uniq -c \
| sort -nr \
| head -n 1
在这个命令行中间起连接作用的竖杠符号("|")就是管道,类似于自来水的管道,起到了阀门和连接的作用。
这个思想就是分治,其实很多工作流做的事情都是业务逻辑的组件化分治。
第二个例子是责任链模式,最典型的责任链模式可以参考 Koa 的洋葱模式设计:

当然,其实真正的分治算法,并不只是分,完整包含了分、治、并。
"分"是递归地将原问题分解成小问题;"治"是在解决了各个小问题之后(各个击破之后)合并小问题的解,从而得到整个问题的解;"并"是按原问题的要求,将子问题的解逐层合并,构成原问题的解。
比如最典型的归并排序算法:

包括流式计算的思想也是一样,java 8 全面支持了 stream API,数据流操作只有等到最后才真正被执行,这就是并的过程:

当然,最宏大的分治系统非大型分布式系统莫属了,面对上亿的用户,几十万的并发,上 TB 的存储,必须要上分布式的解决方案,这也是分治思想一个最大的应用。
分布式之所以强大,是因为它可以支撑"接近无限"的业务扩展诉求,架构真经的作者提出了 AKF 扩展立方的概念,很形象的说明了分布式系统扩展解决方案:

x 轴的拆分,通常叫做水平扩展,通过集群设计,复制服务的方式,分散负载压力。通过负载均衡策略把流量分配到多台服务器上,这种做法已经屡见不鲜了,现代的云计算 K8S 架构,可以很方便的处理这个问题。
y 轴的拆分,通常称之为领域拆分,最典型的应用就是微服务的思想和 DDD 设计。无论是 SOA 还是 ROA,都是在做服务拆分,从而出现了很多标准,比如 RPC、WebService、REST 等等。

我个人认为,微服务(包括微前端)和领域拆分,更多的是面向团队协作和人的维度,而非技术维度的拆分。如果你的团队只有三五个人,我相信不会把应用拆成 70 多个微服务的。
所谓有人的地方就有江湖,大厂里面程序员太多了,很多的拆分是为了让团队的权责更清晰,比如订单服务、支付服务、用户服务,各自有负责人和负责团队,从而解耦开。
但天下三分,分久必合,合久必分,这是永恒不变的哲学。微服务拆多了之后,就出现了很多服务治理的问题,大仓思想就出现了。
其实复用和重复本身就是矛盾统一体,当我们想要拆公共模块进行复用的时候,必然会带来部署连带影响面扩大,耦合更深的问题。DDD 设计中的防腐层,也是折中的妥协。
我在大厂做技术 leader 的时候,经常需要做的就是各种权衡,DRY 原则和部署影响面的权衡,配置与数据抽离的权衡,领域划分颗粒度的权衡等等。
最终你会发现,会回归到中庸之道,不能走极端。阿里的大中台战略就是一个例子,试图将业务中台抽离复用,造成了更大的复杂度,和更深的耦合。
在大厂里面,很多时间都花费在,排查一个问题,需要拉十几个上下游链路的部门,服务 A 说找服务 B,服务 B 找服务 C,服务 C 找中台,最后找了一圈,拉了几十人的群,也没人真正定位问题。
如果是出了故障,那就是更复杂的链路和人际关系了,事故发生时是各个利益方 leader 的表演舞台,事故复盘时就是各个链路程序员的表演舞台。限于篇幅就不展开了。
z 轴拆分,通常叫做数据分片,是把一个大数据集分割成小数据集的方法。
在分布式技术出现之前,数据库都是单体的,即使有主备数据库的设计也是很有风险,因为机器的性能不能无限向上扩展,所以水平扩展才是唯一的解决方案。
具体到数据库层面,就变成了两种解决方案,一种是基于领域的垂直切分,也叫竖切,把不同领域的数据进行分库分表操作。另一种是水平切分,也叫横切,也就是通过数据路由算法对数据库进行分片,从而减少数据库的压力。

分治思想,可以说是程序员必备的思想了,也是最能体现技术能力的一种核心思想。
06 简单思维:把复杂留给自己,把简单留给他人
第六个思维,是简单思维。《UNIX 编程艺术》的作者在书中提到,所有的 UNIX 哲学浓缩为一条铁律,那就是各地编程大师们奉为圭臬的"KISS(Keep It Simple and Stupid)原则"。
在 2021 年的微信产品公开课上,张小龙说,简单是一个非常高的目标,不是一个简单的目标。他认为,简单能代替美观、合理、优雅,可能很多人并不认同,但在他看来,简单是很美的、最简单的,也可能是最好的。
然而,简单的做法往往难以实现,一方面受制于工程师的认知和能力,有时无法把复杂的问题抽丝剥茧进行简化。
另一方面,迫于晋升的压力,特别是在大公司,要想法设法地证明自己的技术价值,重复造轮子,做所谓的技术沉淀,从而把简单的事情复杂化。
其实,把一件事情搞复杂是一件简单的事,但要把一件复杂的事变简单,这是一件复杂的事。
作为有追求的程序员,我们应该尽量把复杂留给自己,把简单留给他人,而不是反过来。
简化本质上是一个熵减活动。所有的事物都在缓慢熵增,
就像凯文·凯利在《必然》一书中提到,世间万物都需要额外的能量和秩序来维持自身,无一例外。这就是著名的热力学第二定律,即所有的事物都在缓慢地分崩离析。
而熵减就是逆向做功,即通过更多的努力让混乱的系统重新归于秩序。

Linux 操作系统中的 File API 是非常优秀的案例。回顾一下 File API 的主要接口:

API 提供了非常清晰的概念模型,我们能够很快理解这套 API 背后的基础概念:什么是文件,以及相关联的操作(open、close、read、write)。
另外,File 支持很多的不同文件系统实现,这些系统实现甚至属于类型截然不同的设备,例如磁盘、块设备、管道、共享内存、网络、终端等。
这些设备有的支持随机访问,有的只支持顺序访问;有的是持久化的,有的则不是。然而所有不同设备的不同文件系统实现都可以采用同样的接口,使得上层系统不必关注底层实现的不同,这正是此 API 强大生命力的体现。
基于这些原因,我们知道 File API 为什么能够如此成功。事实上,正是因为它的成功,以至于今天的 Linux 操作系统都是基于文件的(everything is filedbased)。
正如乔布斯所说,简洁比复杂困难得多,因为你只有努力简化思维,才能把东西做得简洁。但这么做是值得的,因为一旦做到了这一点,你就能改变世界。
奥卡姆剃刀原理,是指如无必要,勿增实体(Entities should not bemultiplied unnecessarily),即"简单有效原理"。
在具体的应用过程中,我们可以遵循以下原则去做事情:如果同一个现象有 n 种理论,最简单的那个便是最正确的。能用 n 个动作做好事情,那就不要有第 n+1 个动作。

在自然科学中也印证了这个观念,E=mc2 和 F=ma 证明,上帝似乎不是一个喜欢复杂的人。
07 成长型思维:AI 时代,唯一的护城河是持续进化
第七个思维,是成长性思维。技术发展很快,新技术层出不穷,程序员如果想要跟上时代的脚步,就必须要不断学习和实践,这也是程序员特有的成长型思维。
成长型思维源自斯坦福大学心理学教授卡罗尔·德韦克写的《终身成长:重新定义成功的思维模式》(Mindset: The New Psychology of Success)一书。
不同的人在面对竞争、失败、挫折的时候,会有不同的想法和做法,这个反应就是你的思维模式。卡罗尔教授把这种思维模式分为两种------成长型思维和固定型思维。
在固定型思维模式的世界中,个人能力是固定的,天赋带领你走向成功,你需要不断证明自己的能力与价值。拥有固定型思维的人急于一遍遍地证明自己的能力。
他们追求完美无缺,害怕自己努力后的失败会证明自己无能,因而恐惧挑战,拒绝学习新事物。
拥有成长型思维的人认为成功是学习的结果,努力是通往成功的关键。在成长型思维模式的世界中,个人能力是可以改变的,你需要提高自己,去学习新的知识,从失败中吸取经验教训,拓展自己的才能。
他们认为:成功是学习的结果,意味着做到最好的自己,但自己仍是普通人;失败是一次机会,无法成为永久的定义;努力是通往成功的关键,无论个人的能力有多强,只有努力才能激发和拓展能力,取得最终的成就。
他们追求不断进取,直面挑战,努力做到更好。正如卡罗尔所言,成功个体的标志,在于他们热爱学习、喜欢挑战、重视努力,并在面对苦难时坚韧不拔。

成长型思维是有脑科学作为依据的,传统观点认为,成年后的大脑功能固定且不可改变。而诺曼·道伊奇经科学研究发现:大脑的功能并不是一成不变的,而是拥有一定可塑性,通过合理的训练和调整,只要掌握正确的方法,持续成长是有可能的。
我们的大脑是由无数个神经元组成的,思考是通过神经元之间的相互连接和传递信号完成的。大脑和肌肉有点相似,锻炼可以增强肌肉,同样,训练大脑也可以增强神经元之间的连接或产生新的神经元连接。
随着思考力和能力水平的提升,我们的大脑会得到重塑,天赋、智商并不是在出生那一刻就被决定了的,而是可以通过学习、锻炼、挑战不断提升的,因此我们应该秉持"终身成长"的信念。

精进是大乘佛法的六度之一,就是你每次必须比上一次进步一点点!记住,慢也是快。千万不要忽视每天进步一点点的力量,也不要试图"一口吃成胖子",真正的进步是滴水穿石的累积,这就叫"精进"。

巴菲特说,人生就像滚雪球,关键是要找到足够湿的雪和足够长的坡。好在,在技术领域,"雪"是足够多的,而且"坡"也足够长,关键看我们能不能坚持下去,但凡能持续学习和持续精进的人,其结果都不会差。
学习并不总是轻松的,有时会很枯燥。但成长型思维并不是我们拥有"终身成长""活到老,学到老"的信念就可以,还需要我们付出实实在在的行动和努力,这样才能有所成就。
也许你也时常能听到这样的说法:"某某炒股赚了 100 万。""谁谁都晋升到副总了,你都 30 岁了,怎么还在写代码?"在这个时代,人极易变得浮躁。也难怪,同龄人之间巨大的竞争压力,家庭沉重的经济负担......即使是"佛系"的技术男,也难逃世俗的漩涡。
平和的心态是我们持续成长的基础,因为人的专注力是有限的,内心平和的人可以更多地专注在学习和工作上;而内心挣扎的人,需要支配更多的精力去应付内耗,那么投入在学习和工作上的精力自然就少了。
因此,拥有一颗平常心,不患得患失,不急功近利,非常重要。这样在你遇到困难时,才知道怎样与自己和解,并知道如何应对焦虑,把精力专注在解决问题而不是内耗上。
平和的强大之处在于,真正平和的人了解自己所有的主观感受都只是一瞬间的波动。虽然疼痛,但不再感到悲惨;虽然愉悦,但不再干扰到心灵的平静。于是,心灵变得一片澄明、自在。这样产生的心灵平静力量之强大,是那些穷极一生疯狂追求愉悦心情的人完全难以想象的。
推荐大家看一下《当下的力量》这本书,有一种神奇的魔力,可以让我们体会平和的状态。

一位学僧问禅师:"师父,以我的资质多久可以开悟?
"禅师说:"十年。"
学僧又问:"要十年吗?师父,如果我加倍苦修,又需要多久开悟呢?"
禅师说:"得要二十年。"
学僧很是疑惑,于是又问:"如果我夜以继日,不休不眠,只为禅修,又需要多久开悟呢?"
禅师说:"那样你永无开悟之日。"
学僧惊讶道:"为什么?"
禅师说:"你只在意禅修的结果,又如何有时间来关注自己呢?"
当我们因太注重结果而匆忙赶路的时候,双脚触及地面的力度会减轻,行走的步调会紊乱,如此生活就会有失踏实感,进而降低生活的质量,难以接近成功。
《道德经》有云:"大方无隅,大器晚成,大音希声,大象无形。"不论游戏,还是人生,少就是多,慢也是快。

曾国藩考了七次科举才考中秀才,但是一旦开窍,后面的路就越来越顺。中了秀才的第二年,他就中了举人;又四年,高中进士。这才有他出将入相的一生,没有起伏蹉跌,实属罕见。
相反,那些有小聪明的人往往不愿意下苦功,做事总想找捷径,遇到困难绕着走,基础松松垮垮,结果平庸一生!有些方法看起来慢,其实却是最快的,因为它扎扎实实、不留疏漏!
结语:AI 会把"写代码"变便宜,但会把"做正确的事"变更贵
以上 7 个底层思维,是我 10 年程序员生涯的总结与抽象,也是我认为在 AI 时代能让程序员走得更远的能力底座。
如果只让我保留一种思维,那一定是成长型思维:有了成长,你就能持续更新工具箱;其他思维也会在一次次训练中变得更强。
再让我推荐一种思维,那就是简单思维:大道至简。真正的简单,是经历过复杂之后的历练;历经千帆,归来仍是少年。
很多程序员固执地认为 AI 做不到复杂架构。诚然,软件本身很复杂,但你也要意识到:很多复杂并不是必须的。
复杂度的增长,往往和"人的协作成本"强相关。《人月神话》早就证明:人多了,效率反而会下降。
回想我们这些年的很多"潮流":领域划分、微服务拆分、DevOps 流程、万物皆可 as code、测试左移、度量指标......研发效能真的提升了吗?对业务真的有帮助吗?有些复杂停留在理论层面,最终变成了"程序员的自我折腾"。
有很多复杂的东西往往停留在理论层面,本质上还是有人的地方就有江湖,强行变得复杂,没有遵循 KISS 原则。
凯文凯利预测,未来大概率的公司会呈两极分化的态势,要么是人员规模超大,要么是极小的公司,人与人之间的协作成本会大幅度降低。
因为当 AI 把生产力放大到足够高,人与人之间的协作成本会变得更"奢侈"。打工的尽头大概率是个体户,程序员的尽头大概率是独立开发者。
从 KISS 原则来思考,DDD 不是最重要的,MVC 也许足以;DevOps 不需要那么多条条框框,Serverless 足以;设计模式不是必须的,未来的代码可能是给 AI 看的,不一定给人看。
程序员并没有"天然不可替代性"。
当你掌握抽象思维和分治思维,指挥 AI 设计架构,会比人设计的更好,架构图更漂亮。
当你掌握结构化思维,能高效地让 AI 帮你写代码干事,做到 90%甚至 100%的覆盖率没有任何问题。
现在没有程序员说自己写算法比 AI 还厉害吧?反正我是自愧不如。
这是从现在的 AI 智能程度来说,就可以做到了,那么,未来呢?
真正拉开差距的,是你是否拥有这些底层思维:你能不能定义问题、设定约束、做出权衡、判断对错,并持续迭代。
居安思危、未雨绸缪,才是我们应该具备的素质。拥有这 7 个底层思维,在 AI 时代才能以不变应万变。
这篇文章我花了一周时间才完成,因为抽象"底层思维"并不容易。写这种文章也确实费力不讨好------现在越来越少有人愿意沉下心来做深度思考了。
对我而言,它也是我对过去十年程序员生涯的一次告别:我会带着这些底层思维,在 AI 时代创业、转型做产品、做企业,去寻找属于自己的道路。也希望能与你共勉!
🚀 想要与更多AI爱好者交流,共同成长吗?