- 发布于
CS 自学路线:从计算机基础到后端开发
- 作者

- 姓名
- Corner430
- 社交账号

1 前言
CS 自学最大的困境不是资源太少,而是太多。GitHub 上随便一搜就是几十个 awesome list,每个 list 里又是几百个链接——看着很爽,收藏了等于学了,然后就没有然后了。
本文梳理了一条有先后顺序的自学路线,从计算机基础一路推进到后端开发,共 7 个阶段。每个阶段精选最值得投入时间的资源,附上学习建议和预期产出。
如何使用这条路线:
- 按阶段顺序推进,前一阶段是后一阶段的基础
- 每个阶段的资源分「核心」和「扩展」,时间有限先啃核心
- 阶段 5-7(系统设计、Java、Go)可根据职业方向选择性深入
前置条件:会用电脑、掌握任意一门编程语言的基本语法。
2 学习路线全景图

从左到右,每个阶段都建立在前一阶段之上:
| 阶段 | 主题 | 核心资源 | 产出目标 |
|---|---|---|---|
| 1 | 计算机基础 | CS-Notes、小林 Coding | 理解 OS / 网络 / 组成原理 |
| 2 | C++ 语言 | CPlusPlusThings、Modern C++ | 熟练使用 C++17 |
| 3 | 数据结构与算法 | Hello 算法、代码随想录 | 刷完 200+ LeetCode |
| 4 | 系统设计 | system-design-primer | 能设计常见分布式系统 |
| 5 | Java 后端 | JavaGuide、advanced-java | 掌握 Spring 生态 |
| 6 | Go 语言 | The Way to Go、awesome-go | 能用 Go 写后端服务 |
| 7 | 代码规范 | Google Style Guide | 从第一行代码就养成好习惯 |
阶段 1-3 是所有方向的公共基础,建议完整走完。阶段 4-7 可根据职业方向选择性深入。
3 计算机基础

操作系统、计算机网络、组成原理、数据库——这四门课是 CS 的地基。不需要每门都学到专家级,但需要建立基本的心智模型。
3.1 一站式教材
- cs-self-learning ★72k — 北大学长的计算机自学指南。覆盖所有核心课程,不只是列资源,还给出了选课建议和学习顺序。如果只看一个仓库,就是这个。
- CS-Notes ★184k — 面试必备基础知识。把 OS、网络、数据库、算法的核心概念浓缩成一份笔记,适合快速建立全局观。
3.2 图解系列
3.3 经典课程(网络补充)
| 课程 | 来源 | 亮点 |
|---|---|---|
| CSAPP 配套实验 | CMU | 《深入理解计算机系统》实验,hands-on |
| 操作系统 (蒋炎岩) | 南京大学 | 国内最佳 OS 课之一 |
| CS144 计算机网络 | Stanford | 手写 TCP 协议栈 |
| MIT 6.824 分布式系统 | MIT | 分布式经典课程 |
| 计算机体系结构 | MIT OCW | 从门电路到处理器 |
3.4 学习建议
不要试图把所有课都上完。重点学 OS + 网络,这两门对后续所有方向都有直接帮助。组成原理和数据库可以按需学。cs-self-learning 给出了每门课的推荐教材和视频,跟着走就行。
4 C++ 语言

C++ 是学习计算机底层原理的最佳语言——它让你直面内存管理、对象模型、编译过程,同时又提供了现代高级特性。
4.1 入门到精通
- CPlusPlusThings ★43k — C++ 那些事。从基础语法、STL、设计模式到并发编程、C++11/14/17 新特性,体系完整,中文讲解。
- interview ★38k — C/C++ 技术面试基础知识总结。覆盖语言、数据结构、算法、OS、网络,适合学完基础后查漏补缺。
4.2 现代 C++
- modern-cpp-tutorial ★25k — 《现代 C++ 教程》。C++11/14/17/20 On the Fly,从传统 C++ 到现代特性的快速过渡。在线阅读
- cppinsights ★4.5k — C++ Insights:用编译器的视角看代码。输入一段 C++ 代码,展示编译器实际生成的内容——理解 auto、lambda、range-for 背后发生了什么。在线使用
4.3 模板与元编程
- CppTemplateTutorial ★11k — 把 C++ Templates 当作图灵完备语言来讲的中文教程。帮助你对模板元编程融会贯通。
4.4 高性能实战
- HighPerformanceConcurrentServer ★545 — 基于 C++11 的高性能并发 HTTP 服务器。涵盖日志、线程池、内存池、定时器、网络 IO、HTTP、数据库连接,模块间低耦合高内聚。学完 C++ 基础后的最佳练手项目。
4.5 在线工具与参考
| 资源 | 描述 |
|---|---|
| cppreference.com | C++ 标准库参考,最权威 |
| Compiler Explorer | 在线查看 C++ 编译产物,支持多编译器对比 |
| C++ Core Guidelines | Bjarne Stroustrup & Herb Sutter 编写的编码规范 |
| CppCon | C++ 大会演讲视频(YouTube) |
| LearnCpp.com | 从零学 C++ 的免费在线教程 |
4.7 学习建议
建议用 C++ Primer 作为主教材打基础,配合 CPlusPlusThings 查漏补缺。学完基础后尽快进入现代 C++(changkun 教程),不要在 C++98 上花太多时间——现代 C++ 写起来完全不一样。模板元编程是进阶内容,初学可跳过。遇到不确定的语法,第一时间查 cppreference,不要靠猜。
5 数据结构与算法

算法能力是程序员的硬通货。不管做前端、后端、AI 还是系统开发,面试绕不开,工作中也经常用到。
5.1 系统教程
- hello-algo ★125k — 《Hello 算法》。动画图解、一键运行,支持 C++ / Java / Python / Go 等 12 种语言。从零开始讲数据结构和算法,是目前最好的中文入门教材。在线阅读
- LeetCode-Book ★8.2k — 《图解算法数据结构》+《剑指 Offer》题解,同一作者的进阶配套。
5.2 刷题方法论
- fucking-algorithm ★133k — 「labuladong 的算法笔记」。不只教 how,更教 why——用框架思维解题,一通百通。在线阅读
- leetcode-master ★61k — 《代码随想录》。精选 200 道经典题,按类型排序(数组、链表、树、回溯、动态规划……),配详细图解和视频。在线阅读
5.3 可视化题解
- LeetCodeAnimation ★77k — 用动画呈现 LeetCode 题解,把抽象的算法过程变成直观的动态演示。
5.4 题解参考
- leetcode(azl) ★56k — LeetCode 题解记录,按难度和类型分类。
- leetcode(doocs) ★36k — 多语言 LeetCode 题解(C++ / Java / Python / Go / TS),同一道题多种语言对比。
5.5 在线工具
| 资源 | 描述 |
|---|---|
| VisuAlgo | 数据结构与算法可视化 |
| LeetCode 力扣 | 刷题平台 |
| OI Wiki | 信息学奥赛 Wiki,算法百科全书 |
| Sorting Visualizer | 排序算法可视化 |
5.6 学习建议
hello-algo 入门 → 代码随想录按分类刷 → labuladong 理解框架思维。不要追求题量,200 道高质量题胜过 500 道无脑刷。建议用 C++ 刷题,和语言学习同步推进。每道题先自己想 15 分钟,想不出来再看题解——算法能力来自痛苦的思考过程,不是看答案的速度。
6 系统设计

系统设计是把前面学到的所有知识(OS、网络、数据库、算法)综合运用的阶段。它考验的不是单点知识,而是全局视野。
6.1 系统设计入门
- system-design-primer ★342k — GitHub 上最热门的仓库之一。系统性讲解可扩展性、缓存策略、负载均衡、数据库分区、消息队列、微服务等核心概念,附 Anki 记忆卡。
6.2 Linux 内核
- linux_kernel_wiki ★7.5k — Linux 内核学习资料:200+ 经典文章、100+ 内核论文、50+ 内核项目、500+ 面试题。深水区资源,有兴趣再钻研。
6.3 经典著作与课程
| 资源 | 描述 |
|---|---|
| Designing Data-Intensive Applications | 《DDIA》分布式系统经典,必读 |
| ByteByteGo | Alex Xu 的系统设计图解 |
| System Design Interview (YouTube) | 系统设计面试视频讲解 |
6.4 学习建议
system-design-primer 是核心主线,建议通读一遍建立全局观。然后挑感兴趣的系统(URL 短链、消息队列、新闻 Feed、搜索引擎)深入设计。DDIA 是进阶必读,但比较厚,可以和实际项目穿插阅读。
7 Java 后端

Java 是企业级后端开发的主流选择。这个阶段的目标不只是学语言,更是掌握后端工程体系——Spring 生态、数据库、缓存、消息队列、分布式。
7.1 一站式指南
7.2 进阶专题
- advanced-java ★79k — 互联网 Java 工程师进阶。涵盖高并发(消息队列、搜索引擎、缓存)、分布式(分布式锁、分布式事务、分布式 ID)、高可用(限流、熔断、降级)。
7.3 Spring 源码
- spring-reading ★10k — Spring 框架源码深度解读。涵盖 IOC 容器、AOP、事务管理、MVC、Boot 自动配置、事件机制、缓存抽象、响应式编程。
7.4 在线资源
| 资源 | 描述 |
|---|---|
| Java 官方教程 | Oracle 官方入门 |
| Baeldung | Java / Spring 实战教程,质量极高 |
| Spring 官方文档 | Spring Boot 官方 |
7.5 学习建议
JavaGuide 当路线图和查漏补缺工具。学 Java 不要只学语法——Java 的价值在于它的生态。先用 Spring Boot 写一个 CRUD 项目(用户管理、博客系统),然后逐步引入 Redis 缓存、Kafka 消息队列。Spring 源码不是入门阶段该看的,遇到问题再读源码。
8 Go 语言

Go 语言简洁高效,是云原生时代的宠儿。Docker、Kubernetes、etcd 都是用 Go 写的。有 C/C++ 基础的话上手极快。
8.1 入门教程
- the-way-to-go_ZH_CN ★35k — 《Go 入门指南》中文译本。系统介绍 Go 语言的方方面面,从基础语法到并发编程。
- GoGuide ★3.2k — Go 语言学习指南。涵盖 Go 教程、开源书籍、入门教程、学习路线,零基础友好。
8.2 在线资源
| 资源 | 描述 |
|---|---|
| Tour of Go | 官方交互式入门教程 |
| Go by Example | 通过示例学 Go |
| topgoer.com | Go 中文学习网,覆盖基础到微服务 |
| Effective Go | 官方最佳实践指南 |
| Go 语言设计与实现 | 深度剖析 Go 运行时(进阶) |
8.3 学习建议
Go 语法简洁到几乎不需要教程——先跑 Tour of Go(30 分钟),再通过 Go by Example 熟悉常用模式,然后直接写项目。Go 的学习曲线在并发模型(goroutine + channel),而不是语法。有 C/C++ 基础的话,重点关注 Go 与 C++ 的差异:GC、接口鸭子类型、error 处理、没有继承。
9 代码规范与工程素养
好代码不只是「能跑」,更要「能读」。代码规范是团队协作的基础。
9.1 代码规范
- zh-google-styleguide ★11k — Google 开源项目风格指南中文版。涵盖 C++、Python、Shell、JSON 等语言的编码规范。
9.2 经典著作
| 书名 | 描述 |
|---|---|
| Google C++ Style Guide | Google C++ 编码规范(英文原版) |
| The Pragmatic Programmer | 《程序员修炼之道》— 软件工程思维 |
| Clean Code | 《代码整洁之道》— 写出可读代码 |
9.3 学习建议
从第一行代码就养成好习惯。选一份风格指南(推荐 Google Style)严格遵守,比之后再改习惯容易得多。代码规范不是束缚,而是让你把注意力从「这里要不要加空格」转移到「这个设计对不对」。
10 快速参考
全部资源汇总
| 阶段 | 仓库 | 描述 | Stars |
|---|---|---|---|
| CS 基础 | cs-self-learning | 计算机自学指南 | 72k |
| CS 基础 | CS-Notes | 面试必备基础 | 184k |
| CS 基础 | CS-Base | 图解 CS 四大件 | 18k |
| C++ | CPlusPlusThings | C++ 那些事 | 43k |
| C++ | interview | C/C++ 面试知识 | 38k |
| C++ | modern-cpp-tutorial | 现代 C++ 教程 | 25k |
| C++ | cppinsights | 编译器视角看 C++ | 4.5k |
| C++ | CppTemplateTutorial | 模板元编程教程 | 11k |
| C++ | HighPerformanceConcurrentServer | 高性能并发服务器 | 545 |
| 算法 | hello-algo | Hello 算法 | 125k |
| 算法 | LeetCode-Book | 图解算法题解 | 8.2k |
| 算法 | fucking-algorithm | 算法刷题框架 | 133k |
| 算法 | leetcode-master | 代码随想录 | 61k |
| 算法 | LeetCodeAnimation | 动画题解 | 77k |
| 算法 | leetcode(azl) | LeetCode 题解 | 56k |
| 算法 | leetcode(doocs) | 多语言题解 | 36k |
| 系统设计 | system-design-primer | 系统设计入门 | 342k |
| 系统设计 | linux_kernel_wiki | Linux 内核资料 | 7.5k |
| Java | JavaGuide | Java 面试指南 | 155k |
| Java | advanced-java | Java 进阶 | 79k |
| Java | spring-reading | Spring 源码解读 | 10k |
| Go | the-way-to-go_ZH_CN | Go 入门指南 | 35k |
| Go | GoGuide | Go 学习指南 | 3.2k |
| 规范 | zh-google-styleguide | Google 风格指南 | 11k |
11 参考链接
在线课程与教材:
- CSAPP 配套实验
- 南京大学 操作系统
- Stanford CS144 计算机网络
- MIT 6.824 分布式系统
- cppreference.com
- Compiler Explorer
- LearnCpp.com
- VisuAlgo
- OI Wiki
- Tour of Go
- Go by Example
- topgoer.com
- Baeldung
站内相关文章:
版权声明
- 作者: Corner430
- 标题: CS 自学路线:从计算机基础到后端开发
- 链接: https://corner430-ai-blog.vercel.app/blog/cs-self-learning-roadmap
- 许可协议: CC BY-NC-SA 4.0
除非另有说明,本文内容采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。