English
Chapter 1 — Better to Run than Curse the Road
Start here if you are wondering whether this roadmap is for you. These questions handle the ordinary anxieties before study begins: what background is enough, how long the road may take, how to use AI without letting it replace your own thinking, and how to read the rest of the guide without treating it as a checklist.
- Can I learn computer science?
- What background knowledge do I need?
- How long does it take to study computer science seriously?
- What is this guide, and who is it for?
- What does computer science include?
- What is the relationship between programming and computer science?
- How long is the shelf life of computer science knowledge?
- Is learning computer science really difficult?
- How can I remember what I have learned?
- What are some common stereotypes, biases, and misunderstandings about computer science?
- Given how powerful AI has become, is learning computer science still worth it?
- Should I learn AI first, or traditional computer science first?
- Can I use AI tools while learning? Will using AI heavily prevent me from mastering the material?
You can read this History of Computing to gain the background understanding needed for further study.
Chapter 2 — Programming and Mathematical Foundations
Use this chapter to build the toolkit you will keep reusing. You do not need to become a mathematician first; aim to write small programs, read basic proofs, calculate with vectors and probability, and recognize common algorithms so later chapters have something to attach to.
| No. | Title | Type |
|---|---|---|
| 2.1 | Programming as Conceptual Practice | Base |
| 2.2 | Discrete Mathematics and the Foundations of Proof | Base |
| 2.3 | Linear Algebra | Base |
| 2.4 | Calculus and Mathematical Analysis | Base |
| 2.5 | Probability and Statistics | Base |
| 2.6 | Algorithms and Data Structures | Core |
Chapter 3 — Theoretical Computer Science
Come here when you start asking why programs work at all, what problems can be solved, and why some things stay hard no matter how fast computers get. Read it slowly; the goal is not to collect names, but to learn the style of thinking behind proofs, languages, and limits.
| No. | Title | Type |
|---|---|---|
| 3.1 | Logic in Computer Science | Base |
| 3.2 | Theory of Computation | Core |
| 3.3 | Complexity Theory | Core |
| 3.4 | Programming Language Theory and Formal Semantics | Core |
| 3.5 | Type Theory | Advanced |
| 3.6 | Formal Methods and Proof Assistants | Advanced |
| 3.7 | Category Theory in Computer Science | Advanced |
| 3.8 | Information Theory | Advanced |
Chapter 4 — Computer Systems
This chapter makes the computer less mysterious. It follows code down into hardware, operating systems, networks, storage, and online services, so problems like slowness, crashes, data loss, and security failures start to have causes you can reason about.
| No. | Title | Type |
|---|---|---|
| 4.1 | Computer Organization and Architecture | Base |
| 4.2 | Operating Systems | Core |
| 4.3 | Computer Networks | Core |
| 4.4 | Databases | Core |
| 4.5 | Security and Cryptography | Advanced |
| 4.6 | Distributed Systems | Advanced |
| 4.7 | Compilers and Language Runtimes | Advanced |
| 4.8 | Stream Processing and Event-Driven Architectures | Practice |
| 4.9 | Container Orchestration and Cloud-Native Infrastructure | Practice |
| 4.10 | Observability and Reliability Engineering | Practice |
| 4.11 | High-Performance Computing | Advanced |
Chapter 5 — Artificial Intelligence
This chapter gives you a map of AI without asking you to chase every new model. Start with how machines learn from data, then use deep learning and large language models as concrete examples; the later topics help you understand power, failure, and responsibility.
| No. | Title | Type |
|---|---|---|
| 5.1 | Classical AI and Symbolic Approaches | Base |
| 5.2 | Machine Learning Foundations | Base |
| 5.3 | Deep Learning | Core |
| 5.4 | Reinforcement Learning | Advanced |
| 5.5 | Large Language Models and Foundation Models | Applied |
| 5.6 | Interpretability and Mechanistic Interpretability | Advanced |
| 5.7 | AI Safety and Alignment | Advanced |
Chapter 6 — Applied Computer Science Domains
This chapter shows how computer science changes shape when it meets real domains. Graphics, interfaces, data, robotics, simulation, quantum computing, and web apps each reward different tradeoffs, so read these as possible directions rather than required steps.
| No. | Title | Type |
|---|---|---|
| 6.1 | Computer Graphics and Visual Computing | Applied |
| 6.2 | Human-Computer Interaction and Design | Applied |
| 6.3 | Data Engineering and Data Science | Applied |
| 6.4 | Robotics and Autonomous Systems | Applied |
| 6.5 | Scientific Computing and Simulation | Applied |
| 6.6 | Quantum Computing | Advanced |
| 6.7 | Web and Application Development | Applied |
Chapter 7 — Software Engineering
This chapter is about what happens after code leaves your own laptop. Software has to be understood, tested, changed, and shipped by teams while requirements, people, and systems keep moving; these topics explain how to keep it maintainable in that reality.
| No. | Title | Type |
|---|---|---|
| 7.1 | Software Architecture | Core |
| 7.2 | Software Testing and Quality Assurance | Practice |
| 7.3 | Software Process: Delivery, Iteration, and Coordination | Practice |
| 7.4 | DevOps, Operability, and Continuous Delivery | Practice |
| 7.5 | Technical Debt, Refactoring, and Software Economics | Practice |
| 7.6 | Engineering Management and Organizational Design | Practice |
Chapter 8 — Practitioner Skills
This chapter is about everyday working habits. They may look smaller than theory, but they decide whether you can learn from real code, use tools well, collaborate with other people, explain changes clearly, and keep moving when you get stuck.
| No. | Title | Type |
|---|---|---|
| 8.1 | Programming Languages as Practitioner Tools | Base |
| 8.2 | Development Environment and Tooling | Practice |
| 8.3 | Reading Code | Practice |
| 8.4 | Writing Code and Software Craftsmanship | Practice |
| 8.5 | Collaboration: Version Control and Code Review | Practice |
| 8.6 | Debugging as Methodological Discipline | Practice |
| 8.7 | Reading Technical Literature | Practice |
| 8.8 | Technical Writing | Practice |
| 8.9 | Career Trajectories and Professional Practice | Practice |
Chapter 9 — Interdisciplinary Connections
Use this final chapter to widen the view after you have some footing. It shows where computer science borrows ideas, creates new questions, and collides with human fields; treat it as a set of bridges, not another list of prerequisites.
Appendix — Career Field Guides and Reference
These appendix essays are career-field guides and reference materials rather than required roadmap chapters. Use them to compare directions, understand industry roles, connect core CS topics to concrete jobs, and stabilize terminology across the guide.
| No. | Field | Type |
|---|---|---|
| A.1 | Web and Product Applications | Field |
| A.2 | Mobile and Cross-Platform Development | Field |
| A.3 | Data Analysis and Business Intelligence | Field |
| A.4 | Data Engineering and Platforms | Field |
| A.5 | AI Application Engineering | Field |
| A.6 | Machine Learning, Recommendation, Search, and Advertising | Field |
| A.7 | Large Language Models and Natural Language Processing | Field |
| A.8 | Computer Vision and Perception | Field |
| A.9 | DevOps, Cloud, and Site Reliability Engineering | Field |
| A.10 | Network Systems and Protocols | Field |
| A.11 | Databases and Storage Systems | Field |
| A.12 | Systems and Performance Programming | Field |
| A.13 | Embedded, IoT, and Edge Systems | Field |
| A.14 | Cybersecurity and Application Security | Field |
| A.15 | Game Development and Interactive Media | Field |
| A.16 | Computer Graphics and Rendering | Field |
| A.17 | Robotics and Autonomous Systems | Field |
| A.18 | Programming Languages and Developer Tools | Field |
| A.19 | Terminology Glossary | Reference |
中文
第一章 —— 与其感慨路难行,不如马上出发
如果你还在犹豫该不该开始,先读这一章。这里回答的不是技术细节,而是学习前最常见的顾虑:背景够不够、要花多久、这份指南怎么用、AI 能不能帮忙,以及怎样把后面的章节当作路线图而不是压力清单。
- 我能学会计算机科学吗?
- 我需要什么背景知识?
- 认真学习计算机科学需要多久?
- 这份指南是什么,适合谁?
- 计算机科学都包含哪些内容?
- 编程和计算机科学是什么关系?
- 计算机科学的知识保质期有多久?
- 学习计算机科学真的很难吗?
- 怎样才能记住所学内容?
- 针对计算机科学的常见刻板偏见、误解有哪些?
- 既然 AI 已经这么强,学习计算机科学还值得吗?
- 我应该先学 AI,还是先学传统计算机科学?
- 学习时可以用 AI 工具吗?大量使用 AI 是否会妨碍掌握知识?
为了给进一步的学习提供理解,你可以阅读这份“计算机发展史”。
第二章 —— 编程与数学基础
这一章是在准备以后会反复用到的工具。你不需要先变成数学家;目标是能写小程序、看懂基本证明、会用向量和概率思考问题,并能认出常见算法,这样后面的系统、AI 和理论内容才有落点。
| 序号 | 标题 | 定位 |
|---|---|---|
| 2.1 | 作为概念实践的编程 | 基础 |
| 2.2 | 离散数学与证明基础 | 基础 |
| 2.3 | 线性代数 | 基础 |
| 2.4 | 微积分与数学分析 | 基础 |
| 2.5 | 概率与统计 | 基础 |
| 2.6 | 算法与数据结构 | 核心 |
第三章 —— 理论计算机科学
当你开始问“程序为什么能工作”“哪些问题根本算不出来”“为什么有些问题再快的机器也很难”时,就进入这一章。它适合慢慢读,重点不是记术语,而是学会用证明、语言和边界来思考计算。
| 序号 | 标题 | 定位 |
|---|---|---|
| 3.1 | 计算机科学中的逻辑 | 基础 |
| 3.2 | 计算理论 | 核心 |
| 3.3 | 复杂性理论 | 核心 |
| 3.4 | 程序语言理论与形式语义 | 核心 |
| 3.5 | 类型论 | 进阶 |
| 3.6 | 形式化方法与证明助手 | 进阶 |
| 3.7 | 计算机科学中的范畴论 | 进阶 |
| 3.8 | 信息论 | 进阶 |
第四章 —— 计算机系统
这一章会把“电脑怎么运行”变得不那么神秘。它把代码一路带到硬件、操作系统、网络、存储和线上服务,让卡顿、崩溃、数据丢失和安全问题不再只是现象,而是可以分析的原因。
| 序号 | 标题 | 定位 |
|---|---|---|
| 4.1 | 计算机组成与体系结构 | 基础 |
| 4.2 | 操作系统 | 核心 |
| 4.3 | 计算机网络 | 核心 |
| 4.4 | 数据库 | 核心 |
| 4.5 | 安全与密码学 | 进阶 |
| 4.6 | 分布式系统 | 进阶 |
| 4.7 | 编译器与语言运行时 | 进阶 |
| 4.8 | 流处理与事件驱动架构 | 实践 |
| 4.9 | 容器编排与云原生基础设施 | 实践 |
| 4.10 | 可观测性与可靠性工程 | 实践 |
| 4.11 | 高性能计算 | 进阶 |
第五章 —— 人工智能
这一章给 AI 一个清晰地图,而不是追逐每一个新模型。先理解机器怎样从数据中学习,再把深度学习和大语言模型当作具体例子;后面的主题帮助你理解 AI 的能力、失败方式和责任问题。
| 序号 | 标题 | 定位 |
|---|---|---|
| 5.1 | 经典 AI 与符号方法 | 基础 |
| 5.2 | 机器学习基础 | 基础 |
| 5.3 | 深度学习 | 核心 |
| 5.4 | 强化学习 | 进阶 |
| 5.5 | 大语言模型与基础模型 | 应用 |
| 5.6 | 可解释性与机制可解释性 | 进阶 |
| 5.7 | AI 安全与对齐 | 进阶 |
第六章 —— 应用计算机科学领域
这一章展示计算机科学进入具体领域后会变成什么样。图形、交互、数据、机器人、仿真、量子计算和 Web 应用都有不同取舍,所以更适合作为未来方向来读,不必一开始全都学完。
| 序号 | 标题 | 定位 |
|---|---|---|
| 6.1 | 计算机图形学与视觉计算 | 应用 |
| 6.2 | 人机交互与设计 | 应用 |
| 6.3 | 数据工程与数据科学 | 应用 |
| 6.4 | 机器人与自主系统 | 应用 |
| 6.5 | 科学计算与仿真 | 应用 |
| 6.6 | 量子计算 | 进阶 |
| 6.7 | Web 与应用开发 | 应用 |
第七章 —— 软件工程
这一章讨论代码离开个人电脑之后会发生什么。软件需要被团队理解、测试、修改和发布;需求、人员和系统都会变化,所以这里关注的是怎样让软件在真实环境里继续可维护。
| 序号 | 标题 | 定位 |
|---|---|---|
| 7.1 | 软件架构 | 核心 |
| 7.2 | 软件测试与质量保证 | 实践 |
| 7.3 | 软件过程:交付、迭代与协调 | 实践 |
| 7.4 | DevOps、可运维性与持续交付 | 实践 |
| 7.5 | 技术债、重构与软件经济学 | 实践 |
| 7.6 | 工程管理与组织设计 | 实践 |
第八章 —— 从业者技能
这一章是日常工作习惯的部分。它们看起来不如理论宏大,却决定你能不能读懂真实代码、用好工具、和别人协作、清楚表达修改,并在卡住时继续前进。
| 序号 | 标题 | 定位 |
|---|---|---|
| 8.1 | 作为从业工具的编程语言 | 基础 |
| 8.2 | 开发环境与工具 | 实践 |
| 8.3 | 阅读代码 | 实践 |
| 8.4 | 编写代码与软件工艺 | 实践 |
| 8.5 | 协作:版本控制与代码审查 | 实践 |
| 8.6 | 作为方法论纪律的调试 | 实践 |
| 8.7 | 阅读技术文献 | 实践 |
| 8.8 | 技术写作 | 实践 |
| 8.9 | 职业路径与专业实践 | 实践 |
第九章 —— 跨学科连接
最后这一章用来打开视野。等你对计算机科学有了一点站稳的地方,再看它怎样向数学、物理、语言、经济、法律、艺术和哲学借东西、提问题、发生冲突;把它当作桥梁,而不是新的必修清单。
| 序号 | 标题 | 定位 |
|---|---|---|
| 9.1 | 计算机科学与数学:债务、差异与对话 | 跨界 |
| 9.2 | 计算机科学与物理:信息、熵与计算 | 跨界 |
| 9.3 | 计算机科学、认知科学与神经科学:智能、表征、具身 | 跨界 |
| 9.4 | 计算机科学与语言学:语言、语法与计算 | 跨界 |
| 9.5 | 计算机科学与经济学:机制设计与算法博弈论 | 跨界 |
| 9.6 | 计算机科学、法律与政策:隐私、知识产权与算法问责 | 跨界 |
| 9.7 | 计算机科学与生物学:生命中的计算 | 跨界 |
| 9.8 | 计算机科学与艺术设计:生成性、美学与计算 | 跨界 |
| 9.9 | 计算机科学与哲学:基础、心智与伦理 | 跨界 |
附录 —— 职业领域导览与参考
这些附录是职业领域导览和参考材料,不是主线学习章节。适合用来比较方向、理解行业岗位、把计算机科学核心主题连接到具体工作,并统一全书术语。
| 序号 | 领域 | 定位 |
|---|---|---|
| A.1 | Web 与产品应用 | 领域 |
| A.2 | 移动与跨平台开发 | 领域 |
| A.3 | 数据分析与商业智能 | 领域 |
| A.4 | 数据工程与平台 | 领域 |
| A.5 | AI 应用工程 | 领域 |
| A.6 | 机器学习、推荐、搜索与广告 | 领域 |
| A.7 | 大语言模型与自然语言处理 | 领域 |
| A.8 | 计算机视觉与感知 | 领域 |
| A.9 | DevOps、云与站点可靠性工程 | 领域 |
| A.10 | 网络系统与协议 | 领域 |
| A.11 | 数据库与存储系统 | 领域 |
| A.12 | 系统与性能编程 | 领域 |
| A.13 | 嵌入式、物联网与边缘系统 | 领域 |
| A.14 | 网络安全与应用安全 | 领域 |
| A.15 | 游戏开发与互动媒体 | 领域 |
| A.16 | 计算机图形学与渲染 | 领域 |
| A.17 | 机器人与自主系统 | 领域 |
| A.18 | 编程语言与开发者工具 | 领域 |
| A.19 | 术语对照与定义 | 参考 |