程序是一份需要准确执行的步骤
人听到“整理一下清单”会猜你的意思,计算机则需要具体规则:读取哪些任务,按什么顺序,遇到什么情况怎么处理。源代码就是人用编程语言表达这些规则的文本。
AI 可以帮你写代码,但它也可能误解你省略的信息。把目标拆成输入、处理和输出,是一种不依赖语言的编程思考方式。
输入:一组商品价格。处理:找出不超过预算的商品。输出:一个符合条件的列表。
带走这一点 · 先说清输入和期待的结果,再讨论用什么代码实现。
为什么有很多编程语言
JavaScript 常用于网页交互,Python 常用于脚本和数据处理,SQL 用于表达数据库查询。它们的生态和运行环境不同,也有许多重叠用途。
选语言不是比较谁最高级,而是看产物在哪里运行、现有项目用了什么、有哪些现成工具。对已有项目,让 AI 先读项目再决定如何修改,通常比随意换语言更省事。
如果需求是改变网页按钮的行为,首先要了解页面已有的前端代码,而不是立刻新建一套不相干的 Python 工程。
带走这一点 · 语言是实现选择,目标和运行环境应当先明确。
变量、条件与循环:名字、分支和重复
变量给数据一个可引用的名字,例如 budget 代表预算。条件决定走哪条分支,例如 price <= budget。循环把同一套处理应用到多个对象,例如逐个检查列表中的价格。
这三个零件常常一起出现:拿到每个商品的价格,比较预算,满足条件就收进结果。读不懂全部语法时,也可以先找“数据叫什么、在哪做判断、重复处理哪些东西”。
预算是 30,价格列表是 12、35、20。逐个判断“价格不大于预算”,得到 12 和 20。把预算改成 40,结果也会改变。
带走这一点 · 代码的行为可以用具体输入来推演,不必靠猜。
单步执行一段小程序
先猜结果,再让程序逐个比较价格。修改预算,看看变量如何影响条件和输出。
budget = 25 prices = [12, 35, 20, 48, 8] for each price in prices: if price <= budget: keep(price)
输出: []
这里执行固定的筛选算法,展示真实计算结果,不运行任意用户代码。
函数与数据结构:给处理命名,把信息组织起来
函数把一段处理封装成有名字的工具,可以接收输入并返回结果。数组是一组有顺序的数据;对象或字典把名称映射到值;树表达层级关系。
选择结构会影响后续操作。清单适合用数组装任务,每个任务再用对象记录 id、标题和完成状态。稳定的 id 能帮助程序知道你要修改哪一条。
任务可以表示为 { id: 7, title: '练习添加', done: false }。完成函数只需找到 id 为 7 的任务,修改 done,再更新界面。
带走这一点 · 让 AI 说明数据长什么样,往往比先解释每行语法更容易理解程序。
代码怎样才能跑起来
源代码需要合适的执行工具。编译会把代码转换成另一种形式;解释器和运行时负责执行代码。实际工具经常混合这些技术,不能简单理解成两种互不相容的语言类别。
终端是输入文字命令的界面。命令会在一个工作目录里执行,所以“在哪个文件夹运行”很重要。启动命令报错时,保留完整错误和执行位置,才能帮助定位。
在本项目的 web 文件夹运行 npm run dev,会按项目配置启动开发服务器。把相同命令放在没有这个项目配置的目录里,结果可能完全不同。
带走这一点 · 运行问题至少提供:系统、项目目录、命令和完整错误。
现代编程:组合现有工具,管理每次修改
库是别人写好的可复用功能,依赖是项目所需的这些库和工具。安装依赖使代码能找到它们;版本差异也可能改变行为,所以项目通常会记录依赖及其版本。
Git 可以记录修改历史,帮助比较和恢复版本。让 AI 一次完成一个可验证的小改动,保留可用版本,遇到问题时就有清楚的回退点。
想给清单加删除功能:先确认现有代码和依赖,保存当前版本,修改一处功能,再验证添加、完成等旧功能仍然正常。
带走这一点 · AI 写完不等于任务完成。运行、检查差异和验证结果仍然属于编程。
预算为 20,规则是“保留价格不大于预算的商品”。价格 12、35、20 中应该留下哪些?
先选一个答案,再看解释。
让 AI 给清单增加“完成”和“恢复未完成”,把按钮的行为说完整。
先自己想,再按需打开提示。越往后,描述越完整,验收也越明确。
带着本章的背景去问 AI。拓展是选学,不影响继续阅读。
用整理书包解释变量、条件、循环和函数,每次讲一个。
参考答案,可以改成你的版本
我正在从零学习计算机与 AI 编程。本章学过: 编程:认识变量、条件、循环、函数与数据结构;理解语言、运行环境和依赖的不同职责;把模糊想法改写成明确的动作和结果 用整理书包解释变量、条件、循环和函数,每次讲一个。 请先确认我的理解,一次解释一个小问题,用具体例子并说明比喻的局限。讲完问一道情境题,根据我的回答继续。区分事实、推测和不确定内容;推荐可操作的验证方式。如果涉及具体工具,先确认版本,不要编造功能和资料。
完成这一章
标记各节已读,完成原理实验和情境题后,即可记录本章完成。随时可以直接阅读下一章。
继续查阅原始资料
正文是入门解释;下面的官方资料供你继续核对和深入。
MDN · JavaScript Guide