⌨️ 第一章 编程的基础知识
📄 一句话概括

一个人一台键盘不是写代码的唯一姿势:结对(两人一机)、Mob(全组一机)、一对一(老带新)——看似效率减半,实则少返工、少藏雷,是把【经验】变成【团队资产】的方法。

📝 本节和前面几节的关系

1-5 讲了职业分工,本节讲同一批人【怎么坐在一起干活】。它来自敏捷开发的工程实践(1-8 的 XP 家族),也是你未来入职后最可能先撞上的团队文化冲击。

一、三种方法一张表

结对编程 Mob 编程(群智编程) 一对一编程
形态 两人一机 全组一机(3~8 人轮流) 老手带新人,一天到几天
角色分工 司机(握键盘写码)+领航员(看方向提问题) 司机+全体领航,定时换司机 老手演示+新人实操,角色常互换
适用 核心复杂逻辑、疑难 bug 关键架构决策、新人融入 入职培训、传帮带
副产品 代码评审当场完成 全组对系统认知同步 隐性知识(历史包袱、潜规则)传承

一句话记:结对是双保险,Mob 是全员对齐,一对一传手艺。

二、为什么【两个人干一个人的活】不亏

直觉算账:2 人 1 机=效率减半。实际账要算全:

它不适用于所有活:纯体力型、一个人十分钟的活,拉人结对纯属浪费。团队的成熟用法是:难活结对,杂活单干。

三、防坑段:远程时代的做法

教材写的是围着一台机器。2026 年的团队大量远程协作,做法随环境进化:

四、动手 Demo:和 AI 来一场五分钟结对

你一个人也能体验结对的角色分工——让 AI 当司机,你当领航员:

步骤: 1. 出题:【写一个 Python 函数,输入一批日期字符串(如 2026-09-27),返回其中最新的一个,处理格式错误】; 2. 让 AI 生成第一版; 3. 你以领航员身份只提问题不动手:【空列表进来怎么办?】【2026/9/7 和 2026-09-07 两种格式都认吗?】【用字符串比较日期对吗?】

看到什么算成功:至少问出一个让 AI 修改方案的问题(典型如【字符串比较在跨年日期上会翻车,应该先解析成日期对象】)。

读结果:整个过程中写码的是 AI,把关的是你——这就是结对里领航员的工作方式:不握键盘,但握着方向。这个手感,就是未来和真人结对的能力底座。

30 秒实验

回看你 C++ 或 Java 课里写得最痛苦的一次 bug,问一句:如果当时有人坐在旁边看,几分钟后会被提醒?

看到什么算成功:能定位出【写完十分钟后就注定要返工】的那一行。

读结果:结对的真正价值不在【有人陪着】,而在【错误在最小成本点被拦住】——你现在独自踩的每个坑,都是未来给新人做一对一编程时的教材。

常见误区

  1. 【结对=一个人干活一个人看】——看的人不是观众,是导航:负责盯整体逻辑、记问题清单、实时提问;分工明确才有价值。
  2. 【Mob 编程=人多的结对,效率更低】——Mob 适合【决策类】工作:八个人吵一小时达成一致,胜过八个人各写各的再返工两周。
  3. 【内向的人不适合结对】——结对的沟通是结构化的(说屏幕上的事),不是闲聊;很多不擅社交的工程师是极好的领航员。
  4. 【结对要全天绑在一起】——实务里常见节奏是【难段结对+独立段单干】,按任务性质切换,而不是全有或全无。
自测三问(点开对答案) 1. **结对编程的两个角色分别管什么?** 司机握键盘写代码;领航员盯整体方向、实时提问与纠偏——后者不出手,但出主意。 2. **结对的账为什么不是【效率减半】?** 把缺陷返工成本、知识单人化风险、走弯路成本都算进来,总账常比单人划算;且难活才结对。 3. **远程结对用什么替代【同一台机器】?** 屏幕共享+可移交的编辑权限(Live Share 一类);换司机=移交权限,其余规则不变。

相关笔记