学习路线

计算机科学学习路线图

进入计算机科学的分步路线,按照我如果重新学一遍会采用的顺序排列。每个资源都免费,并且来自大学、官方项目或有信誉的非营利组织。

只收录免费资源,链接每周检查

如何使用这些路线图

  1. 刚开始学编程?先从“基础”开始,其他所有路线都建立在它之上。
  2. 选定一条路线,按顺序完成各个阶段。在不同路线之间来回跳,是最常让人迷失方向的原因。
  3. 每个阶段结束时都要完成那个项目。看课程会让人觉得在进步,但只有项目才能证明你真的会。
  4. 时间按每周约 10 小时估算。慢一点没关系,但不要跳过项目。
  5. 大部分资源是英文的。
认证路线图每个职业该考哪些认证,附真实费用。 网络安全与 AI 安全路线图每个安全领域从入门到专家的职业路线图,包含实验、工具和认证(英文)。

计算机科学基础

编程、每个开发者都会用的工具、数据结构,以及计算机和网络真正的工作原理。

时长
31–40 周
可从事
其他所有路线

适合刚入门的人,也适合靠教程自学编程、觉得知识有漏洞的人。

  1. 阶段 1: 学会编程 6–8 周

    学习内容

    • 变量、条件和循环
    • 函数
    • 列表和字典
    • 读懂错误信息
    • 调试

    免费资源

    动手做: 一个你自己设计的小型命令行程序,例如把数据保存到文件的记账工具。

    进入下一阶段的标准: 你能不照着教程写出一个 100 行的程序。

  2. 阶段 2: 终端、Git 和 Linux 3–4 周

    学习内容

    • Shell 命令和管道
    • 文件和权限
    • Git 提交、分支和合并
    • GitHub
    • 代码编辑器

    免费资源

    动手做: 把你写过的所有程序放到 GitHub 上,每个都配一个简短的 README。

    进入下一阶段的标准: 你能不用鼠标在终端里工作,并能解决合并冲突。

  3. 阶段 3: 数据结构与算法 8–10 周

    学习内容

    • 大 O 表示法
    • 数组、链表、栈和队列
    • 哈希表
    • 树和图
    • 排序、搜索和递归

    免费资源

    动手做: 自己实现一个哈希表和一个图搜索(广度优先和深度优先),并写好测试。

    进入下一阶段的标准: 你能解释为什么字典查找很快,并能为问题选择合适的数据结构。

  4. 阶段 4: 计算机和网络如何工作 8–10 周

    学习内容

    • 从逻辑门到 CPU
    • 内存和进程
    • 操作系统
    • TCP/IP、DNS 和 HTTP
    • 并发基础

    免费资源

    动手做: 用原始套接字写一个极小的 Web 服务器,让浏览器能打开它返回的页面。

    进入下一阶段的标准: 你能讲清楚从输入网址到看到页面之间发生的一切。

  5. 阶段 5: 数学和数据库 6–8 周

    学习内容

    • 逻辑与证明
    • 集合、计数和概率
    • 关系型数据库
    • SQL 查询和连接
    • 设计数据表

    免费资源

    动手做: 为一个小图书馆或小商店设计数据库,并用 SQL 回答 20 个相关问题。

    进入下一阶段的标准: 你能写出带连接和分组的查询,并能推理简单的概率问题。

返回所有路线

Web 开发

构建网站和 Web 应用,从用户看到的页面,到背后的服务器和数据库。

时长
28–38 周
先修
计算机科学基础
可从事
前端开发, 后端开发, 全栈开发

适合想做出别人马上就能在浏览器里使用的东西的人。

  1. 阶段 1: HTML、CSS 和 Web 的工作原理 4–6 周

    学习内容

    • 语义化 HTML
    • 无障碍
    • 用 Flexbox 和 Grid 做 CSS 布局
    • 响应式设计
    • 浏览器开发者工具

    免费资源

    动手做: 一个在手机上也好用、并能通过无障碍检查的个人主页。

    进入下一阶段的标准: 你能从零复刻一个你喜欢的网站的布局。

  2. 阶段 2: 深入 JavaScript 6–8 周

    学习内容

    • DOM 和事件
    • 函数、闭包和对象
    • Promise 和 async/await
    • 从 API 获取数据
    • 模块

    免费资源

    动手做: 一个使用公开 API 的应用,例如天气查询或图书搜索。

    进入下一阶段的标准: 你能不用框架做出一个交互式页面。

  3. 阶段 3: 前端框架和 TypeScript 6–8 周

    学习内容

    • 组件和状态
    • 表单和校验
    • 路由
    • TypeScript 类型
    • 组件测试

    免费资源

    动手做: 一个多页面应用,包含表单、保存的状态和一些测试。

    进入下一阶段的标准: 你能解释组件在什么时候、为什么会重新渲染。

  4. 阶段 4: 后端和数据库 8–10 周

    学习内容

    • 深入理解 HTTP
    • 构建 REST API
    • 登录、会话和令牌
    • PostgreSQL
    • 自动化测试

    免费资源

    动手做: 一个带用户账户和数据库、写好测试并被你的前端使用的 API。

    进入下一阶段的标准: 你能设计 API、安全地存储数据并为它写测试。

  5. 阶段 5: 安全地上线 4–6 周

    学习内容

    • 部署应用
    • 环境变量和密钥
    • HTTPS
    • 持续集成
    • OWASP Top 10

    免费资源

    动手做: 部署你的完整应用,每次推送都自动运行测试,并对照 OWASP Top 10 检查。

    进入下一阶段的标准: 陌生人在使用你的应用,而且它出问题时你会知道。

返回所有路线

网络安全

了解系统是如何被攻击的,从而保护它们:网络、Web 应用、检测与响应。

时长
30–38 周 + 持续
先修
计算机科学基础
可从事
SOC 分析师, 渗透测试工程师, 安全工程师, AI 安全研究员

适合喜欢拆解事物、想保护人和系统的好奇的人。

只测试属于你自己或已获得书面授权的系统。请使用下面的练习环境;攻击他人的系统几乎在所有地方都是违法的。

  1. 阶段 1: 面向安全的网络和 Linux 6–8 周

    学习内容

    • TCP/IP 模型和常见端口
    • 网络上的 DNS、HTTP 和 TLS
    • 用 Wireshark 分析流量
    • Linux 用户、权限和日志
    • Shell 脚本

    免费资源

    动手做: 用 Wireshark 抓取你自己的上网流量,并简要说明每部分流量是什么。

    进入下一阶段的标准: 你能读懂一份抓包并说出发生了什么,并且完成了 OverTheWire Bandit 的大部分关卡。

  2. 阶段 2: 安全基础 6–8 周

    学习内容

    • 机密性、完整性和可用性
    • 身份认证和访问控制
    • 哈希、加密和证书
    • 常见攻击和恶意软件
    • 风险和安全框架

    免费资源

    动手做: 为你做过的一个应用写一页威胁模型:可能出什么问题、可能性多大、先修什么。

    进入下一阶段的标准: 你能解释 TLS 如何保护登录,以及为什么密码要哈希而不是加密。

  3. 阶段 3: Web 应用安全 8–10 周

    学习内容

    • SQL 注入
    • 跨站脚本
    • 访问控制失效
    • 身份认证缺陷
    • 服务端请求伪造
    • 使用 Burp Suite

    免费资源

    动手做: 在 OWASP Juice Shop 中找出并记录至少十个漏洞,并写明每个的修复方法。

    进入下一阶段的标准: 你能解释 OWASP Top 10 中的每一类,在实验环境中利用它,并修复它。

  4. 阶段 4: 选一个方向:防守或进攻 10–12 周

    学习内容

    • 防守:日志、SIEM 和告警分诊
    • 防守:事件响应
    • 进攻:侦察和漏洞利用
    • 进攻:权限提升
    • 两者:MITRE ATT&CK
    • 两者:写清楚的报告

    免费资源

    动手做: 防守:搭一个家庭实验室,收集日志并检测三种 ATT&CK 技术。进攻:完成 20 道 picoCTF 题目并发布解题记录。

    进入下一阶段的标准: 你能把实验室或解题记录展示给雇主,并讲清楚你的思路。

  5. 阶段 5: 专精并保持更新 持续

    学习内容

    • 云安全
    • AI 与大语言模型安全
    • 恶意软件分析
    • 治理、风险与合规
    • 跟进安全公告

    动手做: 发布一些别人能用的东西:一篇分析、一条检测规则或一个小工具。

    进入下一阶段的标准: 这个阶段永远不会结束。安全每个月都在变化。

认证路线图 返回所有路线

人工智能与机器学习

从学习背后的数学,到训练模型、使用语言模型,再到负责任地投入使用。

时长
35–44 周 + 持续
先修
计算机科学基础
可从事
机器学习工程师, 数据科学家, AI 研究员, MLOps 工程师

适合编程熟练、喜欢数学和做实验的人。

  1. 阶段 1: 机器学习的数学 6–8 周

    学习内容

    • 向量和矩阵
    • 导数和梯度
    • 概率
    • 统计
    • 优化

    免费资源

    动手做: 只用 NumPy 实现带梯度下降的线性回归,并画出损失下降的曲线。

    进入下一阶段的标准: 你能在白板上讲清楚梯度下降。

  2. 阶段 2: 用于数据的 Python 3–4 周

    学习内容

    • NumPy 数组
    • pandas 数据框
    • 清洗杂乱的数据
    • 绘图
    • Jupyter 笔记本

    免费资源

    动手做: 清洗并探索一个公开数据集,写下三个发现。

    进入下一阶段的标准: 你能加载、清洗并总结一个从没见过的数据集。

  3. 阶段 3: 经典机器学习 8–10 周

    学习内容

    • 训练集、验证集和测试集
    • 过拟合和正则化
    • 回归和分类
    • 决策树和集成方法
    • 选择合适的指标

    免费资源

    动手做: 一个端到端训练、在没见过的数据上测试的模型,并诚实写明它在哪里失败。

    进入下一阶段的标准: 你能看出一个好分数其实是数据泄漏造成的。

  4. 阶段 4: 深度学习 10–12 周

    学习内容

    • 神经网络和反向传播
    • PyTorch
    • 卷积网络
    • Transformer 和注意力机制
    • 在 GPU 上训练

    免费资源

    动手做: 训练一个图像或文本分类器,并和上一阶段的经典模型比较。

    进入下一阶段的标准: 你能自己编写并调试训练循环。

  5. 阶段 5: 语言模型 8–10 周

    学习内容

    • 词元和嵌入
    • 大语言模型如何训练
    • 微调
    • 检索增强生成
    • 评估输出

    免费资源

    动手做: 一个基于你自己笔记的问答应用,并用一个小测试集衡量它答对的比例。

    进入下一阶段的标准: 你能解释模型为什么答错,并衡量一次改动是否有帮助。

  6. 阶段 6: 负责任地投入使用 持续

    学习内容

    • 通过 API 提供模型服务
    • 监控和数据漂移
    • 偏差与公平
    • 隐私
    • 针对 AI 系统的攻击

    免费资源

    动手做: 部署你的一个模型并加上监控,再写一份简短的模型卡,说明它不应该被用于什么。

    进入下一阶段的标准: 这个阶段永远不会结束。持续发布,持续衡量。

认证路线图 返回所有路线

数据分析与数据工程

把原始数据变成人们可以据此行动的答案,并构建让数据持续流动的管道。

时长
27–36 周
先修
计算机科学基础
可从事
数据分析师, 分析工程师, 数据工程师

适合喜欢提问、并在数字中寻找答案的人。

  1. 阶段 1: 深入 SQL 4–6 周

    学习内容

    • 筛选和排序
    • 连接
    • 分组和聚合
    • 子查询
    • 窗口函数

    免费资源

    动手做: 只用 SQL 回答关于一个公开数据集的 15 个真实问题。

    进入下一阶段的标准: 你能用一条写得好的查询回答大多数业务问题。

  2. 阶段 2: 统计 6–8 周

    学习内容

    • 平均数、离散程度和分布
    • 抽样
    • 置信区间
    • 假设检验和 A/B 测试
    • 相关不等于因果

    免费资源

    动手做: 分析一个 A/B 测试数据集,并用通俗的语言给经理写出结论。

    进入下一阶段的标准: 你不仅能说出结果是什么,还能说出对它有多大把握。

  3. 阶段 3: 用 Python 或 R 做分析 6–8 周

    学习内容

    • 加载和清洗数据
    • 整洁数据
    • 重塑和合并表格
    • 笔记本和报告
    • 可复现的工作

    免费资源

    动手做: 一份从杂乱原始数据开始、任何人都能重新运行的完整报告。

    进入下一阶段的标准: 你能在一个下午内从原始文件得到清晰的答案。

  4. 阶段 4: 可视化与讲故事 3–4 周

    学习内容

    • 选择合适的图表
    • 诚实的坐标轴和刻度
    • 颜色和无障碍
    • 仪表盘
    • 写清晰的总结

    免费资源

    动手做: 一个非技术人员不需要你解释就能看懂的仪表盘或一页报告。

    进入下一阶段的标准: 你的图表一眼就能回答一个问题。

  5. 阶段 5: 数据工程 8–10 周

    学习内容

    • ETL 和 ELT 管道
    • 数据仓库
    • 调度和编排
    • 用 dbt 做转换
    • 用 Spark 处理大数据

    免费资源

    动手做: 一个定时运行的管道:从 API 拉取数据,存入数据仓库,并为你的仪表盘提供数据。

    进入下一阶段的标准: 你的管道能自动运行,出错时会通知你。

认证路线图 返回所有路线

云与 DevOps

可靠地运行软件:服务器、容器、自动化、云平台以及保证服务在线。

时长
30–40 周
先修
计算机科学基础
可从事
DevOps 工程师, 云工程师, 站点可靠性工程师, 平台工程师

适合喜欢让系统更快、更安全、更自动化的人。

  1. 阶段 1: 面向运维的 Linux 和网络 6–8 周

    学习内容

    • 进程和服务
    • SSH 和密钥
    • Shell 脚本
    • DNS、负载均衡和防火墙
    • 阅读日志

    免费资源

    动手做: 搭建一台 Linux 服务器,加固 SSH,并在上面用 HTTPS 托管一个网站。

    进入下一阶段的标准: 你能查出服务器为什么变慢或网站为什么打不开。

  2. 阶段 2: 容器 4–6 周

    学习内容

    • 镜像和容器
    • 编写 Dockerfile
    • 卷和网络
    • Docker Compose
    • 让应用在任何地方都容易运行

    免费资源

    动手做: 用 Docker Compose 打包一个 Web 应用及其数据库,让它一条命令就能启动。

    进入下一阶段的标准: 任何人都能一步在自己的电脑上运行你的应用。

  3. 阶段 3: 自动化:CI/CD 和基础设施即代码 6–8 周

    学习内容

    • 负责测试和构建的流水线
    • 自动部署
    • Terraform
    • 管理密钥
    • 安全回滚

    免费资源

    动手做: 一条在每次推送时测试、构建并部署的流水线,基础设施用 Terraform 编写。

    进入下一阶段的标准: 你能用代码重建整个环境。

  4. 阶段 4: 认真学好一个云平台 6–8 周

    学习内容

    • 计算和存储
    • 身份和访问管理(IAM)
    • 虚拟网络
    • 托管数据库
    • 成本和预算

    免费资源

    动手做: 把你的应用部署到一个云平台,使用最小权限,并设置预算提醒。

    进入下一阶段的标准: 你能解释你的云账单,以及谁能访问什么。

  5. 阶段 5: Kubernetes 与可靠性 8–10 周

    学习内容

    • Pod、Deployment 和 Service
    • 监控和告警
    • 服务等级目标
    • 事件响应
    • 事后复盘

    免费资源

    动手做: 在本地 Kubernetes 集群上运行你的应用,加上监控和一个服务等级目标仪表盘。

    进入下一阶段的标准: 在用户发现之前,你就知道服务出了问题。

认证路线图 返回所有路线

为什么这些链接值得信赖

我只收录可以免费使用的资源,作者是大学、工具的开发者或长期运营的非营利组织。没有推广链接,也没有付费训练营。有些大学课程可以免费学习,但证书收费,这些都已标出。一个脚本每周检查一次所有链接。

最近审核:

发现失效链接,或者希望增加一条路线? 联系