“I have my hopes, and very distinct ones too, of one day getting cerebral phenomena such that I can put them into mathematical equations.” ——Ada Lovelace, 1844
提起”程序员”,人们脑海里浮现的多半是:硅谷格子衫、996、键盘、咖啡、深夜显示器。
但这个职业的真实诞生时间,要比硅谷早整整一个世纪——更准确地说,1843 年,距今 183 年。
第一位程序员既不是工程师,也不是数学家,而是一位英国伯爵夫人。她在 27 岁那年为一台还没造出来的机器写下了人类第一段算法,死前 9 年看不到自己作品被运行,死后 100 年才被世界正式承认。
她的名字叫 Ada Lovelace——拜伦勋爵的女儿。
本文将沿着 180 年时间轴,把程序员这个职业的诞生、演变、繁荣、危机讲完整。这不仅是一段计算机史,更是一段关于人类如何用语言和符号驯服机器的精神史。
一、史前时代(1800-1900):机器还没诞生,程序先来了
1.1 提花机的”打孔卡”:程序的雏形
很多人不知道,程序员的祖先不是数学家,而是纺织工。
1804 年,法国织工 Joseph Marie Jacquard 发明了提花机(Jacquard Loom)。这台机器革命性地引入了一个概念:用打孔卡(punched cards)控制织布机的图案。

每张打孔卡上有一组孔洞,孔的位置决定哪根针下降、哪根针上升。一叠打孔卡就是一段”程序”,机器按照卡片顺序”执行”,织出复杂的图案。
这是人类历史上第一次出现”指令序列控制机器行为”的概念。程序的本质——用符号控制物理过程——在这里被定义了。
1.2 Charles Babbage:现代计算机的祖父
1822 年,英国数学家 Charles Babbage(查尔斯·巴贝奇)开始设计差分机(Difference Engine)——一台可以自动计算多项式函数的机械装置。这是世界上第一台真正意义上的通用计算机的雏形。
后来他设计了更宏大的分析机(Analytical Engine)——拥有”存储器”(Store)、“运算器”(Mill)、“控制单元”(基于 Jacquard 卡片),已经具备了图灵完备的所有要素,比冯·诺依曼架构早 100 多年。

但分析机从未在巴贝奇生前被制造出来——它太复杂、太昂贵,连英国政府都拒绝继续资助。
如果故事到这里就结束,分析机会成为一项被遗忘的工程奇迹。直到一位 17 岁的少女走进了巴贝奇的世界。
二、第一位程序员:Ada Lovelace(1843)
2.1 拜伦勋爵的女儿
Augusta Ada King-Noel, Countess of Lovelace(1815-1852),原名 Ada Byron。她的父亲是英国诗人 拜伦勋爵——那个写出《唐璜》的浪漫主义诗人。
但 Ada 出生 5 周后,她的母亲安妮·伊莎贝拉就带着她离开了拜伦。母亲憎恶拜伦的”浪漫主义疯狂”,刻意让 Ada 学习数学和逻辑,希望她不要变成第二个拜伦。

Ada 从小天赋异禀,12 岁就开始研究”飞行器”的可行性——画出蒸汽驱动的机械翅膀图纸。17 岁那年,她在一个数学沙龙上认识了 Charles Babbage——比她大 24 岁的”分析机之父”。
2.2 改变历史的”翻译”
1842 年,意大利数学家 Luigi Menabrea 用法语写了一篇关于分析机的论文。Babbage 委托 Ada 把它翻译成英语。
Ada 用了 9 个月翻译这篇论文。但她做了一件远超”翻译”的事——她加上了 7 个注释(Note A 到 Note G),篇幅是原文的 3 倍。
在 Note G 中,Ada 写下了一段计算伯努利数的详细程序步骤。这段算法被公认为人类历史上第一个计算机程序。
更重要的是,Ada 在注释中提出了一系列远超时代的洞察:
洞察一:通用计算
“The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform.”
“分析机本身不能创造任何东西,但它可以执行我们能教给它的任何任务。”
这是通用计算机概念的最早表述——比图灵的”通用图灵机”早 93 年。
洞察二:超越数字
“Supposing, for instance, that the fundamental relations of pitched sounds were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.”
“假设音高的基本关系可以这样表达和调整,机器就可以谱写出任意复杂程度的精致音乐。”
Ada 是**第一个意识到计算机可以处理”非数字信息”(如音乐、艺术)**的人。她预见了今天的多媒体计算、AI 作曲。
洞察三:限度
“It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths.”
“它能执行我们命令它执行的任何分析,但它没有能力预见新的分析关系或真理。”
这是关于”机器智能边界”的最早讨论——后来被图灵称为”Lady Lovelace’s Objection”,是 AI 哲学中的经典命题。
2.3 被遗忘的天才
Ada 36 岁死于子宫癌。她生前没有看到自己的程序被运行,因为分析机根本没造出来。
她的注释被埋没了整整一个世纪。
直到 1953 年,B.V. Bowden 在《Faster Than Thought》一书中重新发掘了 Ada 的工作,世界才意识到——计算机程序的概念,在硬件之前就被一个女人想清楚了。
1980 年,美国国防部将一种新编程语言命名为 Ada 语言,用于飞机、航天、武器系统的关键软件。这是对她最高的致敬。
每年 10 月的第二个星期二,是 “Ada Lovelace Day”,纪念她和所有 STEM 领域的女性。
三、理论奠基(1900-1940):程序员还没出现,理论先准备好了
3.1 Hilbert 的挑战
20 世纪初,德国数学家 David Hilbert 提出了一个核心问题——Entscheidungsproblem(判定问题):
“是否存在一个算法,能判定任意数学陈述的真假?”
如果答案是”是”,数学就可以被完全自动化。如果答案是”否”,那么数学中存在”机器无法解决的问题”。
3.2 Alan Turing 与图灵机(1936)
英国数学家 Alan Turing(艾伦·图灵)在 1936 年发表了划时代论文 《On Computable Numbers》,给出了否定答案。
他设计了一个抽象的计算模型——图灵机(Turing Machine):
- 一条无限长的纸带(内存)
- 一个读写头
- 一组状态(程序)
- 一组转移规则
他证明:任何可计算的函数都可以被图灵机计算——这就是Church-Turing Thesis(丘奇-图灵论题)。
图灵机的伟大之处:它定义了”什么是可计算”,奠定了整个计算机科学的理论基础。
同期,美国数学家 Alonzo Church(图灵的博士导师)提出了Lambda 演算,与图灵机等价。这是函数式编程语言(Lisp、Haskell、Scala)的理论源头。
3.3 战争催熟
二战的爆发把计算机理论变成了紧迫的工程需求:
- 英国:图灵在 Bletchley Park 破解 Enigma 密码,建造了 Colossus——世界上第一台电子可编程计算机
- 美国:陆军弹道实验室建造 ENIAC——计算炮弹弹道
- 德国:Konrad Zuse 建造 Z3——第一台可编程电子机械计算机
程序员这个职业,将在这些机器旁边诞生。
四、ENIAC 女程序员(1945):被遗忘的开创者
4.1 第一台电子计算机
1946 年 2 月 14 日,美国宾夕法尼亚大学发布了 ENIAC(Electronic Numerical Integrator and Computer)——人类历史上第一台通用电子数字计算机。
它有多大?
- 重 30 吨
- 占地 167 平方米(相当于一个小公寓)
- 17468 个真空管
- 70000 个电阻
- 每秒 5000 次加法
但 ENIAC 没有现代意义上的”程序”——编程方式是手动插拔几千根电缆。

4.2 六个被遗忘的女人
负责给 ENIAC 编程的,是六位年轻女性:
- Kay McNulty
- Betty Jennings
- Betty Snyder
- Marlyn Wescoff
- Fran Bilas
- Ruth Lichterman
她们都是数学专业的本科毕业生。在战争期间,她们原本的工作是用机械计算器手工计算炮弹弹道——这种工作的职位名称就叫 “Computer”(计算员)——“Computer”这个词最初指的不是机器,而是人。
当 ENIAC 项目启动时,男工程师们设计硬件,女计算员被分配去编程——因为在当时的观念里,“编程”被认为是低级的、女性化的工作(类似秘书)。
她们没有任何编程手册,只有硬件电路图。她们必须:
- 从数学问题分解出可执行步骤
- 决定每一步用哪个电路单元
- 手动插拔几千根电缆
- 设置 3000 个开关
一个完整的程序设置可能需要几天时间。但她们运行的速度比手算快 1000 倍以上。
4.3 被抹除的历史
1946 年 ENIAC 公开发布会上,这六位女程序员没有被邀请。媒体只拍摄了男性工程师 J. Presper Eckert 和 John Mauchly 的照片。
她们的名字消失了整整 40 年。
直到 1986 年,计算机历史学家 Kathy Kleiman 在档案中发现一张老照片——几位女性站在 ENIAC 旁边。当她询问博物馆人员”她们是谁”时,得到的回答是:“冰箱模特(Refrigerator Ladies)——为了让机器显得有人气放的。”
Kleiman 花了 10 年追踪,才把六个人的名字和故事完整还原。她们才是世界上第一批真正意义上的”职业程序员”。
历史学家评价:在计算机硬件被男性工程师独占的时代,软件的开创者实际上是一群被忽视的女性。
五、Grace Hopper 与编程语言(1950s)
5.1 “Amazing Grace”
如果说 Ada 是第一位程序员,那么 Grace Hopper(格雷丝·霍珀)就是第一位软件工程师。

Grace Hopper(1906-1992)是美国海军少将、数学家、计算机科学先驱。她的成就:
- 1944 年:编程 Mark I 计算机(哈佛大学)
- 1949 年:加入 UNIVAC 项目
- 1952 年:发明第一个编译器 A-0
- 1959 年:参与设计 COBOL 语言
- 海军服役 43 年,最终成为美国海军少将
她是把”编程从硬件中解放出来”的关键人物。
5.2 第一个 Bug
1947 年 9 月 9 日,Grace Hopper 在 Mark II 计算机的继电器上发现了一只飞蛾——它卡在继电器之间,导致机器故障。

她把这只飞蛾贴在了工作日志上,并写下:“First actual case of bug being found.”
虽然 “bug” 这个词在工程领域早已存在(爱迪生在 1878 年就用过),但这只飞蛾让”程序错误叫 bug”这个说法正式进入计算机文化。
直到今天,这只飞蛾的日志页仍保存在美国史密森尼博物馆。
5.3 编译器的诞生
1950 年代,程序员仍用机器码(0 和 1)或汇编语言编程,效率极低。
Grace Hopper 提出了一个革命性想法:让计算机自己把”人类可读的代码”翻译成机器码——这就是编译器。
很多人嘲笑她:“计算机只会处理数字,不可能理解人类语言。”
但她坚持下来。1952 年,她发布了 A-0——人类历史上第一个编译器。
1959 年,她主导设计了 COBOL(Common Business-Oriented Language)——一种用接近英语的语法编写的商业编程语言。
COBOL 的影响有多大? 直到今天(2026 年),全球仍有 2200 亿行 COBOL 代码在运行,主要在银行、保险、政府系统。每次你刷信用卡,背后可能就是一段 60 年前用 COBOL 写的代码。
5.4 “程序员”作为职业的形成
1950 年代,“程序员”(Programmer)作为一个独立职业正式出现。
最早的程序员主要来自:
- 数学系毕业生
- 女性计算员的转型
- 打字员(因为输入打孔卡需要打字技能)
当时的工作环境:
- 在带空调的机房工作(保护真空管)
- 用 FORTRAN(1957)或 COBOL(1959)编程
- 提交打孔卡给操作员,几小时后拿到运行结果
- 一次编译失败就要重排队

但编程在那时是高薪职业。1960 年代美国程序员年薪约 1.2 万美元,是普通工人的 3 倍。
六、UNIX 黄金时代(1969-1980)
6.1 贝尔实验室的两个奇才
1969 年,AT&T 贝尔实验室。
两个工程师——Ken Thompson 和 Dennis Ritchie——在一台被废弃的 PDP-7 上开始了一个小项目。

他们的目标很简单:写一个能运行《Space Travel》游戏的简易操作系统。
结果他们写出了 UNIX——改变了整个计算机产业的操作系统。
6.2 UNIX 哲学
UNIX 不仅是一个操作系统,它是一种编程哲学:
- Do one thing and do it well(一个程序只做一件事,把它做好)
- Write programs to work together(程序之间应该可以协作)
- Make everything a file(一切皆文件)
- Use plain text(用纯文本格式)
这套哲学深刻影响了之后 60 年的所有软件设计。今天你用的 Linux、macOS、iOS、Android,都是 UNIX 哲学的直接后代。
6.3 C 语言的诞生
为了让 UNIX 可以在不同硬件上运行,Dennis Ritchie 在 1972 年发明了 C 语言。
C 语言的革命性在于:
- 足够低级:可以直接操作内存、性能接近汇编
- 足够高级:有变量、函数、结构体等抽象
- 可移植:用 C 写的程序可以在不同硬件上重新编译运行
C 语言至今仍是世界上最重要的编程语言之一。Linux 内核、Windows 内核、几乎所有数据库、所有 JVM 实现、Python/Ruby/PHP 的解释器——全都是用 C 写的。
6.4 黑客文化的形成
1970 年代的 UNIX 圈子,形成了人类历史上第一个真正的黑客文化:
- 代码共享:源代码自由流通
- 崇尚精巧:以”短小、优雅、高效”为美
- 反对垄断:抗拒商业封闭
- 崇尚自由:信息应该自由流动
这种文化后来演变成 GNU 运动和开源运动,深刻影响了今天的程序员价值观。
七、个人电脑革命(1975-1995)
7.1 微型化的突破
1971 年,Intel 4004——世界上第一款商用微处理器诞生。原本占满一整间房子的计算能力,被压缩到了一片指甲盖大小的硅片上。

这彻底改变了程序员的工作场景——计算机不再是”巨大的机房里的稀有资源”,而可以摆在每个人的桌面上。
7.2 两个车库里的世界
1975 年到 1980 年,两个车库改变了世界:
车库一:Bill Gates 和 Paul Allen
1975 年,19 岁的 Bill Gates 看到《Popular Electronics》杂志封面上的 Altair 8800 微型计算机。他和 Paul Allen 给 Altair 公司打电话:“我们有一个 BASIC 解释器!”
他们其实没有。但他们用 8 周时间,在没有 Altair 实机的情况下,用 PDP-10 模拟器写出了 Altair BASIC。
这是 Microsoft 的起点。从此,“软件作为商品销售”成为可能——之前的软件都是免费随硬件附送的。
Bill Gates 在 1976 年写了一封著名的公开信《An Open Letter to Hobbyists》,谴责盗版,提出”软件应该收费”——这奠定了商业软件产业的基础。
车库二:Steve Jobs 和 Steve Wozniak
1976 年,Steve Wozniak 在自家车库里造出了 Apple I——第一台真正”开箱即用”的个人电脑。Steve Jobs 把它包装成产品卖出去。
1977 年的 Apple II 大获成功,1984 年的 Macintosh 引入图形界面(GUI)。
7.3 程序员形象的演变
这个时代的程序员形象开始多样化:
- 企业程序员:穿衬衫打领带,写 COBOL,在 IBM 大公司工作
- 学院黑客:长发胡子,写 LISP,住在 MIT 实验室
- 极客企业家:穿 T 恤,写 BASIC,自己创业
“Geek”(极客)和 “Hacker”(黑客)作为身份认同开始形成。
7.4 Microsoft 与 IBM 的世纪交易
1980 年,IBM 准备发布个人电脑,需要操作系统。他们找到 Microsoft。
Bill Gates 做了一笔历史性交易:
- 以 5 万美元从 Seattle Computer Products 买下 QDOS
- 包装成 MS-DOS 卖给 IBM
- 保留授权给其他厂商的权利
这个看似不起眼的条款,让 Microsoft 在之后 20 年统治了 PC 操作系统市场。Bill Gates 成为世界首富,整个 Windows 生态成型。
八、互联网时代(1995-2010)
8.1 万维网的诞生
1989 年,欧洲核子研究中心(CERN)的英国工程师 Tim Berners-Lee 提出了一个想法:用超链接连接所有文档。
1991 年,他写出了:
- HTTP 协议
- HTML 语言
- 第一个浏览器(叫 WorldWideWeb)
- 第一个网页服务器
这就是 World Wide Web——万维网。

关键决定:Tim Berners-Lee 拒绝为 Web 申请专利,把它免费开放给全世界。这是人类历史上最伟大的”放弃专利”决定之一——如果他当时收专利费,今天的互联网格局会完全不同。
8.2 浏览器之战
1993 年,Marc Andreessen 在伊利诺伊大学发布 Mosaic 浏览器——第一个支持图片的图形浏览器。
1994 年,他成立 Netscape,发布 Netscape Navigator。
1995 年,Microsoft 推出 Internet Explorer,开启”第一次浏览器大战”。
前端开发作为一个独立方向开始出现——程序员需要写 HTML、CSS、JavaScript 来构建网页。
8.3 Linus Torvalds 与 Linux
1991 年,21 岁的芬兰大学生 Linus Torvalds 在新闻组上发了一封邮件:
“Hello everybody out there using minix - I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.”
“我在做一个免费的操作系统(只是爱好,不会像 GNU 那么大那么专业)”

这个”小爱好”成为了 Linux——今天运行着 96.3% 的世界顶级服务器、几乎所有 Android 手机、所有 SpaceX 火箭、国际空间站电脑的操作系统。
Linus 还创造了 Git——今天所有程序员都在用的版本控制系统。
Linux 的成功是开源运动的最大胜利。它证明了:全球数千名志愿者协作开发的软件,可以打败商业巨头的封闭产品。
8.4 互联网泡沫与崩溃
1995-2000 年,互联网创业潮席卷世界。任何带 “.com” 的公司股价都飞涨。程序员是这个时代最抢手的人才——年薪 10 万美元起步、签字奖金、股票期权。
2000 年 3 月,泡沫破裂。纳斯达克指数暴跌 78%,90% 的互联网公司倒闭。无数程序员失业。
但泡沫中诞生的真正巨头活了下来:
- Amazon(1994)
- Google(1998)
- PayPal(1998)
- eBay(1995)
8.5 Google 与现代软件工程
1998 年,Larry Page 和 Sergey Brin 在斯坦福创立 Google。他们带来了一种全新的软件工程文化:
- 数据驱动:所有决策基于 A/B 测试
- 大规模分布式系统:GFS、MapReduce、BigTable
- 代码审查:所有代码必须被同事 review
- 持续集成:每天数千次构建
- 20% 时间:员工有 20% 时间做自己感兴趣的项目(Gmail 就是这样诞生的)
Google 重新定义了”什么是大公司的程序员”——不再是西装革履的 IBM 工程师,而是穿拖鞋骑滑板的码农,靠数据和算法改变世界。
九、移动互联网与开源繁荣(2007-2020)
9.1 iPhone 改变世界
2007 年 1 月 9 日,Steve Jobs 发布 iPhone。
第二年,App Store 上线——一个全新的产业诞生了。
App 开发者成为一个全新的职业。普通程序员可以:
- 一个人开发一个 App
- 上架 App Store
- 全球用户购买
- 直接拿到收入
应用经济催生了无数”独立开发者”——一个人就是一支队伍。
9.2 GitHub 与开源的爆炸
2008 年,GitHub 上线。它把 Git 变成一个社交平台——程序员可以:
- 公开自己的代码
- 关注别人的项目
- 通过 Pull Request 协作
- 用 Star 表达支持
GitHub 改变了程序员的身份认同——你的 GitHub Profile 成为了简历,你的代码贡献成为了职业资本。“开源贡献者”成为一种荣誉称号。
2018 年,微软以 75 亿美元收购 GitHub。
9.3 后端的革命
这十年,后端技术经历了翻天覆地的变化:
| 时间 | 技术 | 影响 |
|---|---|---|
| 2008 | Node.js | JavaScript 进入后端 |
| 2009 | Redis、MongoDB | NoSQL 兴起 |
| 2013 | Docker | 容器化革命 |
| 2014 | Kubernetes | 容器编排标准 |
| 2015 | TensorFlow | 深度学习框架 |
| 2017 | Transformer 论文 | LLM 的理论基础 |
程序员的工种开始高度细分:
- 前端工程师
- 后端工程师
- 全栈工程师
- 移动开发(iOS / Android)
- DevOps / SRE
- 数据工程师
- 机器学习工程师
- 安全工程师
- 嵌入式工程师
- 游戏开发
9.4 中国互联网的崛起
这十年,中国诞生了世界级的互联网公司:
- BAT 时代(百度、阿里、腾讯)
- TMD 兴起(字节跳动、美团、滴滴)
- 新势力(拼多多、小米、华为)
**“码农”**这个词作为程序员的中文俗称在 2010 年前后流行。其中混杂着自嘲、骄傲、无奈三种情绪。
中国程序员经历了独特的轨迹:
- 2010-2015:黄金时代,移动互联网爆发,高薪、期权、上市暴富
- 2015-2020:白热化竞争,996 文化盛行
- 2020-2022:监管收紧、反垄断、互联网寒冬开始
- 2022-2026:裁员潮、AI 冲击
十、AI 时代与编程的未来(2020-2026+)
10.1 大语言模型的爆发
2022 年 11 月 30 日,OpenAI 发布 ChatGPT。两个月内用户突破 1 亿,成为人类历史上增长最快的消费应用。
2023 年开始:
- GitHub Copilot——AI 写代码助手普及
- Cursor、Windsurf——AI 优先的 IDE
- Claude、ChatGPT ——程序员的”日常工具”
- Devin、SWE-agent——尝试做”自主编程 Agent”
2024-2026:AI 编程能力快速进化:
- HumanEval 准确率从 30% → 90%+
- 能完整理解大型代码库
- 能自主完成多步骤编程任务
- 能调试、重构、写测试
10.2 程序员职业的根本变化
AI 给程序员职业带来了自 1950 年代以来最大的冲击:
工作方式的改变:
- 从”敲键盘写代码”变成”指导 AI 写代码”
- 从”实现细节”变成”设计意图”
- 从”个人开发”变成”人机协作”
- 测试、文档、CI/CD 等环节几乎完全自动化
技能要求的改变:
- 降低:语法熟练度、模板代码能力
- 不变:系统设计、需求分析、技术决策
- 提升:抽象能力、表达能力、判断力、对 AI 的”驾驭能力”
就业市场的改变:
- 初级程序员需求减少(AI 能替代)
- 中级程序员压力增大(产出预期翻倍)
- 高级程序员价值提升(设计和决策无法被替代)
- 全栈能力更受重视(AI 让一个人能做更多事)
10.3 几种观点
关于”程序员会不会消失”,主流有三种观点:
观点一:程序员会消失
代表人物:Sam Altman、Elon Musk
理由:AI 几年内就能完全替代人类编程。未来的”程序员”只是 AI 系统的设计者,数量极少。
观点二:程序员会进化
代表人物:DHH、Linus Torvalds
理由:编程从来不只是写代码。AI 会替代低端编程,但高端编程(架构、决策、创造性问题)仍需要人类。程序员会变成更高维度的工程师。
观点三:程序员会爆发
代表人物:Andrew Ng、Andrej Karpathy
理由:AI 让编程门槛降低,更多人可以成为”程序员”。“Software is eating the world” 会进入新阶段——所有行业都需要 AI 时代的程序员。
哪种观点对?历史上每次技术革命都同时存在以上三种声音,而结果通常是三者都对一部分:
- 低端工种消失
- 中端工种进化
- 高端工种增加 + 新工种诞生
十一、回望 183 年:程序员的本质
走过 1843 到 2026,从 Ada 的笔记本到今天的 AI 编程助手,我们看到了什么?
11.1 几个深刻的变化
变化一:从机器中心到人类中心
- 1850 年:人类适应机器(手动插拔电缆)
- 1950 年:机器开始适应人类(编译器、高级语言)
- 2020 年:机器接近人类的表达方式(自然语言编程)
变化二:从精英职业到大众职业
- 1850 年:全世界只有 Ada 一个程序员
- 1950 年:全世界数千人
- 1990 年:全世界数百万人
- 2026 年:全世界约 3000 万 职业程序员(StackOverflow 2024 估计)
变化三:从高门槛到低门槛
- 1950 年:需要博士学位
- 1990 年:本科即可
- 2010 年:训练营 6 个月毕业
- 2026 年:会用 AI 就行
11.2 几个不变的本质
但有些东西从 1843 年到 2026 年都没变:
不变一:把模糊的需求变成精确的指令
无论用打孔卡、汇编、C、Python 还是自然语言,程序员的核心工作始终是把模糊的人类意图转化为机器能理解的精确指令。
不变二:调试是永恒的痛苦
Grace Hopper 在 1947 年记录第一只 bug 后,每一代程序员都在和 bug 斗争。AI 不会消灭 bug,只会改变 bug 的形态。
不变三:抽象是核心能力
从 Ada 用伯努利数算法表达计算过程,到今天用 React 组件表达 UI——抽象能力是程序员的根本能力,从未改变。
不变四:协作改变世界
UNIX、Linux、Web、开源、GitHub、AI 模型——真正改变世界的从来不是单打独斗的天才,而是协作的网络。
11.3 一个浪漫的细节
1843 年,Ada Lovelace 在她的注释中写下:
“The Analytical Engine weaves algebraic patterns just as the Jacquard loom weaves flowers and leaves.”
“分析机编织代数图案,就像提花机编织花朵和叶子一样。”
她把计算与编织类比——程序就是”编织数字图案”。
183 年后,今天的我们用”编织”(weaving)这个词形容神经网络的训练、用”线程”(thread)这个词形容并发执行、用”代码织造”形容工程艺术——Ada 的比喻仍然有效。
她当年没有看到一台真正的分析机,但她看到了未来。
结语:每一代程序员都站在前人的肩膀上
程序员这个职业 183 年的演变,呈现了一个清晰的接力:
- Ada Lovelace 想出了”程序”的概念
- Charles Babbage 设计了能执行程序的机器
- Alan Turing 证明了什么可以被计算
- ENIAC 六女将 让程序真正运行起来
- Grace Hopper 让编程变得人性化
- Ken Thompson 和 Dennis Ritchie 创造了 UNIX 和 C
- Bill Gates 和 Steve Jobs 让计算机走进家庭
- Tim Berners-Lee 让信息自由流动
- Linus Torvalds 证明了开源的力量
- Larry Page 和 Sergey Brin 让信息变得可搜索
- Steve Jobs 让计算机装进口袋
- OpenAI 和无数 AI 研究者 让机器开始理解人类
今天的每一个程序员,都是这个 183 年接力的延续。
下一棒会传给谁?也许是你。也许是 AI。也许是 AI 和你的合作。
但无论传给谁,那个 1843 年伯爵夫人在伦敦家中写下的第一段算法,仍然在跳动——以今天的 Python、今天的 Rust、今天的 GPU 内核、今天的 LLM 权重的方式,跳动在地球上数十亿台机器中。
这就是程序员的浪漫——你写下的每一行代码,都是 Ada 留下的那段代码的孩子。
主要参考资料:
- Walter Isaacson 《The Innovators》(中文版《创新者》)
- Steven Levy 《Hackers: Heroes of the Computer Revolution》
- Eric Raymond 《The Cathedral and the Bazaar》(中文版《大教堂与集市》)
- Brian Kernighan 《UNIX: A History and a Memoir》
- Kathy Kleiman 《Proving Ground: The Untold Story of the Six Women Who Programmed the World’s First Modern Computer》
- 吴军 《浪潮之巅》
- 吴军 《信息传》
- Charles Petzold 《Code: The Hidden Language of Computer Hardware and Software》
- Martin Campbell-Kelly 《Computer: A History of the Information Machine》
- ACM Communications 历年程序员职业发展回顾文章
- Stack Overflow Developer Survey 2010-2024
- GitHub Octoverse Report 2015-2024
- IEEE Annals of the History of Computing 期刊