Appearance
计算机与程序基础
学习编程之前,先知道“代码是怎样从一行文字变成程序结果”的,会让后面的很多问题变得容易理解。这里不要求你记住复杂定义,而是先建立一张简单的知识地图。
从一行代码到运行结果
你写的程序通常保存在源代码文件中,例如 .c、.py 或 .java 文件。源代码本身不是计算机直接执行的机器指令,它需要经过解释器或编译器转换,最终变成处理器可以执行的指令。
不同语言的处理方式并不完全相同:
- Python 通常由解释器逐段读取并执行。
- C、C++ 等语言一般要先编译成机器码或中间文件,再链接成可执行程序。
- Java 会先编译成字节码,再由 Java 虚拟机运行。
无论使用哪种语言,最终都要经过“读取输入、处理数据、输出结果”这几个基本环节。遇到问题时,先确认程序当前处在哪个环节,往往比盲目修改代码更有效。
一台计算机在做什么
可以先用一个很粗略的模型理解计算机:
- 处理器负责执行指令和计算。
- 内存负责临时保存正在运行的程序和数据。
- 硬盘或固态硬盘负责长期保存文件。
- 操作系统负责管理硬件、文件和正在运行的进程。
- 网络负责在不同设备之间传递数据。
当你打开一个网页时,浏览器会发送请求,服务器处理请求并返回内容,浏览器再把内容渲染成页面。前后端开发、数据库和部署,都是围绕这条链路展开的。
程序为什么需要数据结构
数据少的时候,几个变量就足够保存信息;数据变多后,就需要更合适的组织方式。列表适合保存有顺序的一组数据,映射适合通过键快速找到值,队列适合按先后顺序处理任务,树和图适合表达层级或连接关系。
初学阶段不需要一次性掌握所有数据结构。先知道它们分别解决什么问题,写代码时能判断“这里更适合列表还是映射”,就已经很有价值。
操作系统和命令行
图形界面让操作更直观,但很多开发工具依然通过命令行工作。命令行并不是更高级的玩法,它只是把“进入目录、运行程序、查看文件”等操作变成可以记录和复用的文本。
掌握下面这些基础操作即可开始学习:
- 查看当前所在目录。
- 进入、创建和删除目录。
- 查看文件内容。
- 运行程序或脚本。
- 查看命令执行结果和错误信息。
如果暂时不熟悉 Linux,可以先在 Windows 或 macOS 上使用终端,后续再通过 WSL、虚拟机或服务器环境补充 Linux 经验。
开发工具怎样配合
编辑器负责编写代码,终端负责运行命令,Git 负责记录版本,浏览器或接口工具负责查看运行结果。它们不是四门独立课程,而是一套逐渐配合起来的工作流。
建议在第一个小项目里依次完成:创建文件、运行程序、修改代码、查看报错、再次运行。只要这条链路走通,你就已经具备继续学习大部分方向的基础。
算法练习入口
如果希望用题目练习编程和算法,可以从下面这些平台开始。不同平台的定位不同,不需要同时注册全部:
- 洛谷:算法题目和竞赛训练平台。
- 力扣 LeetCode:数据结构、算法题库和在线编程练习。
- PKU JudgeOnline:经典在线评测系统,包含大量传统算法题。
- 牛客网:编程题库、面试经验、实习与招聘信息。
- OI Wiki:竞赛算法和基础知识的开放整理站点。
练习时优先理解题目、寻找规律和复盘错误,不必一开始追求很大的题量。
