首页 › programming › 会写代码,不等于会编程

会写代码,不等于会编程:一条239万播放的编程神课深读

概述

"learn to code"喊了十年,无数人背完语法、刷完教程,却在真实项目面前寸步难行——因为他们学会的只是“编码”,而不是“编程”。Aaron Jack 的这条《Programming vs Coding - What's the difference?》专治这个混淆:它没有炫技的画面,也不追任何新框架,只讲清一个被大众和招聘市场混用了几十年的概念分界。在 AI 生成代码已经无处不在的 2026 年,这条几年前拍摄的视频非但没过时,反而变得更扎心:语法翻译正在被机器接管,而“编程”这部分,恰恰是机器最难替代的。本文带你把这条片子的论证拆开,补上它没来得及展开的理论背景,并给出可直接上手的自测与练习方法。

视频基本信息

项目 内容
视频标题 Programming vs Coding - What's the difference?
中文译名 编程与写代码,到底差在哪
频道 Aaron Jack(前 Uber 软件工程师,据其频道公开介绍,专注软件工程师职业成长)
链接 https://www.youtube.com/watch?v=CIRGjwYgdT4
播放量 2,392,199 次(本站系统每日素材抓取采样:2026-08-31 为 2,388,867 次,至 2026-09-18 共 10 次采样持续爬升)
发布时间 本次采样数据未含发布日期字段;据频道内容推断为博主早期代表作(约 2020 年前后,未经官方页面核对)

一个诚实的说明:这条视频不是“三天爆涨千万播放”的那种流量爆款。系统连续近三周的抓取显示,它以每天一两百次的节奏稳定增长,并长期占据 "programming explained" 类搜索结果的前排——典型的长青内容:每年都有新一茬学习者和转行者把它翻出来,因为它回答的问题不随版本号过时。本文播放量均来自系统素材抓取(yt-dlp 采样),非人工实时核验。

核心主张拆解:视频到底讲了什么

1. 两个词的混用,代价是学习路径的跑偏

视频的出发点是一个语言现象:在大众语境里,programming(编程)和 coding(写代码)几乎被当成同义词——招聘启事写“会 coding”,培训班广告喊“学 programming”,反正都是“敲电脑里那些神秘符号”。视频指出,这种混用在营销语境里被进一步放大:"learn to code"这门生意,卖的是“几个月学会一门语言语法”的确定性,但买家真正想要的是“成为能造软件的人”。两者之间的鸿沟,恰恰是无数转行者学完教程后依然找不到方向感的原因。这层铺垫并不炫技,但它把后面所有论证的靶子立了起来:被简化出售的那个东西,从来不是编程本身。

2. 编码是翻译,编程是设计

这是全片的主轴:coding 是把一个已经想清楚的方案,翻译成某种语言能跑的语法;而 programming 是在这之前的那一大段——理解模糊的真实问题,把它拆成可以解决的子问题,设计数据怎么组织、模块怎么划界、错误怎么兜底,反复权衡取舍之后,才轮到“翻译成代码”这最后一跳。用一个类比:会拼单词不等于会写小说。语法只是编码系统的表音符,真正决定软件质量的是那套“在脑子里先把世界建模”的能力。视频强调,这解释了一个经典现象:两个语法熟练度相当的人,做同一个项目的产出可能差出一个数量级——差距不在打字速度,而在动键盘之前发生了什么。

3. 真实的工作时间,大头不在“写”

视频还点破了许多外行(以及不少初学者)的想象误差:职业程序员的一天,敲新代码其实只占一小部分,更多时间花在读懂别人(或几个月前自己)写的代码、定位 bug、评估改动影响面上。这也是为什么“能跑起来”和“能维护”是两个物种——前者只要求翻译正确,后者要求你理解一个不断生长的概念结构。需要说明的是,这一段视频里更多是经验性的点题,具体的量化证据来自几十年的软件工程研究,下一节我们补齐出处。

4. AI 把“翻译”自动化了,“设计”被留了下来

(这是本文的延伸分析,并非视频原意——这条视频拍摄于生成式 AI 爆发之前。)把主轴放到 2026 年看,会发现的它的预言性:AI 编程助手接管的,恰恰是“把想清楚的方案翻译成语法”这一段——也就是 coding 中最机械的部分。Karpathy 在 2025 年初提出的"vibe coding"之所以引发两极争论,正是因为它把“只描述、不细看代码”的极端形态摆上了台面:当打字可以被外包,什么不能被外包?答案回到视频的主轴——对问题的理解、对边界的判断、对方案的验证。换句话说,这条几年前的视频在 AI 时代不是过时了,而是变成了说明书里更重要的那一页。

5. 落点:把注意力从语法转向问题

视频收尾给学习者的建议可以浓缩为一句话:别把“学会了某语言”当里程碑,把“能独立把一个模糊问题变成可运行、可维护的方案”当里程碑。语法是耗材,随版本更替;建模、拆解、调试的思维能力才是随你迁移的资产。这也是为什么我们总见到“换了三 технологии种语言还是不会做项目”的困境——换的是翻译工具,缺的是设计能力。

知识与理论溯源:视频背后的几十年研究

视频是经验之谈的形态,但它的每个论点在软件工程文献里都有严肃的对应物,这也是它值得“多懂一层”的原因。

“本质与偶然”之辨。 Fred Brooks 在 1987 年的经典论文《No Silver Bullet: Essence and Accident in Software Engineering》(IEEE Computer)中提出:软件的困难分两层——“本质复杂度”(问题本身的概念结构:它到底要解决什么、实体之间什么关系)与“偶然复杂度”(用当下的工具和语法把它表达出来所附带的困难)。编程语言、编译器、IDE 数十年的进步,压缩的几乎全是偶然复杂度;而本质复杂度岿然不动。“编程 vs 编码”的分界,几乎就是“本质 vs 偶然”的通俗版——AI 代码生成是迄今对“偶然复杂度”最狠的一次压缩,也正因如此,它对“编码”的替代远快于对“编程”的替代。

程序理解研究。 维护阶段程序员到底在干什么?von Mayrhauser 与 Vans 在 1995 年的综述《Program Comprehension During Software Maintenance and Evolution》(IEEE Computer)中,把几十项实证研究收拢成一个结论:维护工程师的大部分时间用于建立并修正对代码的心智模型,“按需理解”(as-needed strategy)是最普遍的策略。这与视频“大头不在写”的判断一致:读,先于写,也多于写。

读写的比例。 Robert C. Martin 在《Clean Code》(2008)中引用过一条流传很广的经验法则:读代码与写代码的时间比大约是 10:1。这不是严格实验结论,而是大量从业者的共识性估计——但方向与程序理解研究吻合:代码首先是写给人读的文本。Knuth 在 1984 年提出 Literate Programming(文学编程)时,把这一点推到了极致:程序的首要读者是人,机器只是顺带执行。

一句名言的注脚。 “计算机科学之于计算机,就像天文学之于望远镜”——这句常被归于 Dijkstra 名下的话(出处存疑,但流传极广)正是本片世界观的最好概括:工具从来不是学科本身。

AI 时代的现实注脚。 据公开报道:Google 的 Sundar Pichai 在 2024 年 10 月的财报电话会上透露,公司超过四分之一的新代码由 AI 生成;微软的 Satya Nadella 在 2025 年 4 月的 LlamaCon 对谈中称其仓库中约两到三成代码由 AI 写就;Stack Overflow 2024 年度开发者调查显示约 76% 的受访者在用或计划用 AI 编程工具,2025 年这一比例继续走高。这些数字共同指向一件事:“翻译成语法”这一环的边际成本正在塌缩——视频主论点的时代注脚,比视频本身更震撼。

批判性审查:哪些站得住,哪些要打折

站得住的部分。 “编程≠编码”的概念分界与 Brooks 的本质/偶然之辨、与程序理解研究的实证发现高度一致,属于软件工程领域少有的跨 decades 共识。AI 代码生成的产业数据也在持续为它背书:被自动化的正是“表达”层,而不是“构思”层。

要打折的部分。 其一,视频的二分法为了教学清晰而刻意切齐了,真实工作中“写”与“设计”是纠缠迭代的:很多人是先写出糟糕的代码才想清楚设计(伪代码驱动、REPL 试错都是合法的思考方式),“先想后写”更像理想化叙事。其二,“读:写 = 10:1”这类比例缺乏严格实验支撑,引用时应视为经验估计而非定律。其三,利益视角需要披露:作者的职业指导类频道,天然有放大“纯学语法不够”这一信息的动机——这与付费课程、职业咨询的业务方向正相关。观点本身有文献支撑,但“它被强调的力度”值得读者自己掂量。最后照例声明:本文对视频内容的概括基于其公开主旨,细节表述如与原片有出入,以原片为准。

认知提升与实用启示

一、给自己做个三问自测。 拿一个你正在做的小项目问自己:动手前,我能不能用一页纸或几行伪代码把方案写清楚(建模能力)?接手别人的代码,我能不能在合理时间内建立它的心智地图(理解能力)?方案出问题时,我能不能说清“为什么当初这么设计、现在哪里不成立了”(权衡能力)?三问全空,说明你掌握的还是 coding,不是 programming——补的方向也就清楚了。

二、把“读代码”变成正式日程。 既然读多于写,就别让阅读时间永远处于碎片化偷看状态。每周固定一小时精读一段你敬佩的开源代码(不追多大,追“读懂每个决定”),给自己维护的模块写几行设计说明(为什么这么分、边界在哪)。坚持一两个月,“看不懂别人的代码”带来的那种发怵,会有肉眼可见的消退。

三、在 AI 时代给自己重新定位。 把语法生成大方地交给 AI——这不是偷懒,是把时间投资到机器填不了的位置:需求还模糊时的问题定义、方案的多方案比较、AI 产出物的审查与验证。一个新的职业杠杆正在形成:同样的 AI,交给会编程的人手里是倍增器,交给只会 coding 的人手里是事故生成器。 前者管理复杂度,后者只是换了个更快的方式制造复杂度。

一张图看懂视频的论证结构

flowchart TD
    A["模糊的现实问题"] --> B["编程:建模与拆解"]
    B --> C["定边界与数据组织"]
    C --> D["编码:把设计译成语法"]
    D --> E["读代码与调试验证"]
    E -->|"发现设计缺口"| B
    F["AI 代码生成"] -.|"替你打字"| D
    E --> G["人的核心:审查与取舍"]
    G -->|"守住概念结构"| B

图形结构本身就说明了问题:AI 接管的只是右下角那条“翻译”捷径,而左侧和回路的闭环——建模、边界、验证——依然全部长在人身上。

延伸阅读

  1. Fred Brooks《人月神话》(1975)及其论文 "No Silver Bullet"(IEEE Computer, 1987)——“本质复杂度无法用工具消除”的原始出处,可在 IEEE Xplore 检索原文。
  2. 在 YouTube 搜索 Andrej Karpathy vibe coding 可找到 Karpathy 提出"vibe coding"概念的原始演讲与访谈,是本文第 4 节的最佳影像注脚。

参考来源

  1. Programming vs Coding - What's the difference? | Aaron Jack — 本文解读的核心视频;播放量数据来自本站系统每日素材抓取(2026-08-31 至 2026-09-18 共 10 次 yt-dlp 采样)
  2. Fred Brooks, "No Silver Bullet: Essence and Accident in Software Engineering", IEEE Computer, 1987 — “本质与偶然”复杂度之辨的原始文献
  3. A. von Mayrhauser & A. M. Vans, "Program Comprehension During Software Maintenance and Evolution", IEEE Computer, 1995 — 程序理解实证研究综述
  4. Robert C. Martin, Clean Code, Prentice Hall, 2008 — 读写时间比例的经验法则出处
  5. 据公开报道:Sundar Pichai 于 2024 年 10 月财报电话会、Satya Nadella 于 2025 年 4 月 LlamaCon 对谈中关于 AI 生成代码占比的表述;Stack Overflow 2024 年度开发者调查

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入