<!-- title: 十分钟编程课里的计算机七十年 -->
<!-- domain: programming -->

# 两百万人看过：十分钟真的能学会编程吗？

## 概述

## 一、视频基本信息

**透明性说明**：本文素材管道只提供标题、频道与播放量，无法逐帧转写原片。因此下文对视频内容的处理方式是：把“十分钟编程基础”这个品类的标准知识结构完整重构出来——这类视频的知识骨架高度一致（几乎所有同类作品都围绕变量、条件、循环、函数四大构建块展开），凡属本文的延伸分析与数据验证均单独标注，不做虚构的原话引用。这个处理方式本身就是本文论点的一部分：**十分钟格式之所以可行，恰恰因为它承载的不是某位讲师的独家洞见，而是整个学科最稳定的公共骨架。**

## 二、先看数据：编程入门内容的时间光谱

| 视频 | 时长量级 | 播放量（2026-09-03快照） |
|------|---------|------------|
| Python for Beginners（Programming with Mosh） | 约1小时 | 25,149,091 |
| How to Start Coding（Intellipaat） | 数小时长课 | 11,581,926 |
| How To Learn Programming for BEGINNERS!（CroatCode） | 短片 | 8,101,373 |
| Programming vs Coding（Aaron Jack） | 短片 | 2,389,338 |
| **basics of CODING in 10 minutes（本文主角）** | **10分钟** | **1,973,981** |
| Coding for Kids Explained（CodeMonkey） | 短片 | 1,059,947 |

注意头部数据：播放量最高的不是“最短最好消化”的十分钟视频，而是**一小时以上的完整长课**。这说明编程入门是一个罕见的“长内容碾压短内容”的品类——因为它的观众是**高意图观众**：他们带着“我要解决一个焦虑”的目标来搜索，愿意为一小时课付出一小时，因为时长本身带来“完整感”。而十分钟格式服务的是漏斗顶部**低意图的好奇人群**：“编程到底是什么？”——看完就走，满足于获得一张概念地图。两种内容形态并不竞争，而是服务于决策链的两个阶段。理解这一点，你就知道该怎么用这条视频：**它是试吃装，不是正餐**——这恰恰是视频标题里"basics"（复数的基础，而非“精通”）这个词诚实的边界。

## 三、核心主张拆解：十分钟的标准骨架

按此类视频的叙事顺序，十分钟内容通常依次展开为五个环节。

### 环节一：开场定义——代码是“意图与机器之间的翻译层”

开场几乎必然回答“什么是编程”：编程不是和机器对话的神秘仪式，而是**把人类的意图翻译成机器能逐步执行的明确指令**。这个定义的关键词是“明确”：机器不猜你的言外之意，你说的每一步它都照做，包括你写错的那一步。这个开场看似废话，实际上是整个学科世界观的入口——**模糊性是人类语言的红利，却是程序语言的毒药**。后面所有积木都是围绕“如何消灭模糊”搭建的。

### 环节二：积木一——变量，给记忆起个名字

第一个积木通常是变量（variable）：一个有名字的盒子，往里放一个值，之后随时用名字取用或替换。视频会演示 `score = 10` 这类语句，并强调“变量之所以叫变量，是因为它能变”。多数十分钟视频在这里还会顺手区分数字、字符串、布尔值几种基本类型。这一段最容易让新手产生“就这？”的轻松感——而这种轻松感正是后文要审查的对象。

### 环节三：积木二——条件，程序第一次有了“选择”

第二个积木是条件分支（if/else）：如果成绩大于等于60就显示“及格”，否则显示“重修”。程序由此第一次脱离“从头到尾一条道走到底”的呆板，获得了**根据数据走不同路径**的能力。视频在这里通常会强调一个新手通病：条件写反、边界值漏判（恰好等于60算不算及格？）。

### 环节四：积木三——循环，把重复交给机器

第三个积木是循环（loop）：打印一百行"Hello World"不需要写一百行代码，一个 `for` 循环三行搞定。这是十分钟视频里**最能制造“啊哈时刻”**的段落——观众第一次直观看到“机器的价值在于替人做重复劳动”这个计算机革命的原始承诺。循环通常还会配一个警告：小心死循环（infinite loop），条件永远不满足时程序会卡死在里面。

### 环节五：积木四与收尾——函数，以及“组合起来什么都能做”

最后一个积木是函数（function）：把一段常用逻辑打包命名，随时调用。收尾几乎必然落在同一个结论上：**世界上所有庞大的软件——从操作系统到游戏——都是这四块积木的排列组合**。这句话是十分钟格式的理论支点，也是它最有争议的地方：它技术上是对的，但容易让听者推出一个错误的推论——“积木简单，所以造房子简单”。

## 四、知识与理论溯源：四块积木背后的七十年

这是本文的核心增量。这四块“入门积木”，每一块背后都站着一位真实的工程师、一篇真实的论文或一段真实的工程史——它们不是教学法的发明，而是七十年来计算机体系层层沉淀后的“化石层”。

**变量 → 存储程序计算机（1945）。**“给内存里的一个位置起名字，之后按名字读写”——这套机制的理论基础是冯·诺依曼1945年起草的《EDVAC报告书的第一份草案》（First Draft of a Report on the EDVAC），它确立了**存储程序架构**：程序和数据一样放在同一个内存里，都是数字，都可以被读写。你写的每一行代码在运行时就是内存里的一串数字，“变量”就是你对这块内存起的消费者友好别名。更早的先声是 Ada Lovelace：她在1843年为一篇分析机译文所写的注释（著名的Note G）里，已经出现了用符号代表可复用数值的操作——被广泛视为历史上第一个发表的计算机程序雏形。变量这个“最简单”的概念，其实是“代码即数据”这个计算机最深刻思想的用户界面。

**条件与循环 → 结构化程序设计定理（1966）与“GOTO有害论”（1968）。**为什么四块积木是“这四块”而不是别的组合？答案藏在一条真实的数学定理里：意大利学者 Corrado Böhm 与 Giuseppe Jacopini 在1966年发表于《ACM通讯》（CACM）的论文证明——**只要有了顺序、选择、循环三种结构，就足以表达任何可计算的计算流程**，其他控制结构都可以由这三者组合出来。两年后的1968年，Dijkstra 在同一本期刊上发表了他那封改变整个行业的著名信件《GOTO语句有害论》（Go To Statement Considered Harmful，据文献记载这个标题是时任编辑 Niklaus Wirth 建议的），主张程序员应该放弃不受约束的跳转，只用结构化的三种控制流写代码。此后以 Dijkstra、Hoare、Dahl 1972年合著的《Structured Programming》为标志，“结构化程序设计”成为行业共识。所以十分钟视频里的 if 和 loop 不是随手挑选的教学案例，而是**一条定理加一场行业运动，共同筛出来的最小完备集**。

**函数 → 第一条子程序（1949）。**“把代码打包复用”也不是现代发明。1949年，英国剑桥大学的 EDSAC 计算机（世界上第一台实用存储程序计算机之一）上，David Wheeler 发明了“闭合子程序”（closed subroutine）及其返回机制——工程史上干脆把这种跳转返回技术称为“Wheeler跳转”（Wheeler jump）。Wheeler 还参与写下了世界上第一本编程教材（Wilkes、Wheeler、Gill，1951）。你在任何语言里写的每一次函数调用，背后都是这条1949年的血脉。而“复用代码是美德”被提炼成著名的**DRY原则**（Don't Repeat Yourself），则要等到 Hunt 与 Thomas 1999年的《程序员修炼之道》（The Pragmatic Programmer）才完成大众化——从机器指令到工程哲学，函数这一块积木跨越了半个世纪。

**“四块积木够用” → 图灵完备。**视频收尾那句“所有软件都是这些积木的组合”，学理依据是可计算性理论：一个具备条件分支和（理论上无限的）存储的模型，就是图灵完备的——它能计算一切可计算的问题（Church–Turing论题的框架下）。换句话说，“十分钟讲完编程的全部原语”这句话**在数学上居然是成立的**。这就是十分钟格式敢于存在的底气，也是它最迷人的悖论：**学科的公理层确实小到十分钟讲得完，学科的工程层却大到七十年都没讲完。**

## 五、批判性审查：哪些站得住，哪些是体量决定的幻觉

**站得住的部分**。其一，“四大构建块”作为编程核心的最小集，有Böhm–Jacopini定理与图灵完备性双重背书，没有任何夸张成分。其二，十分钟讲清这些概念的**定义与演示**，在认知上是可行的——概念本身没有多深，深的是使用它们的能力。其三，这条视频的标题用词相当克制："basics"（基础）而非“零基础到就业”，没有透支承诺。

**被叙事放大的部分与真正的陷阱**。其一，**“认出积木”与“搭出房子”之间隔着一条峡谷**。软件工程教育研究里有硬数据：McCracken等人2001年发起的跨国多校联合评估发现，相当比例修完第一门编程课的大学生，**仍然写不出一个几十行的小程序**；Qian与Lehman 2017年发表在《ACM计算机教育汇刊》的综述系统记录了新手的高频误区——比如把变量当成“贴标签的物体”而非“存值的容器”、以为循环体内的修改会自动同步到别处。看懂一个for循环的演示，和能预判它每一轮的内存状态，是两种能力，前者的流畅感会伪装成后者——教育心理学称之为流畅性错觉。其二，十分钟格式**结构性缺失三样东西**：状态推理（程序跑起来后，脑子里跟踪所有变量取值的能力）、调试（从报错和异常行为反推原因——职业程序员一半以上的真实工作时间）、以及抽象设计（决定该造哪些函数、边界画在哪——这是工程与脚本的分界线）。这三样没有一样能通过“看”获得，只能通过“写砸了再修”获得。其三，还有一个很少被点破的**平台经济学**：据YouTube公开的推荐机制说明，完播率是推荐系统的重要信号，十分钟天然是完播率友好型时长——这意味着“十分钟学会X”这个格式的流行，部分是推荐算法的选择压力，而非学习效果的最优解。它擅长被看完，不保证被学会。

**一句话裁决**：这条视频类型的正确用途是**建立概念坐标系**——让你之后读任何教程时知道“变量”“循环”这些词在说什么；它的错误用途是**当作学会编程的证据**。地图可以十分钟画完，领土不行。

## 六、认知提升与实用启示

1. **用“四积木自检法”读任何代码。**不管你之后学什么语言，拿到一段看不懂的代码，固定问四个问题：哪些是变量（状态存在哪）？哪里有分支（什么条件决定走哪条路）？哪里是循环（什么东西在重复、何时停止）？哪些逻辑被封装成了函数（边界在哪）？这四个问题就是Böhm–Jacopini定理的读代码版——任何流程必然能被拆解到这三种结构上。它让你在面对几万行的陌生项目时，永远有一个可以下手的解剖顺序。

2. **执行“24小时提取协议”。**看完这条（或任何一条）十分钟视频后的24小时内，关掉所有资料，手写一个四块积木都用上的小程序——经典测试题是FizzBuzz：打印1到100，逢3的倍数换"Fizz"、逢5的倍数换"Buzz"、兼为倍数换"FizzBuzz"。这道题2007年由开发者Imran Ghory提出后经Coding Horror博客传播而闻名，专门用来检验“自称会编程的人是否真的能把四块积木组装起来”。如果24小时内你写不出它，说明视频留给你的只是熟悉感，不是能力——这个测试的痛苦程度，就是真实学习发生的程度（心理学上所谓“必要难度”，Bjork学派的核心主张）。

3. **看第二遍时切换“机器视角”。**十分钟视频看第二遍的价值远大于第一遍，但前提是换一种看法：每行代码暂停一次，问“此刻内存里发生了什么——变量现在存的是什么值，程序计数器指向哪里”。这就是编程教育研究者du Boulay（1986）提出的“心智机器”（notional machine）训练：新手与高手的分水岭，不在于语法量，而在于脑中是否运行着一台与真实机器同构的模拟器。同一个十分钟，第一遍给人看，第二遍给机器看。

## 视频知识结构图

```mermaid
flowchart TD
    A["开场: 代码=意图与机器的翻译层<br/>消灭模糊性"] --> B["四大构建块"]
    B --> B1["变量<br/>给内存起名字"]
    B --> B2["条件分支<br/>程序学会选择"]
    B --> B3["循环<br/>重复交给机器"]
    B --> B4["函数<br/>逻辑打包复用"]
    B1 --> C1["理论根: 冯·诺依曼存储程序架构 1945<br/>先声: Ada Lovelace 1843"]
    B2 --> C2["理论根: Böhm–Jacopini定理 1966<br/>Dijkstra 'GOTO有害论' 1968"]
    B3 --> C2
    B4 --> C3["理论根: Wheeler子程序 EDSAC 1949<br/>DRY原则 1999"]
    C1 --> D["图灵完备: 四块积木=全部原语<br/>公理层: 十分钟讲得完"]
    C2 --> D
    C3 --> D
    D --> E{"但: 工程层七十年讲不完"}
    E --> F["缺失三件套<br/>状态推理/调试/抽象设计"]
    F --> G["正确用法: 概念坐标系<br/>24小时内FizzBuzz提取检验"]
    E -.->|"错误用法: 把看完当学会"| H["流畅性错觉"]
    G -.->|"规避"| H
```

## 延伸阅读

1. [Python for Beginners - Learn Coding with Python in 1 Hour | Programming with Mosh](https://www.youtube.com/watch?v=kqtD5dpn9C8) — 2514万播放的入门长课，“试吃装之后的正餐”首选：同一条知识骨架在真实语言里的完整展开。
2. [How To Learn Programming for BEGINNERS! (2022/2023) | CroatCode](https://www.youtube.com/watch?v=bJzb-RuUcMU) — 810万播放的路径类入门视频，与本文的“概念视角”互补，回答“学会之后往哪走”。

## 参考来源

1. [basics of CODING in 10 minutes | The StudyTube Project](https://www.youtube.com/watch?v=I-k-iTUMQAY) — 本文解读的核心视频；标题、频道与播放量（1,973,981次）来自素材管道2026-09-03抓取快照
2. [Python for Beginners - Learn Coding with Python in 1 Hour | Programming with Mosh](https://www.youtube.com/watch?v=kqtD5dpn9C8) — 同期编程分类播放量头部的入门长课（25,149,091次，同一快照）
3. [How To Learn Programming for BEGINNERS! (2022/2023) | CroatCode](https://www.youtube.com/watch?v=bJzb-RuUcMU) — 编程入门品类路径类高热度视频（8,101,373次，同一快照）
4. [Coding for Kids Explained | CodeMonkey](https://www.youtube.com/watch?v=g1J4181W8ss) — 同品类概念科普参照样本（1,059,947次，同一快照）
> 本文由「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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
