计算机科学基础
把这页当作检查清单,而不是课程大纲。真正持久的核心其实很小:
- 表示:位、数值、文本、指令和数据格式。
- 执行:表达式、状态、控制流、函数、递归和抽象。
- 资源:时间、内存、存储、网络及其相互权衡。
- 组合:接口、模块、进程、协议和分层。
- 可靠性:不变量、测试、失效模式、可观测性和安全边界。
接下来可以看 数据结构、算法 和 编程语言。如果想系统入门,Berkeley CS 61A 是个不错的参考。
把检查清单变成阅读路径
这是一张编程基础地图,不是对硬件、操作系统、网络和安全的完整论述。可以从零开始,但最好选一门语言实际运行例子,不要同时学习所有层次。
不变量是每个合法状态、或每一步循环结束后都必须保持的性质。测试检查选定的执行情况;基于不变量的论证则解释为什么所有满足假设的执行都正确。两者都需要先说明程序应该做什么。 还需要论证算法会逐步接近停止条件;只有不变量,不能证明算法一定会结束。