计算机科学
基础知识
适用于自学开发者的计算机科学课程,包含免费资源。
22 个阶段
116 个技能
系统化的学习路线,从基础到进阶,循序渐进掌握核心技能
1
编程语言
核心技能点
Python
Go
C#(C Sharp)
Rust
C++
C
Java
2
数据结构
核心技能点
数组
链表
栈
队列
哈希表(Hash Table)
树
图
堆
阶段学习资源
3
渐近记号(Asymptotic Notation)
核心技能点
大O符号
大Θ(Big-Theta)
大欧米咖(Big Omega)
常见运行时环境(common-runtimes)
阶段学习资源
推荐资料
- 渐近分析:大O记号及其他(Asymptotic Analysis: Big-O Notation and More) article
- 大O速查表(Big-O Cheat Sheet) article
- 大O记号:数学与科学维基(Big O Notation | Brilliant Math & Science Wiki) article
- 大O记号:计算时间复杂度(Big O Notation — Calculating Time Complexity) video
- 五分钟了解大O记号(Big O Notation in 5 Minutes) video
- 渐近记号 - CS50(Asymptotic Notation - CS50) video
- CS 61B 第19次课:渐近分析(CS 61B Lecture 19: Asymptotic Analysis) video
4
常见的算法
核心技能点
排序算法
树算法
图算法
贪心算法(greedy-algorithms)
回溯算法(back-tracking-algorithms)
Rabin-Karp算法
递归(recursion)
搜索算法
还有 1 个技能点
7
字节序(Endianess)
核心技能点
大端序 (Big Endian)
小端序 (Little Endian)
阶段学习资源
9
常见的UML图
核心技能点
类图
用例图(Usecase Diagrams)
活动图(Activity Diagrams)
状态机图(State Machine Diagrams)
序列图
阶段学习资源
10
设计模式
核心技能点
GoF 设计模式 (GoF Design Patterns)
架构模式
依赖注入(Dependency Injection)
空对象模式 (Null Object Pattern)
类型对象模式 (Type Object Pattern)
阶段学习资源
11
基础数学技能
核心技能点
概率论
组合数学
阶段学习资源
推荐资料
- 计算机科学70,001 - 2015年春季 - 离散数学和概率论 article
- 离散数学(由罗帕尔IIT提供) article
- 探索有关数学的热门文章 article
- MIT 6.042J 计算机科学数学,2010年秋季 - 第1讲 video
- 整数算术,Karasuba乘法 video
- 剩余定理(用于密码学) video
- 离散数学 由 Shai Simonson 教授(19个视频) video
- MIT 6.042J - 概率论入门 video
- MIT 6.042J - 条件概率 video
- MIT 6.042J - 独立性 video
- MIT 6.042J - 随机变量 video
- MIT 6.042J - 期望值I video
- MIT 6.042J - 期望值II video
- MIT 6.042J - 大偏差 video
- MIT 6.042J - 随机行走 video
12
复杂性类
核心技能点
P类
NP
NP难(NP Hard)
P = NP
NP 完全(NP Complete)
阶段学习资源
推荐资料
- 理解 P vs NP vs NP完全(NP-Complete) vs NP难(NP-Hard) article
- 复杂性:P、NP、NP完全(NP-Completeness)、规约(Reductions) video
- 复杂性:近似算法(Approximation Algorithms) video
- 复杂性:参数固定算法(Fixed-Parameter Algorithms) video
- 讲义23:计算复杂性(Computational Complexity) video
- 贪心算法II和NP完全性(NP Completeness)简介 video
- NP完全性II和规约(Reductions) video
- NP完全性III video
- NP完全性IV video
- CSE373 2020 讲义23:NP完全性 video
- CSE373 2020 讲义24:可满足性(Satisfiability) video
- CSE373 2020 讲义25:更多的NP完全性(NP-Completeness) video
- CSE373 2020 讲义26:NP完全性挑战(NP-Completeness Challenge) video
13
字典树(Tries)
阶段学习资源
14
平衡搜索树
核心技能点
AVL 树
红黑树
2-3搜索树
2-3-4树
K-叉/M-叉树
B-树
阶段学习资源
15
系统设计
核心技能点
水平扩展 vs 垂直扩展
负载均衡
聚类(Clustering)
缓存(Caching)
内容分发网络(CDN)
代理服务器 (Proxy)
CAP定理(CAP Theorem)
队列
还有 9 个技能点
阶段学习资源
16
数据库
核心技能点
SQL与NoSQL数据库
规范化 / 反规范化
实体-关系模型(Entity-Relationship Model)
DDL (Data Definition Language)
DML(数据操纵语言)
数据查询语言 (DQL)
DCL
锁定
还有 11 个技能点
阶段学习资源
17
网络技术
核心技能点
OSI模型
TCP/IP模型
DNS
HTTP (HyperText Transfer Protocol)
TLS (传输层安全协议) & HTTPS
套接字(Sockets)
阶段学习资源
18
安全性
核心技能点
公钥密码学(Public Key Cryptography)
哈希/加密/编码
哈希算法(Hashing Algorithms)
OWASP十大项目
阶段学习资源
19
计算机是如何工作的
核心技能点
CPU如何执行程序
计算机如何计算
寄存器和RAM
指令和程序
CPU 缓存(CPU Cache)
阶段学习资源
20
进程和线程
核心技能点
进程fork(Process Forking)
内存管理
锁(Lock) / 互斥量(Mutex) / 信号量(Semaphore)
多核中的并发性
调度算法
CPU中断(CPU Interrupts)
进程 vs 线程
阶段学习资源
职路APP - AI驱动的职业发展平台
个性化学习路径
基于AI算法生成专属的职业成长路径
职业测评
全面了解自己的职业兴趣和能力特长
智能简历
一键生成针对不同职位的专业简历
职位分析
深度解析职位要求,精准匹配能力