把 AI 接进工作流 — 工具、环境与第一个结对脚本¶
这一章讲三件事: 为什么「与 AI 结对」是当下开发者的职业分水岭; 怎样把 Python、VS Code 和 ChatGPT 配成一套顺手的工作流; 以及——最重要的是——用一个小脚本走完「与 AI 结对」的完整动作。 读完你会拿到全书反复使用的那套动作:描述目标 → 生成 → 读懂 → 追问 → 扩展 → 运行。 不需要任何基础,遇到的生词都在当场解释。
1. 这一章讲什么¶
全书后面九章都建立在这一章的两个论断上。
论断一:AI 替代的不是开发者,而是开发者的杂活。 调试循环、语法错误、重复的代码审查—— 这些占据开发者大量时间、却几乎不进绩效回顾的工作,正是 AI 擅长接手的部分。 书里原话:AI「不能体会用户的挫败感、业务的紧迫、解决不可能的问题的创作快感」,所以它替代的 是「developer drudgery」(开发者的苦差事)7。人被解放出来做的事,是不能自动化的那部分: 思考、设计、创新。
论断二:你的竞争力从「写得快」上移到了「讲得清」。 当人人都能得到可用的代码, 优势就转移到「能批判性思考、能有效地与机器沟通」的人身上8。 这本书教的全部内容,本质上就是「怎么讲清楚」。
这一章在全书的链条里是地基:环境配好、工具选对、第一个脚本跑通, 后面九章才有一个稳定的落脚点。
2. 顶层全景:这一章的机制怎么转¶
心态:AI 接手杂活 → 你的价值 = 讲清楚问题
│
▼
工具:ChatGPT(会教的) + Copilot(会写的) + 编辑器插件(随手的)
│
▼
环境:Python(引擎) → VS Code(工作台) → venv(项目沙盒) → 核心库(武器库)
│
▼
动作:描述目标 → AI 生成 → 逐行读懂 → 追问为什么 → 小步扩展 → 本地运行
图说:上两层是准备,最下面那行是全书的「主循环」,之后每一章都在重复它。
3. 核心原理¶
3.1 先看现象:开发者的一天是怎么被重写的¶
书里用了一个时间对照来描述变化:从前写代码像「在黑暗里解谜」——几小时试错、 开着十几个标签页、把 Stack Overflow 的帖子当宝藏收藏;有了 AI 助手之后, 你在编辑器里敲下一行注释,整个函数就出现在眼前,格式正确、常常比你第一稿更高效9。
变化的不只是速度,还有注意力的去向:开发者从「翻文档查语法」里省出的时间, 被花到了「设计更好的逻辑」上。书里把角色的转变概括成三行,值得原文记住——
| 从 | 到 |
|---|---|
| 打字员(Typist) | 建筑师(Architect):不再以写了多少行代码定义自己,而是以多聪明地指挥 AI 生成和打磨代码 |
| 调试员(Debugger) | 决策者(Decision-Maker):AI 处理低级错误,人专注系统设计、扩展性与产品愿景 |
| 执行者(Executor) | 教育者(Educator):未来的编码一半是写代码,一半是「训练」你的 AI 搭档——用更好的提示、示例和上下文10 |
这三行就是全书的课程表。 第二章练「读」(建筑师的基本功), 第三章练「指挥」(怎么下指令),第四到九章练「决策与验证」, 第十章练「教育者」的收口(评审、测试、文档)。
3.2 工具箱:会写的、会教的、随手的¶
这一节对比了三类 AI 工具。书的立场很明确:这本书的主力是 ChatGPT, 因为「Copilot 写,ChatGPT 教」11。
GitHub Copilot:每行代码的结对伙伴。 它直接嵌在 VS Code、JetBrains 这类编辑器里, 你打字时实时给建议,不用切换窗口。它学自几十亿行开源(作者把代码公开出来、允许他人查看使用)代码, 能认出上下文、函数名、文档字符串, 预测下一个逻辑块——书里把它比作「一个资深工程师在你耳边说:下一步我会这么写」12。 它的局限也来自它的长处: 它只管写,不解释。它能给你一个好答案,但不告诉你推理过程—— 「像抄了一个好答案,推理很有用,但你只得到了表层」13。所以 scaffolding(搭骨架)用它极好, 学习用它不够。
ChatGPT:控制台里的 AI 导师。 它不被编辑器绑定:能解释递归(一个函数在执行中又调用自己)、 能陪你权衡算法(解决问题的固定步骤)取舍、 能逐行调错,全部用自然对话完成。书里举例:你问「为什么我的 Flask 应用重启时会挂住?」, 它不仅修,还会拆开「为什么」14。这本书选择 ChatGPT 做学习实验室: 不只要它产出能跑的代码,更要它当「思考伙伴」,陪你质疑和挑战你自己的方案。
其他助手:生态在扩大。 书里点了三个名,各自侧重的方向不同15:
| 工具 | 侧重 |
|---|---|
| Amazon CodeWhisperer | 与 AWS 云服务紧绑,生成贴合 AWS 最佳实践的云原生代码 |
| Tabnine | 本地学习:在你的私有仓库上训练,给出的补全贴合你自己的代码风格 |
| Replit Ghostwriter | 面向学生和独立开发者,直接在浏览器里同时补全前端和后端片段 |
一个先于一切的安全提醒(书里专门给了一块,后面章节会反复出现): 把公司或项目的代码粘进任何公网 AI 工具之前,先跟经理或团队负责人确认——这些工具会从你提供的数据里学习, 专有、敏感的代码可能因此被暴露或影响公开模型16。
3.3 环境:Python、VS Code、虚拟环境与核心库¶
这一节是全书唯一的「装机章」。书的原则是:版本永远装最新稳定版, 别因为某个教程用了旧号就把环境钉死——AI 框架(LangChain、FastAPI 之类)演进极快, 旧版本很快会踩坑17。
第一步:装 Python(引擎)。 从官网下载对应操作系统的安装包;安装时勾上
「Add Python to PATH」——书里强调这一个勾选框能省掉日后无数头疼18。
装完在终端敲 python --version,看到类似 Python 3.12.x 就成功了。
(书成书于 2026 年,当时最新已是 3.14 附近;你读到这里时数字会更大——重要的是「最新稳定版」这个原则,不是某个具体号。)
第二步:装 VS Code(工作台)。 装完先做三件事:用 View → Terminal 打开内置终端
(Python 就在编辑器里跑,不用切窗口);在扩展面板装微软官方的「Python」扩展
(提供语法高亮、调试、静态检查);可选地装 Pylance(更聪明的类型检查与自动补全)19。
第三步:配 AI 友好的扩展。 书里列了四类:GitHub Copilot(可选但强)、 ChatGPT 类扩展(下一节展开)、Python Docstring Generator(一键生成文档字符串, 是「让代码对 AI 可读」的好习惯)、成对的括号着色类扩展(调试嵌套时救命)20。
第四步:建虚拟环境(项目的私人沙盒)。 这是全书第一个真正重要的概念,值得单讲。
虚拟环境(virtual environment,命令行里的名字是 venv)是一个只属于某一个项目的、
自包含的 Python 安装。 它有自己的 Python 解释器、自己装的库列表,跟系统里其他项目互不影响21。
为什么要它?反例最说明问题:新手常犯的错是全局安装所有库,结果版本冲突——
一个项目要某库的新版,另一个要旧版,互相把对方搞坏,调试变成噩梦。
有了沙盒,每个项目的依赖各自独立,项目在任意机器上行为一致。
建与激活各一条命令:
建: python -m venv venv → 在项目里生成一个叫 venv 的文件夹,装下独立的一套 Python
激活(macOS/Linux): source venv/bin/activate
激活(Windows): venv\Scripts\activate
标志: 激活成功后,终端提示符开头会出现 (venv)
激活的含义:VS Code 会自动改用 venv 文件夹里的解释器;你用 pip 装的库只进这个项目;
运行 Python 文件时用的也是这套隔离环境,而不是系统全局的 Python22。
激活之后再 pip install requests,requests 就只属于当前项目。
第五步:装核心库。 书的基线三件套:pip install requests pandas matplotlib——
requests 负责调 API,pandas 负责数据处理,matplotlib 负责画图23。缺什么后面按章再加。
3.4 把 ChatGPT 接进工作流:桌面版管战略,插件管执行¶
两种接法,书里的结论是先都配好,按任务的体量分流24。
接法一:桌面应用 / 网页版(官方界面)。 功能最全:聊天历史、文件上传、看图、 代码高亮、按套餐的项目记忆。优势是零配置、免费额度慷慨;劣势是跟编辑器之间要手动复制粘贴, 网络差时慢。书给的使用场景是重活:贴报错堆栈查 Bug、扔文档片段让它总结并给用例、 喂一个函数让它写单元测试、贴旧代码块要求更干净的版本25。 一个实用技巧:在侧边栏钉一个名叫「Code Assistant」的固定会话,所有调试、重构、架构讨论都在这一个线程里, 模型会随对话累积上下文26。
接法二:编辑器插件(以 VS Code 为例)。 走你自己的 OpenAI API key(一串授权码, 让插件能直接调用模型),装好后可以选中一段代码右键「用 ChatGPT 解释」、行内生成文档字符串和测试、 侧边栏对话。优势是无缝、快;劣势是按量计费(key 里的余额会消耗)、 部分非官方插件有隐私风险(可能记录你的代码)、缺少网页版的一些高级功能27。 API key 的纪律书里列了五条,逐条照做: 不告诉任何人;不提交到 GitHub 或任何公开仓库; 不贴进代码文件、截图或博文;只填在插件的安全设置栏里;怀疑泄露立刻吊销重发28。
怎么分工?书里给了一个对照,可以直接抄:
| 桌面/网页版 | 编辑器插件 | |
|---|---|---|
| 角色 | 战略模式:长对话、完整项目、教学时刻 | 执行模式:写码时的快问、生成文档、语法提示 |
| 典型任务 | 调试、架构规划、数据集分析 | 解释选中片段、顺手重构、补 docstring |
| 计费 | 免费额度较慷慨 | 按 API 调用计费,高频使用余额烧得快 |
预算紧时的混合打法:快问用插件,重活切桌面版29。
3.5 主线例子:第一个结对脚本,从一句话到一个小工具¶
这是本章的主线例子,后面每一节都会回到它。 任务小得不能再小,但七个步骤一个不缺: 把某个文件夹里的文件名中的空格改成下划线。
步骤 1:先说目标,再碰键盘。 书里的原则是先有意图(intent):不造「Hello, World」, 造一个每天能省几分钟的真东西30。于是第一条提示只有一句话:
"Write a Python script that renames all files in a folder, replacing spaces with underscores." (写一个 Python 脚本,把文件夹里所有文件名中的空格替换成下划线。)
步骤 2:读懂 AI 递回来的代码。 书里给出的版本用了 pathlib 库(把文件路径当对象处理,
而不是当字符串拼)。逐行走一遍——这一段是本章的核心,请慢慢读:
from pathlib import Path
folder_path = Path("test_folder") # ① 指向项目目录下名为 test_folder 的文件夹
for file in folder_path.iterdir(): # ② 逐个取出这个文件夹里的条目
if file.is_file() and " " in file.name: # ③ 只处理「是文件」且「名字含空格」的
new_name = file.name.replace(" ", "_") # ④ 新名字 = 旧名字里的空格换成下划线
file.rename(file.with_name(new_name)) # ⑤ 执行改名
print("Files renamed successfully!")
跑之前要做的三件事:建一个叫 test_folder 的文件夹、放在项目目录里、丢几个带空格名字的文件进去。
运行后你会看到文件被改名——没有查 Google,没有翻 Stack Overflow,用大白话描述需求就拿到了能跑的代码31。
书里把这称为结对编程的第一个「啊哈时刻」。
为什么书里特意用 pathlib 而不是更常见的 os? 因为对象化的路径有四个好处:
路径是对象而不是裸字符串,不用手动拼接(os.path.join 省了),
代码更干净,而且在 Windows、macOS、Linux 上行为一致32。这个取舍后面第五章还会遇到。
步骤 3:不复制粘贴就走人,而是追问。 这是全书第一次示范「生成之后必追问」。 对着同一段代码继续问33:
- "Can you explain what os.listdir does?"(os.listdir 是干什么的?)
- "How can I make sure it only renames .txt files?"(怎么保证只改 .txt 文件?)
- "What if the folder does not exist?"(文件夹不存在会怎样?)
每问一次,理解就深一层——AI 在这里是导师,不是搜索引擎。
步骤 4:小步扩展,提出第二个需求。 "Modify the script so that it logs all renamed files into a rename_log.txt file." (改成把所有改过的文件名记进 rename_log.txt。)
AI 给出的改动里多了一段:
log_file = Path("rename_log.txt")
with log_file.open("w") as log: # 打开(不存在就新建)日志文件
for file in folder_path.iterdir():
if file.is_file() and " " in file.name:
new_name = file.name.replace(" ", "_")
new_file = file.with_name(new_name)
file.rename(new_file)
log.write(f"{file.name} → {new_name}\n") # 每改一个,记一行
注意这里的结构变化:写日志的代码包在 with open(...) as log: 里面——
with 是 Python 的「自动关门」写法,离开这个块时文件会被自动关闭。
原先只有五步的脚本,现在多了一个「副作用输出」。改动依然是对话式的:你描述目标,它给实现,
你决定要不要34。
步骤 5:本地运行。 存成 rename_files.py,终端里 python rename_files.py,
立刻看到文件被改名、日志文件出现35。
步骤 6:像开发者一样继续问。 跑通了不停手,问资深工程师才会问的问题: 两个文件改成同名会怎样?能不能跨平台(Windows + macOS)?怎么把它变成命令行工具? 这一问一答,就是从「AI 用户」变成「AI 开发者」的分界线36。
3.6 心态:协作者,不是拐杖¶
这一节是第一章的落点,也是全书的态度基调。书把新手分成两类人37:
| 依赖者(The Dependents) | 协作者(The Collaborators) |
|---|---|
| 用 AI 替自己完成全部思考 | 把 AI 当放大自己推理的伙伴 |
| 复制、粘贴、运行,从不问为什么 | 拿到方案后追问:换个做法呢?这个方案的代价是什么?人类工程师会怎么重构? |
书里明说:长期来看,只有第二类人活下来38。因为 AI 的危险不在于取代程序员, 而在于诱使程序员停止像程序员那样思考——「复制了不问你就不学,质疑并返工了就进化得更快」39。 你的价值越来越落在「问题定义的清晰度」上,而不是「语法记忆的广度」上40。
书里还给了一句更短的座右铭,放在本章结尾:「AI 能写代码,但只有你能理解问题」—— 掌握的开始就在这句话上43。
3.7 主线例子再走一步:章末测验「Hello, AI World!」¶
原书本章的评估(Assessment)是一道完整的结对小练习,正好把上面七步再练一遍。
要求:让 ChatGPT 生成一个打印 Hello, AI World! 的脚本,并用一个变量(比如 user_name = "Sam")
改动消息;然后再让 AI 把它重构成更灵活的形式(比如用函数)44。
第一版(直译需求):
这一版里唯一可能陌生的记号是 f"...":f-string,格式化字符串——花括号里的 user_name
会在运行时替换成它的值,所以输出是 Hello, AI World! Welcome, Sam.。
(这个记号是 Python 的通用知识,书里直接用而没有解释;名字记一下,出门到处是。)
第二版(要求重构后的样子):
变化只有两处,但正是第三章「分解」的预演:把「打招呼」这件事从「打印」里拆出来,
变成一个函数(function,一段起了名字、可以反复调用的代码)。
函数 greet_user 接受一个输入 name,返回拼好的句子;最后一行调用它并打印返回值。
现在想换一个名字,只改最后一行的实参;想改问候语,只改函数体里的一行——
职责分开了,这就是全书后面反复讲的「模块化」的最小形态。
把这两版并排贴给 ChatGPT,问:「第二版比第一版灵活在哪?还有什么可以再拆?」 ——本章的七步循环,到这里就跑完第二圈了。
3.8 装环境时最常见的三个卡壳(我们的补充)¶
书里对装环境只给了「正确路径」,没列「走不通时怎么办」。下面三处是按书中流程最容易卡住的点, 补救办法属于通用知识(补充,不在书里),写在这里省得你停下来搜:
| 症状 | 原因 | 补救 |
|---|---|---|
终端里 python 找不到,或打开的是应用商店 |
安装时没勾「Add Python to PATH」 | 重装并勾选;或改用 py(Windows)/python3(macOS/Linux)试一次 |
pip install 装的库,运行时说找不到 |
终端没激活 venv,装到全局去了 | 看提示符有没有 (venv);没有就重新激活再装 |
| 插件里粘了 key 却不工作 | key 多空格/已吊销,或插件要的是别的服务商的 key | 去 OpenAI 后台重新生成一把,贴进设置栏,绝不要写进代码 |
3.9 安装清单的完整走查(书中 Step 1–5 展开)¶
书里把环境准备拆成五步,每步都给了「预期你会看到什么」。把五步连成一条流水线, 每一步的失败信号也标出来:
Step 1:装 Python。 去官网下载对应系统的安装包;安装向导里勾上「Add Python to PATH」
(书里原话:这一个勾选框省掉日后无数头疼48)。装完打开终端敲 python --version,
看到 Python 3.12.x 一类输出即成功。看不到?九成是 PATH 没勾,重装补上。
(书成书于 2026 年,示例输出是当时的版本号;你装时永远取最新稳定版——
记住「最新稳定版」这个原则,别记数字49。)
Step 2:装 VS Code。 装完先开内置终端(View → Terminal),这是之后所有命令的家;
再在扩展面板装微软官方「Python」扩展(语法高亮、调试、lint 三合一),可选装 Pylance
(更聪明的类型检查)50。
Step 3:配 AI 友好的扩展。 四类:GitHub Copilot(可选但强,Ctrl/Cmd + Enter 触发建议);
ChatGPT 类扩展(下一节展开);Python Docstring Generator(一键生成结构化 docstring——
「让代码对 AI 可读」的好习惯);括号对着色类(调试嵌套函数和 HTML 模板时救命)51。
Step 4:建虚拟环境。 命令与激活见 §3.3。成功信号只有一个:终端提示符出现 (venv)。
没有它,后面装的库全进全局,一个项目崩所有项目崩。
Step 5:装核心库。 pip install requests pandas matplotlib 三件套,分别管
API 调用、数据处理、画图52。装完这条流水线合龙:「引擎(Step 1)+ 工作台(Step 2–3)
+ 沙盒(Step 4)+ 武器库(Step 5)」齐了。
3.10 桌面版与插件:书中两张「优缺点对照」的全文¶
§3.4 给了分工结论,这里把书里对两种接法各自的优缺点清单补全—— 当你纠结「这条该在哪头发」时,照表查。
桌面/网页版的优点:零配置开箱即用;能用全部能力(代码、看图、文件分析); 支持文件上传(日志、代码片段);免费额度慷慨53。 缺点:没有 IDE 集成(浏览器/应用与编辑器之间来回切);网慢时更慢; 全靠手动复制粘贴54。
插件的优点:无缝集成,不用切标签;写码时随手问、随手解释;加速代码评审与文档; 可定制性高(取决于扩展)55。 缺点:吃你的 API 额度,高频用余额烧得快;部分非官方扩展有隐私风险(可能记录你的代码); 缺少数网页版高级功能(文件上传、看图)56。
一个没在正文里、但值得带走的细节:书里提醒,插件装好后,你可以选中一段代码、右键、 选「Explain with ChatGPT」——这个「选中 → 右键 → 解释」的三连,是把第二章 「读法」嵌进日常工作流的最短路径57。
3.11 生态地图:书里没展开、但你会撞见的名字¶
第一章点了三个「其他助手」,书里各给了一句话。这里把书中那句话之外的背景补齐 (补充,不在书里,来自通用知识),免得你在别人的讨论里认不出:
| 工具 | 书中定位 | 补充背景 |
|---|---|---|
| Amazon CodeWhisperer | 与 AWS 紧绑,生成云原生代码 | 后更名 Amazon Q Developer;AWS 越深越值 |
| Tabnine | 本地学习你的私有仓库 | 卖点是隐私:模型可完全本地跑 |
| Replit Ghostwriter | 浏览器里全栈补全 | 面向学生与 solo 开发者,随 Replit 平台演化 |
这张表的读法不是「记住四个工具」,而是一个判据:选助手先看它把数据放哪、 在哪跑、跟谁集成——这三点决定它适不适合你的项目,而不是功能清单的长短。
3.12 第一个脚本的变体练习(书末 Assessment 的完整解法)¶
§3.7 走了 Assessment 的两版。书里其实给了完整参考实现,把第二版再展开一步—— 它展示了结对循环的第三圈:从「函数」到「可复用」:
# 第一版:直译需求
user_name = "Sam"
print(f"Hello, AI World! Welcome, {user_name}.")
# 第二版:AI 建议的重构——把问候逻辑抽成函数
def greet_user(name):
return f"Hello, AI World! Welcome, {name}."
print(greet_user("Sam"))
第三圈(自己继续问):「怎么让它问候多个人?」——AI 会给出循环或列表推导的版本;
再问:「怎么从命令行参数读名字?」——进入 sys.argv 或 argparse 的地界。
每一圈都是同一动作的重复:描述 → 生成 → 读懂 → 追问。
书末的 Points to Remember 把这一章的要点收了尾:结对不是替代而是放大;
桌面版额度比插件慷慨;AI 是结对伙伴不是一键方案;真本事在理解与沟通问题;
永远问生成代码背后的为什么6。
3.13 从自动补全到结对:书里那个「乘以一千」的对照¶
书里用一段回忆给 AI 结对编程定了坐标:回想 autocomplete(自动补全)第一次进 IDE 的时候, 感觉像魔法。现在把那个魔法乘一千——AI 辅助开发不只补全你这一行, 它从你的代码库、文档、甚至你以前修过的 Bug 里取上下文,预测你的下一步; 不只补全,还建议「为什么这样写、怎样写得更好」2。
工作起点也跟着变了:以前从空白屏幕开始,现在从一段对话开始—— 你描述问题,AI 搭逻辑骨架,你用判断力打磨它。书里给的时间账是: 省掉数小时的样板代码(boilerplate,那些每项目都要重写一遍的千篇一律的代码) 和无数遍 Stack Overflow 搜索3。
这段回忆里藏着一个判断标准,值得你拿去衡量任何新工具: 它是在「加速你打字」,还是在「改变你想问题的方式」?前者是补全,后者是结对—— 这本书教你的是后者。
3.14 「雇佣市场已经在投票」:本章最现实的一段¶
「聪明的开发者的优势」(The Smart Developer's Advantage)一节,书里的语气难得地现实: 当一些开发者担心 AI 抢饭碗时,最有前瞻性的那些人已经在靠它找到更好的工作4。
论据三条:雇主现在看重的是「能与 AI 工具有效协作」的开发者,而不是与之竞争的; 会提示 ChatGPT、会验证输出、会优化 AI 工作流,已经是现代软件工程面试的核心技能; 结对编码不是编程的终结,而是它的演化——活下来的是适应、实验、 学会按 AI 的节奏写代码的人5。
判断(我们的,不是书里的): 这段是全书最该被「当建议读、不当事实读」的一节。 「面试已经在考提示能力」在 2026 年是趋势而非定规——不同公司、不同岗位的权重差别极大; 但它指的方向可信:「验证 AI 输出」正在变成和「写代码」同等基础的技能。 如果错,会错在: 如果评估能力被工具进一步自动化(自动测试、自动评审普及), 「验证」本身也可能下沉为默认环境的一部分,那时真正稀缺的会再上一层—— 对「验什么、为什么验」的判断。但这不改变「本章技能值得练」的结论。
3.15 装好环境之后:结对一天的完整时间线(演示用例)¶
以下时间线是为演示编的,不是书里的实录;把它当「第一章技能的排演表」用: 每个场景对应本章一节。
| 时刻 | 场景 | 用到的本章技能 |
|---|---|---|
| 09:00 | 打开 VS Code,终端已带 (venv),项目沙盒就绪 |
§3.3 虚拟环境 |
| 09:15 | 新任务:给报表脚本加日志。先用桌面版 ChatGPT 讨论方案 | §3.4 战略模式 |
| 09:40 | 写码时一段旧函数看不懂,选中→右键→Explain | §3.4 插件执行模式 + 第二章读法 |
| 10:20 | 生成代码跑通,逐行读完,追问两个「为什么」 | §3.5 步骤 3 |
| 11:00 | 扩展:让脚本同时输出 CSV。对话式迭代两轮 | §3.5 步骤 4 |
| 14:00 | 遇到报错,贴堆栈+代码+预期,问 AI | 第四章预演 |
| 17:00 | git commit,收工 |
第十章预演 |
这一天的每一格,都是同一主循环的一次重复。 章末那句口号再贴一遍: 「别让 AI 替你思考,让它和你一起思考。」20
3.16 虚拟环境:另一个常见疑问的正面回答¶
新手常问:「我自己的电脑上只有我一个项目,为什么还要隔离?」书里给的答案不在第一章, 但逻辑能从这里接上:隔离的价值不是「防别人」,是「防未来的你」—— 半年后你装了个新库,版本跟旧项目冲突;没有 venv,你排查「为什么昨天还能跑」 要花的时间,远超当初建环境的一分钟(补充,不在书里,来自通用知识)。
书里真正强调的三点是这三条45:
- 自己的解释器:venv 里有一套独立的 Python,版本可以与全局不同;
- 自己的库列表:pip 装进 venv 的包,只在这个 venv 里可见;
- 零外溢:对系统其他项目没有任何影响。
激活的本质是让「当前终端会话」指向 venv 里的那套——
(venv) 标记是唯一的地面真相:看到它,你装的、跑的都属于这个项目;
看不到,你的一切操作都落在全局环境上。这一条比任何概念解释都实用。
3.17 两条反直觉的提醒(书里散落、值得聚拢)¶
第一,「最新稳定版」是对工具的态度,不是对知识的浪费。 书里专门叮嘱:不要因为教程里写了某个版本号就把环境钉死在那—— AI 框架(OpenAI 库、LangChain、FastAPI)演进极快,旧版本很快就踩坑46。 配套的推论:看到任何教程(包括本拆解)里的具体版本号、界面截图、价格, 默认它可能已经过时,以你动手那一刻的官方页面为准。
第二,「AI 写得快」不是省掉学习的理由,恰恰是加深学习的契机。 书里在第一章就立了这个反直觉:AI 结对让你花更多时间思考、更少时间搜索—— 省下来的时间应该投进「理解」,而不是「更多复制粘贴」47。 判断你用法对不对的现成指标只有一个:这段对话结束后, 你能不能用大白话把代码讲给别人听?能,本章合格;不能,回到 §3.5 的步骤 3。
3.18 把第一章折成一页:出门卡¶
本章信息量大,收一张「出门卡」——只记这八条,其余都在章节里:
① AI 接手杂活,你的价值在「讲清楚」
② Copilot 管写 / ChatGPT 管教;快问插件,重活桌面版
③ 环境 = 最新稳定版 Python + VS Code + 每项目一个 venv(找 (venv) 标记)
④ key 当密码:不进代码、不进仓库、只填设置栏
⑤ 主循环:描述 → 生成 → 读懂 → 追问 → 扩展 → 运行
⑥ 生成后必问:做了什么?为什么?边界怎样?
⑦ 像开发者一样问:同名冲突?跨平台?怎么变成命令行工具?
⑧ 别让 AI 替你思考,让它和你一起思考
这张卡也是后面九章的索引:②对应第 2 章,⑤⑥对应第 3 章, ⑦的「同名冲突」是第 4 章的调试,「命令行工具」是第 9 章的应用化—— 每一章都能挂回这八条上。
3.19 本章的两个第一¶
收尾前把第一章的两个「第一次」点明,它们是全书结构的伏笔:
第一次出现「生成之后必验证」的动作——§3.5 步骤 3 的三连问(做了什么/为什么/边界)。 它在第四章长成「先写失败测试再问 AI」,在第九章长成「curl 先测、浏览器殿后」, 在第十章收成「AI 当评审不当作者」。整条验证链的源头就在本章这三问。
第一次出现「把 AI 当队友 briefing」的比喻——§3.4 谈 Context 时那句 「把 AI 当一个中途加入项目的队友,让他碰键盘之前先 briefing」58。 这个比喻在第三章长成 CCG 的 Context 部件,在第九章长成「设计先于编码」。 记住这两个第一次,后面每一章你都会看到它们换壳重现。
3.20 第一个脚本的七个扩展方向(书里的 Step 6 展开)¶
§3.5 步骤 6 留了一个开放问题:「像开发者一样继续问」。书里给了三个具体问法 (同名冲突?跨平台?命令行工具?),这里把改名脚本可能的演进方向全摆出来, 每个方向都是后面某一章的入口:
| 扩展方向 | 会引入的新概念 | 对应章节 |
|---|---|---|
| 重名冲突时怎么办(加序号/跳过/报错) | 边界与分支 | 第 4 章 |
| 只处理特定扩展名(.txt/.jpg) | 参数与过滤 | 第 5 章 |
| 操作前预览、操作后可撤销 | 安全与事务 | 第 4 章(加固) |
| 递归处理子文件夹 | 递归遍历 | 第 5 章 |
| 定时自动跑 | 调度 | 第 5 章 |
| 加图形界面或网页界面 | 应用化 | 第 9 章 |
| 打包成别人可装的工具 | 分发 | 第 10 章(方向) |
这张表是全书的隐藏地图:一个十行的小脚本,沿着七个方向各自长一步, 正好走完这本书的全部十章。书里选了其中几条主线(自动化、Web 应用),其余的留作练习—— 你现在就可以挑一个,用本章的结对循环开始问59。
3.21 本章的两个「为什么」收尾¶
为什么书里把「协作心态」放在第一章,而不是最后一章? 因为心态决定用法:同样一个工具,依赖者拿它抄答案,协作者拿它练判断—— 后面九章的所有技巧(分解、CCG、验证、重构),只有站在协作者一侧才生效。 第一章那句「coding with a collaborator, not a crutch」60是全书所有方法的前置条件。
为什么第一个项目选「改名脚本」这么小的东西? 因为结对循环的七个步骤(目标→生成→读懂→追问→扩展→运行→开发者式提问) 在十行代码里就能走全;项目一大,任何一步出问题你分不清是方法错了还是项目难了。 书里给的教学顺序是「先小后大」:第一章改名脚本、第五章文件自动化、第六章游戏、 第九章 Web 应用——每一步都在更大的项目上重走同一循环。换项目不换方法,这是全书的教学法。
3.22 章节的暗线:七个步骤其实是三个动作¶
回看 §3.5 的七步,可以折叠成三个更基本的动作——所有后续章节都是它们的重排:
说(Step 1:描述目标 / Step 4:扩展请求) ←→ 第三章的 CCG 把它形式化
读(Step 2:读懂 / Step 3:追问) ←→ 第二章的读法把它展开
跑(Step 5:本地运行 / Step 6:开发者式提问) ←→ 第四、九章的验证把它制度化
说、读、跑——结对编程的全部动作就这三个,区别只在每个场景里它们的顺序和权重。 调试时「跑」先行(先复现再说),写新功能时「说」先行(先 CCG 再生成), 读遗留代码时「读」先行。第一章把三个动作第一次摆齐,后面九章各拉一个到聚光灯下。
3.23 章节的暗线:环境即态度¶
最后回看全章,会发现一条没被点破的暗线:书里对环境配置的讲究程度,本身就是「协作者心态」的一部分。
对比两种心态下的环境:依赖者的心态是「能跑就行」——全局装库、版本随手、
key 贴进代码;协作者的心态是「这台机器是我和 AI 共同的工位」——
沙盒隔离让实验可逆,版本最新让 AI 的建议与文档对得上,key 入环境变量让协作安全。
书用一整节的篇幅写 (venv) 激活标志、写 PATH 勾选框、写 key 五条纪律61,
教的不只是操作,是把工作台收拾到「随时可以开始结对」的状态。
这条暗线解释了为什么第一章是全书最长章之一(原书 3.4 万字符): 地基章节的长度,就是作者对「心态先于技巧」的押注。
3.24 给第一个脚本的最后一次追问¶
§3.5 的六步走完,本章还剩最后一个动作——把那次结对存档:
把改名脚本的最终版、你问过的三条追问、AI 给过的最佳解释,一起存成一个文件
(比如 notes/rename-lessons.md),提交到你的练习仓库。这是第十章「Git 是记忆」
的第一次实操,也是「可积累的判断力」的第一块砖。三个月后回看,
你会看见自己的提问方式已经变了——而那次变化,就是从第一章这七步开始的62。
3.25 第一章的隐藏作业:把「两个声音」分出来¶
读本章时有一个训练值得现在做:书里有两种声音——关于工具的说法、关于心态的说法—— 把它们分抄到两栏。
工具栏:Copilot 管写、ChatGPT 管教、桌面版管战略、插件管执行、venv 隔离、key 五条。 心态栏:AI 替代的是杂活、价值在讲清楚、生成后必追问、依赖者 vs 协作者、别让它替你思考。
为什么分两栏?因为工具的半衰期以月计,心态的半衰期以年计。 三个月后插件换了、价格变了,工具栏大半作废;三年后看心态栏,仍然成立。 这也是本拆解在总纲里给这本书的价值排序(① 工作法 > ② 项目模板 > ③ 具体步骤)的 微观版本——每章读完都做一次两栏分离,你就不怕工具细节过时。63
3.26 桌面版 ChatGPT 的四个日常用法(书里没进 TOC 的一小节)¶
正文在「桌面版 vs 插件」之间还藏了一张用法清单,原书把它列在桌面版的介绍里、却没写进本章目录。 它回答的问题很实际:不装任何插件,ChatGPT 桌面版一天里能帮你干什么?1
| 用法 | 书里给的做法 | 示例提示 |
|---|---|---|
| 调错 | 把报错轨迹整个贴进去,描述现象,要它列可能原因 | (贴 traceback)「为什么我得到这个错?」 |
| 快速学 API | 把官方文档片段丢给它,要它总结并给用法例子 | "Summarize this for me and give usage examples." |
| 生成单元测试 | 把一个函数喂进去,要它写测试 | "Write Jest tests for this."(Jest 是 JavaScript 测试框架——Python 里对应 pytest,提示照搬时把名字换掉) |
| 重构 | 贴一段旧代码,要一个更干净的版本 | "ask for a cleaner version" |
这张表值得收进拆解,有两个原因。第一,它是「无插件底线」:哪天插件挂了、 没续费、或者换了台电脑,这四件事用纯网页版照样能做——它们是全书工作法的最低可用子集。 第二,注意四个用法里没有一个是「从零写个大程序」——全是围绕一段已有的东西 (报错、文档、函数、旧代码)做加工。这正好预演了全书的节奏:AI 的第一价值不是替你起炉灶, 是给你手里的材料当加工器。(「从零写个工具」要到第三章的分解框架成熟了才登场。)
判断(我们的,不是书里的): 这张表其实是全书最诚实的一张「能力清单」—— 它比封面上的「全栈开发」低调得多,也更准:这四个用法都不需要你会分解问题, 输入是现成的(报错、文档、函数),所以它们适合当第一天就上手的入口; 而第三章之后的一切(分解、CCG、验证循环),本质是在回答「输入不现成时怎么办」。 如果错,会错在: 如果读者把这张表当完整能力边界,就会低估后续章节框架的必要性—— 这四件事能做,是因为材料已经齐了;真项目里缺的恰恰是把材料凑齐的那道工序。 反过来,如果插件生态哪天完全接管了编辑器(材料自动进上下文),这张表会缩得更短, 但「输入越现成、AI 越可靠」这条规律不会变。
附注:四条里「生成单元测试」那条,原书示例写的是 JavaScript 的 Jest 框架—— 这处「串台」本身就有点教育意义:提示的骨架是语言无关的, 把 Jest 换成 pytest、把函数换成你的函数,句式原样照搬即可用。 这也是全书反复示范的一种迁移:学句式,不学字面。
4. 作者的判断与证据¶
有书内证据的判断:
- 「AI 替代苦差事而非开发者」——这是作者的核心论断,证据是现象描述(调试循环、语法错误、重复审查占满时间)加一句反问(AI 不能体会用户挫败感)7。属于有洞察的论断,不是实验结论。
- 「Copilot 强在写、ChatGPT 强在教」——工具能力对比,来自作者的使用经验,无定量数据11。
- 「桌面版免费额度比插件慷慨」——2026 年当时的定价事实,会随时间变41。
作者的推测(书里明说是推测):
5. 边界与局限¶
- 所有界面与价格细节都会过时:安装截图、按钮位置、免费额度,以你动手那一刻的官方页面为准。
- 书里残留编辑痕迹:本章中段混进了一句写给作者自己的写作指令(「Perfect — here is how we can write Subsection 3…」)42——它提醒我们这本书成稿较赶,引具体句子时留意上下文。
- 虚拟环境只讲了 venv:conda、uv 等替代品没提;团队项目里更完整的依赖管理(requirements 锁定)要到很后面才零星出现。
- 「API key 五条纪律」是底线而非全部:企业环境下还有密钥托管、审计等更严的做法,书里未涉及。
6. 可带走的¶
本章主线例子,一行写完:「把 test_folder 里文件名中的空格改成下划线」→ 一句英文提示 →
pathlib 六行脚本(遍历→判断是文件且含空格→替换→rename)→ 追问三个为什么 → 加 rename_log.txt 日志 →
python rename_files.py 跑通 → 继续问边界情况。
- AI 接手的是杂活,你的价值在「把问题讲清楚」——这是全书的地基论断;
- Copilot 管写、ChatGPT 管教:搭骨架用编辑器里的 Copilot,学原理用对话式的 ChatGPT;
- 装环境只有一条死规矩:最新稳定版 + 安装时勾「Add Python to PATH」;
- 每个项目一个虚拟环境,激活的标志是终端出现
(venv);库只装进项目,不污染全局; - ChatGPT 两路接入按体量分流:桌面版管战略(长对话、调试、架构),插件管执行(解释选中片段、快问);
- API key 当密码管:不进代码、不进仓库、不截图,只填插件设置栏;
- 结对主循环:描述目标 → 生成 → 逐行读懂 → 追问 → 小步扩展 → 本地运行——之后九章全是它的重复;
- 生成之后必追问:「这段做了什么、为什么这么做、边界会怎样」三问问完,代码才算你的;
- 依赖者复制粘贴,协作者质疑返工——书里明说只有第二类人长期 thrive;
- 总纪律:「别让 AI 替你思考,让它和你一起思考。」20
7. 原文地图¶
| 主题 | 原书章 | 原文位置 |
|---|---|---|
| AI 替代苦差事、三个角色转变 | Getting Started with AI-Powered Development | text/13-ch01-1-getting-started-with-ai-powered-development.txt:135(搜「developer drudgery」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:154(搜「From Typist to Architect」) |
| Copilot 会写不解释 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:218(搜「Built on OpenAI」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:227(搜「surface-level」) |
| ChatGPT 会教、本书主力 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:233(搜「Copilot writes, ChatGPT teaches」) |
| 公司代码先请示 | 同上 | text/14-ch02-2-understanding-python-code-with-ai.txt:392(搜「confirm with your manager」) |
| 装最新版、PATH 勾选框 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:334(搜「Add Python to PATH」) |
| venv 是什么、激活标志 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:453(搜「self-contained」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:509(搜「(venv)」) |
| 桌面版 vs 插件、战略/执行分工 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:835(搜「Strategy Mode」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:822(搜「on a budget」) |
| API key 五条纪律 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:739(搜「like a password」) |
| 改名脚本六步 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:872(搜「replacing spaces」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:905(搜「break it down」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:974(搜「rename_log.txt」) |
| pathlib 的四个好处 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:1051(搜「Paths are treated as objects」) |
| 依赖者与协作者 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:1142(搜「The Dependents」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:1191(搜「think with you」) |
| 章末测验:Hello, AI World! 与函数重构 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:1244(搜「Hello, AI World」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:1262(搜「greet_user」) |
| 桌面版优缺点清单 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:679(搜「Pros」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:696(搜「Cons」) |
| 插件优缺点清单 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:792(搜「Seamless integration」) · text/13-ch01-1-getting-started-with-ai-powered-development.txt:809(搜「Requires your API key」) |
| 选中右键解释三连 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:775(搜「Explain with ChatGPT」) |
| 安装五步的预期输出 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:338(搜「python –version」) |
| 自动补全×一千 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:123(搜「multiplied by a thousand」) |
| 雇主在投票 | 同上 | text/13-ch01-1-getting-started-with-ai-powered-development.txt:167(搜「landing better ones」) |
-
出处:「Getting Started with AI-Powered Development」第 666–675 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:666,搜「Paste your error trace」;:669,搜「Summarize this for me」;:672,搜「Write Jest tests」;:675,搜「cleaner version」)。四个用法与示例提示均逐字出自原书该清单。 ↩ -
出处:「Getting Started with AI-Powered Development」第 123 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:123,搜「multiplied by a thousand」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 126 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:126,搜「saves hours」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 167 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:167,搜「landing better ones」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 17–19 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:170,搜「core skill」至:173,搜「evolution」)。 ↩ -
出处:「Getting Started with AI-Powered Development」Points to Remember(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1213,搜「augmenting」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 135 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:135,搜「developer drudgery」)。原文:「What AI is replacing is not developers, it is developer drudgery.」 ↩↩ -
出处:「Getting Started with AI-Powered Development」第 141 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:141,搜「irreplaceable」)。原文:「when everyone can code, the advantage shifts to those who can think critically, and communicate with machines effectively.」 ↩↩ -
出处:「Getting Started with AI-Powered Development」第 188 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:188,搜「solving puzzles in the dark」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 18–19 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:154,搜「From Typist to Architect」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 233 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:233,搜「While Copilot writes」)。原文:「While Copilot writes, ChatGPT teaches.」 ↩↩ -
出处:「Getting Started with AI-Powered Development」第 218 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:218,搜「Built on OpenAI」)。Copilot 基于 OpenAI 的 Codex 模型,直接集成进 VS Code 与 JetBrains。 ↩ -
出处:「Getting Started with AI-Powered Development」第 227 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:227,搜「surface-level」)。原文:「It is like copying a good answer, without understanding that the reasoning is useful, but at the surface-level.」 ↩ -
出处:「Getting Started with AI-Powered Development」第 239 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:239,搜「Flask app hang」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 254 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:254,搜「CodeWhisperer」)。 ↩ -
出处:「Understanding Python Code with AI」第 392 段(
text/14-ch02-2-understanding-python-code-with-ai.txt:392,搜「confirm with your manager」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 315 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:315,搜「outdated version」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 334 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:334,搜「Add Python to PATH」)。原文:「this single checkbox saves countless headaches later」。 ↩ -
出处:「Getting Started with AI-Powered Development」第 386 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:386,搜「Extensions」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1191 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1191,搜「think with you」)。 ↩↩↩ -
出处:「Getting Started with AI-Powered Development」第 453 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:453,搜「self-contained」)。原文:「A virtual environment is a self-contained Python installation that belongs to only one project.」 ↩ -
出处:「Getting Started with AI-Powered Development」第 532 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:532,搜「locks」)。原文:「VS Code now 'locks' your project to this virtual environment.」 ↩ -
出处:「Getting Started with AI-Powered Development」第 556 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:556,搜「requests pandas matplotlib」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 602 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:602,搜「two main approaches」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 666 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:666,搜「Code Debugging」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 710 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:710,搜「Code Assistant」)。 ↩↩ -
出处:「Getting Started with AI-Powered Development」第 809 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:809,搜「deducted from your OpenAI balance」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 739 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:739,搜「like a password」)及其后五条。 ↩ -
出处:「Getting Started with AI-Powered Development」第 822 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:822,搜「on a budget」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 863 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:863,搜「start with intent」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 944 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:944,搜「You did not Google it」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1051 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1051,搜「Paths are treated as objects」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 956 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:956,搜「follow-up questions」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1076 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1076,搜「in seconds」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1092 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1092,搜「save it as rename_files.py」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1129 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1129,搜「AI developer」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1142 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1142,搜「The Dependents」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1149 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1149,搜「Only one of these groups」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1167 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1167,搜「stop thinking like one」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1155 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1155,搜「clarity of problem definition」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1222 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1222,搜「more generous usage」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 593 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:593,搜「here is how we can write」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 294 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:294,搜「only you can understand」)。原文:「AI can write the code, but only you can understand the problem.」 ↩ -
出处:「Getting Started with AI-Powered Development」第 1244 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1244,搜「Hello, AI World」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 59–60 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:453,搜「self-contained」;:457,搜「Its own Python interpreter」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 315 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:315,搜「outdated version」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 947 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:947,搜「more time thinking」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 334 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:334,搜「countless headaches」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 315 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:315,搜「latest stable release」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 389 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:389,搜「Pylance」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 436 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:436,搜「Bracket Pair Colorizer」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 556 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:556,搜「requests pandas matplotlib」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 692 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:692,搜「Generous free plan」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 706 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:706,搜「manual copy-paste」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 801 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:801,搜「Highly customizable」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 818 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:818,搜「file uploads or GPT-4V」)。 ↩ -
出处:「Getting Started with AI-Powered Development」第 775 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:775,搜「Explain with ChatGPT」)。 ↩ -
出处:「Problem Decomposition and Prompt Engineering」第 543 段(
text/15-ch03-3-problem-decomposition-and-prompt-engineering.txt:543,搜「midstream」)。原文:「treat the AI as a teammate joining your project midstream; fill them in before they touch the keyboard.」 ↩ -
出处:「Getting Started with AI-Powered Development」第 1116 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1116,搜「same new name」至:1122,搜「command-line tool」)。七方向表的后四行是我们的推演,挂在此出处下。 ↩ -
出处:「Getting Started with AI-Powered Development」第 1132 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:1132,搜「not a crutch」)。原文:「Coding with a Collaborator, not a Crutch.」 ↩ -
出处:「Getting Started with AI-Powered Development」第 59–61 段(
text/13-ch01-1-getting-started-with-ai-powered-development.txt:509,搜「(venv)」)、第 334 段(text/13-ch01-1-getting-started-with-ai-powered-development.txt:334,搜「Add Python to PATH」)、第 739 段(text/13-ch01-1-getting-started-with-ai-powered-development.txt:739,搜「like a password」)。 ↩ -
(我们的存档建议;「Git 是记忆」的原文见
text/22-ch10-10-best-practices-and-optimization.txt:513。) ↩ -
(我们的两栏训练;工具与心态两类的原文分别见
text/13-ch01-1-getting-started-with-ai-powered-development.txt:218与:135。) ↩