第四章 程序与编程
从软件回到代码,理解程序由什么组成、编程在解决什么问题,以及代码怎样变成正在运行的程序。
上一章里,我们看到软件不是一个图标,而是一组会被操作系统加载和管理的文件。那这些文件最初是怎么来的?谁告诉计算机要做什么?
答案会回到“程序”和“编程”。这一章不急着学习具体语法,只先建立一条从想法到运行结果的线:人提出目标,程序员写下代码,计算机在运行环境中执行它。
1. 程序是什么
程序是一组按顺序组织起来、可以被计算机执行的指令。 它把一个目标拆成计算机能够处理的步骤。
打开计算器、播放视频、保存文档、显示网页,这些动作背后都对应着程序。程序不一定有窗口,也不一定需要人直接点击;服务器上的网站服务、数据库服务和后台任务同样是程序。
软件是面向用户和功能的一组完整内容,程序则更强调“让计算机执行什么”。一个软件里可以包含多个程序、资源文件、配置和用户数据。
2. 编程是在做什么
编程就是把问题、规则和处理步骤写成计算机能够理解和执行的形式。
比如一个记账工具,不能只写“帮我算总支出”,还要把规则说清楚:读取哪些记录,怎样判断日期,如何相加,最后以什么方式显示结果。编程的核心不是敲键盘,而是把模糊目标变成明确步骤。
这也是编程和普通文字表达的区别:人可以根据上下文猜测意思,计算机需要更精确的结构、条件和顺序。
3. 编程语言是什么
计算机底层最终处理的是机器能够执行的指令,但人直接用这种形式编写程序非常困难。编程语言提供了一套更适合人阅读和组织的表达方式。
Python、JavaScript、Java、C++ 等都是编程语言。它们的写法、适用场景和运行方式不同,但都在做同一件事:让人能够描述数据、步骤、条件和关系,再由工具把这些描述交给计算机执行。
语言不是软件功能本身。同一个功能可以用不同语言实现,最后做成不同的软件或服务。
4. 代码怎样变成运行中的程序
写在文件里的代码还不是正在工作的程序。它需要经过相应的工具和运行环境,才能被计算机执行。
有些语言会先被编译成更接近机器的形式,有些语言会由解释器或运行时逐步执行。入门阶段先记住区别就够了:代码是人的表达,运行中的程序是系统正在执行的结果。
这也解释了为什么同一份代码换到另一台电脑上,不一定能直接运行。那台电脑可能缺少解释器、编译器、依赖包、配置或其他运行条件。
5. 程序、软件和服务怎么区分
| 概念 | 更关注什么 | 例子 |
|---|---|---|
| 代码 | 人写下的程序表达 | 一个 Python 文件、一组 JavaScript 文件 |
| 程序 | 可以执行的一组指令 | 图片查看器、计算脚本 |
| 软件 | 面向用户的完整功能集合 | 编辑器、浏览器、播放器 |
| 服务 | 持续运行并等待请求的程序 | 网站服务、数据库服务 |
这些词在实际交流中有时会互相替代,但它们关注的角度不同。理解这个区别,后面看到“启动服务”“安装依赖”“部署程序”时会更容易定位它们分别在说什么。
6. 编程和后面的学习怎样接上
网络章节会讲数据怎样在设备之间传递;浏览器章节会讲网页怎样被呈现;命令行章节会讲怎样直接启动程序、查看结果和管理环境;本地与远程章节会讲程序究竟在哪台计算机上运行。
它们其实都在继续追问同一个问题:代码写出来之后,谁来执行它,执行时需要什么,结果又交给谁?
这一章不要求你现在就选定一门语言。先知道程序、代码、运行环境和服务之间的关系,之后无论学习 Python、JavaScript,还是使用 AI 编程工具,都有一个可以落脚的框架。
本章小结
- 程序是一组可以被计算机执行的指令,软件通常是程序、资源、配置和数据的完整集合。
- 编程是把目标、规则和处理步骤写成精确的程序表达。
- 编程语言让人能够描述数据、步骤和关系,再由工具交给计算机执行。
- 代码不等于正在运行的程序;它还需要解释器、编译器、依赖和其他运行环境。
- 服务是持续运行、等待请求的程序,网站和数据库都可以通过服务向其他设备提供能力。
沿着这条路径继续
每一篇文章都是下一次理解的起点。