Skip to content

计算机与程序基础 ​

学习编程之前,先知道“代码是怎样从一行文字变成程序结果”的,会让后面的很多问题变得容易理解。这里不要求你记住复杂定义,而是先建立一张简单的知识地图。

从一行代码到运行结果 ​

你写的程序通常保存在源代码文件中,例如 .c、.py 或 .java 文件。源代码本身不是计算机直接执行的机器指令,它需要经过解释器或编译器转换,最终变成处理器可以执行的指令。

不同语言的处理方式并不完全相同:

  • Python 通常由解释器逐段读取并执行。
  • C、C++ 等语言一般要先编译成机器码或中间文件,再链接成可执行程序。
  • Java 会先编译成字节码,再由 Java 虚拟机运行。

无论使用哪种语言,最终都要经过“读取输入、处理数据、输出结果”这几个基本环节。遇到问题时,先确认程序当前处在哪个环节,往往比盲目修改代码更有效。

一台计算机在做什么 ​

可以先用一个很粗略的模型理解计算机:

  • 处理器负责执行指令和计算。
  • 内存负责临时保存正在运行的程序和数据。
  • 硬盘或固态硬盘负责长期保存文件。
  • 操作系统负责管理硬件、文件和正在运行的进程。
  • 网络负责在不同设备之间传递数据。

当你打开一个网页时,浏览器会发送请求,服务器处理请求并返回内容,浏览器再把内容渲染成页面。前后端开发、数据库和部署,都是围绕这条链路展开的。

程序为什么需要数据结构 ​

数据少的时候,几个变量就足够保存信息;数据变多后,就需要更合适的组织方式。列表适合保存有顺序的一组数据,映射适合通过键快速找到值,队列适合按先后顺序处理任务,树和图适合表达层级或连接关系。

初学阶段不需要一次性掌握所有数据结构。先知道它们分别解决什么问题,写代码时能判断“这里更适合列表还是映射”,就已经很有价值。

操作系统和命令行 ​

图形界面让操作更直观,但很多开发工具依然通过命令行工作。命令行并不是更高级的玩法,它只是把“进入目录、运行程序、查看文件”等操作变成可以记录和复用的文本。

掌握下面这些基础操作即可开始学习:

  • 查看当前所在目录。
  • 进入、创建和删除目录。
  • 查看文件内容。
  • 运行程序或脚本。
  • 查看命令执行结果和错误信息。

如果暂时不熟悉 Linux,可以先在 Windows 或 macOS 上使用终端,后续再通过 WSL、虚拟机或服务器环境补充 Linux 经验。

开发工具怎样配合 ​

编辑器负责编写代码,终端负责运行命令,Git 负责记录版本,浏览器或接口工具负责查看运行结果。它们不是四门独立课程,而是一套逐渐配合起来的工作流。

建议在第一个小项目里依次完成:创建文件、运行程序、修改代码、查看报错、再次运行。只要这条链路走通,你就已经具备继续学习大部分方向的基础。

算法练习入口 ​

如果希望用题目练习编程和算法,可以从下面这些平台开始。不同平台的定位不同,不需要同时注册全部:

  • 洛谷:算法题目和竞赛训练平台。
  • 力扣 LeetCode:数据结构、算法题库和在线编程练习。
  • PKU JudgeOnline:经典在线评测系统,包含大量传统算法题。
  • 牛客网:编程题库、面试经验、实习与招聘信息。
  • OI Wiki:竞赛算法和基础知识的开放整理站点。

练习时优先理解题目、寻找规律和复盘错误,不必一开始追求很大的题量。

Released under the MIT License.