Skip to content

计算机、编程与计算机科学

前提

至少会一点编程,不然先读这个:faq - learnprogramming

如果是“传统”计算机科学,大概有如下三支主干,九个方面:

  • 语言:人、机器的沟通
    • 编程语言
    • 网络
    • 编译原理
  • 计算机架构
    • 组成原理
    • 操作系统
    • 分布式系统
  • 数据与解决问题的方法
    • 数据管理与数据库
    • 算法与数据结构
    • 数学

近年来 AI 兴起,尤其是生成式 AI 大热。那是另一个话题了。详见AI学习

Reference

Teach Yourself Computer Science的大纲表很不错,译文如下:

科目为何要学?最佳书籍最佳视频
编程不要做一个“从未完全理解”递归这些概念的程序员。《计算机程序的构造和解释》Brian Harvey’s Berkeley CS 61A
计算机架构如果你没有一个坚实的计算机运作心智模型,其上所有高级概念将变得脆弱《深入理解计算机系统》Berkeley CS 61C
算法与数据结构如果你不懂得如何使用栈、队列、树、图等常见数据结构,遇到有难度的问题时,你将束手无策。《算法设计手册》Steven Skiena’s lectures
数学知识计算机科学基本上是由应用数学的一个分支“跑偏”而来,因此学习数学将带来竞争优势。《计算机科学中的数学》Tom Leighton’s MIT 6.042J
操作系统你所写的代码,基本上都由操作系统来运行,因此你应当了解它们是怎样交互的《操作系统导论》Berkeley CS 162
网络互联网已然势不可挡:理解其工作原理才能解锁全部潜力。《计算机网络:自顶向下方法》Stanford CS 144
数据库对于多数重要程序,数据是其核心,然而很少人理解数据库系统的工作原理。《Readings in Database Systems》 (暂无中译本)Joe Hellerstein’s Berkeley CS 186
编程语言与编译器若你懂得编程语言和编译器如何工作,你就能写出更好的代码,更轻松地学习新的编程语言。《Crafting Interpreters》Alex Aiken’s course on Lagunita
分布式系统如今,多数系统都是分布式的。《数据密集型应用系统设计》MIT 6.824

译文搬运于站长自己的notion

2023年初补充:算是“古典”计算机科学?