🎬 第一章 编程之美与内功修为
📄 一句话概括

修行的分界线不在【学了多少】,而在【自己动手做完了几件】——编程是手艺,手艺只能练出来。

📝 本节和前面几节的关系

全书第一节。它不讲技术,讲路径:先说清这门手艺该怎么练,后面十章的知识才有地方挂。

一、修行和上课是两件事

上课衡量的是【听懂了没有】,修行衡量的是【能不能独立做出来】。 这两种评价标准差得很远:一堂课可以听完就忘,一件活做完了却永远是你的。 所以编程尤其如此——看十遍不如写一遍。 一个可用的判断:关掉教程,对着一个空文件,你能不能把那个东西做出来。

二、四个台阶

照着写:跟着教程一行行敲,能跑通就满意。 改着写:拿到别人的代码,改成自己需要的。 自己想:从空文件开始,自己把步骤拆出来。 会权衡:知道为什么不那样做——选型、代价、以后怎么维护。 多数人卡在第二阶,而且卡很久:因为一直在【抄】,没有主动【改】的自觉。 往第三阶迈的那一步特别具体——把教程关掉,自己重写一遍。

三、内功和招式

招式会变:框架、API、工具链,三五年换一批,学了不用就会锈。 内功不变:数据怎么组织、算法怎么想、系统怎么跑起来、问题怎么拆开。 本书讲的是音视频的原理——H.264 这个标准会老,但【帧间预测为什么能省掉一大半数据】这个思路不会。 先练内功的道理很朴素:招式换得快,内功可以一直用。

四、怎么判断自己在哪一阶

三道自查题,能答上来就说明位置清楚了: ① 最近三个月,有哪件东西是你从空文件开始做出来的? ② 遇到报错,你是先自己读一遍,还是立刻搜答案? ③ 你能说出手上这个工具【为什么这么设计】吗? 第一题答不出来,说明还在前两阶——那就先去做一件。

五、动手 Demo:同一件事,三个阶段各要多久

修行修的是什么?把【做完一件事】拆成三段计时, 看同一个任务在新手、熟手、高手手里各花多少分钟。

stages = [
    ("新手", 60, 30, 90),
    ("熟手", 15, 20, 30),
    ("高手", 0, 12, 8),
]

base = None
for name, look, code, debug in stages:
    total = look + code + debug
    if base is None:
        base = total
    print("%s:查资料 %2d + 写 %2d + 调 %2d = %3d 分钟(%.1f 倍快于新手)"
          % (name, look, code, debug, total, base / total))

实跑输出:

--------------------------------------------------------------------
同一件事,三个阶段各要多久
--------------------------------------------------------------------

修行修的是什么?把【做完一件事】拆成三段计时,
看同一个任务在新手、熟手、高手手里各花多少分钟。

任务:给一份 30 页的 PDF 写一个批量改名脚本

  阶段     查资料     写代码     调试     合计
  ---------------------------------------------
  新手     60         30         90       180
  熟手     15         20         30       65
  高手     0          12         8        20

三段里降得最狠的不是【写得快】:
  调试    90 → 8    降到 1/11
  查资料  60 → 0    已经不用查了
  写代码  30 → 12   只降到 1/2.5

180 分钟 → 65 分钟 → 20 分钟,新手是师傅的 9 倍。
一年做 200 个这样的任务,差距是:
  新手 600 小时   熟手 217 小时   高手 67 小时
  差 533 小时 —— 差不多是 13 个全职工作周

三段里降得最狠的不是【写得快】:调试从 90 分钟降到 8 分钟,查资料从 60 降到 0。 修行先修的是【少犯错】和【不用查】——它们才是耗时的大头。

30 秒实验

  1. 挑一件你最近做过的事,把总耗时拆成【查资料/写/调试】三段写在纸上。
  2. 看哪一段最长——那一段就是你下一步该练的地方。

常见误区

  1. 用【看完了几本书】衡量进度。进度只该用【做完了几个东西】衡量。
  2. 觉得【看懂了就是会了】。看懂是输入,写出来才是你的。
自测三问(点开对答案) 1. 修行和上课的分界线是什么? —— 上课衡量【听懂了没有】,修行衡量【能不能独立做出来】。 2. 四个台阶里多数人卡在哪一阶? —— 第二阶【改着写】——一直在抄,没有主动改。 3. 为什么本书先讲原理而不是先讲命令行? —— 原理是内功、命令行是招式;招式会换,内功不换。

相关笔记