乐于分享
好东西不私藏

系统即一切,软件即是系统

系统即一切,软件即是系统
最近我和一位朋友聊天,问他想不想多学点编程,他说不想。我接着说,从软件设计中学到的东西在日常生活中非常有用,但当时说不清楚为什么。后来我仔细想了想,有了更连贯的想法,于是写下来。
核心有两个观点:

1、系统无处不在。理解复杂性、权衡取舍、系统如何生长与演化,适用于很多事情,因此普适有用。

2、软件工程是系统思维最纯粹的体现,也是普通人可以边做边学的途径。

系统即一切

“系统是一组相互作用、相互关联的元素,按照一套规则运行,形成一个统一整体。”
这个定义很宽泛,事实也的确如此。先举些例子:
  • 政府是系统

  • 企业是系统

  • 宗教是系统

以上三者相加 → 所有人类组织都是系统

  • 法律体系是系统

  • 家庭关系是系统

  • 语言是系统

  • 对话是系统

  • 社会规范是系统

  • 物理定律是系统

等等,不胜枚举

定义这么宽泛,那我们还能说出什么具体结论吗?我认为可以:

系统可以是不可变的(如物理定律),也可以是完全任意的(如穿搭潮流),或介于两者之间。

系统可以更复杂或更简单,至少相对于同类系统而言。规则可多可少,元素可繁可简。

越简单的系统越容易学习、传授、理解。

我们日常接触的大多数系统,要么不受控制(如物理定律),要么影响力极弱(如通过民主影响政府),要么是现成的(如规范、文化、语言)。我们很少需要深入思考如何构建一个好系统,更少有机会从零搭建。

我相信还有更多,但希望到这里你已经能感受到:“系统” 一词虽宽泛,却依然有深度与实用价值。

软件即是系统

现在我写东西尽量不假设读者懂代码,毕竟我妈妈也会看,所以我会尽力把鸿沟填平。
把软件还原到最本质:我们只是在给机器写指令,让它按特定顺序做计算。元素是数字(0 和 1),规则是数学。它本身就是一个系统 —— 既然万物皆系统,这一点也不意外。
有趣的是,我们不会让它随便算,而是让它做有用的事。“有用” 几乎总是意味着:与现实世界的某物对应
  • 电子表格可以是公司财务的简单模型

  • 天气预报模拟真实天气

  • 互联网有点像和人交谈

  • 电脑游戏试图成为虚拟世界

这些也都是系统,而且有明显特点:
  • 它们通常比现实原型更简单(比如气象模型)

  • 它们可能因各种原因与现实不同(比如消息不必在线读,可以有空再看,不像对话)

  • 它们被创造、被修改的速度远快于现实中的大多数系统

你可能已经看出一部分结论:如果你有机会设计这类系统,它会成为学习现实系统的绝佳方式
我们常说,真正理解的标志是能把概念讲给别人听。而讲给不会自动帮你补全漏洞的计算机听,效果是等价的。
收获还不止于此。你在做的过程中可能想修改模型,只为省时间或探索可能;你还可以给系统加上全新的功能。比如在互联网上给任何人发推文,这种交互在软件出现前根本不存在。我们一起体验这些新交互的美好与麻烦。
但你不需要做 Twitter 级别的项目才能学到系统设计。哪怕是中等规模、只有自己在用的软件,也能让你体会到系统的力量与挑战。
还有一些领域也在持续产出系统,比如物理模型,和软件很像。但借助高级语言、尤其是现在有大语言模型辅助,我们做软件时只需要专注思考系统本身
相比之下,就算你有机会设计公司组织架构,它的生长和变化速度也远慢于软件。
所以,想学习系统,写软件就是设计系统
对我来说,软件里的很多道理放之四海而皆准。我第一篇文章里说的复杂性会填满给它的空间,就是绝佳例子。看着空类被越来越多代码填满,我意识到这个现象,然后开始在所有系统里看到它:团队不断膨胀、拆分、再膨胀;组织章程越来越复杂,照着框架填充,哪怕其实没必要。
再比如调试。我很喜欢的一条原则是:没搞懂问题,就不许修复。修复 bug 常有很多办法,有时你明明不懂原因也能修好。但风险很明显:根本原因需要被找到、理解、深究。
在软件里明白这一点,你就会发现它适用于所有系统。比如靠喝咖啡提神对抗困倦,而真正该做的是多睡觉。

最后我想对朋友说

我不会说 “你应该学编程”—— 这对我想表达的东西来说门槛太高。
我更想说:有一种思维方式,要做一段时间才会显现。你会开始看到规则,而不是表面。
一路到底,全是系统。
你可以从别的路径抵达,但软件是我所知最便宜、最快的一条,也是一位不会帮你补漏洞的罕见老师。
入门门槛比以往任何时候都低。
而且说实话,还挺好玩的。
要不,试试看?

https://wilsoniumite.com/2026/05/15/systems-are-everything-software-is-systems/