update toc

This commit is contained in:
bobo 2021-01-10 16:09:49 +08:00
parent 3640589627
commit e4ab29757e

View File

@ -1,16 +1,16 @@
# cs_study_plan
一份硬核CS自学计划
### 一、前言
## 一、前言
不少学员经常抱怨自己的计算机基本功不行大学的时候荒废了既然如此为啥不考虑为自己制定一个为期35年的重学CS目标然后投入时间精力去实现这个目标呢具体点这个目标可以是这样的**重学CS(Computer Science)核心课程夯实CS基本功达到美国一流大学CS专业本科毕业水平**。如果你的年龄还没有超过30岁想在IT行业做得长久想成为一名更优秀的工程师甚至想往架构师或者技术领导层方向发展那么波波认为这个目标是值得投入的长期会有回报。
假设你的职业方向是偏向软件工程和系统架构方向的那么下面是波波推荐的一个为期3年左右的重学CS细分学习计划。我把这份计划同时分享在我的公众号和[github站点](github.com/spring2go/cs_study_plan)上,供大家参考。
所有参考课程基本上是美国一流大学最知名的CS课程而且除了书以外其它资料都是免费公开的。
### 二、CS学习计划
## 二、CS学习计划
#### 先导课(3个月)
### 2.1 先导课(3个月)
课程C语言基础
@ -29,7 +29,7 @@
1. 这门课相当于是CS101为什么要学C语言因为C语言是现在主流语言的鼻祖也是主流系统编程语言系统架构师必须懂C语言。另外下门课程[深入理解计算机系统]需要C语言+Linux编程基础。
2. 课程站点上面的PPT可以大致浏览一下如果已经有足够编程基础的话书可看可不看关键是14个实验和3个项目要搞定。
#### 第1年上半年
### 2.2 第1年上半年
课程:深入理解计算机系统
@ -45,7 +45,7 @@
说明:这门课程是系统编程基础,也是后续操作系统/网络/数据库/编译等课程的基础,相关内容是通向系统架构师的基本功。这门课比较贴近企业实战,对动手能力要求很高,课程一大目标是要程序员写出对机器友好的高性能代码。
#### 第1年下半年
### 2.3 第1年下半年
课程:数据结构
@ -61,7 +61,7 @@
说明数据结构的重要性毋庸置疑伯克利的CS课程都是比较偏向实战型工程师的纯理论的东西相对少。本课的重点是树立抽象编程思维务必把所有Labs/Homeworks/Projects都搞定。
#### 第2年上半年
### 2.4 第2年上半年
课程:操作系统
@ -77,7 +77,7 @@
说明6.828是MIT的神课这门课难度不小含金量也不小。如果能把所有实验都搞定对操作系统的认识会有质的飞跃。
#### 第2年下半年
### 2.5 第2年下半年
课程:计算机网络
@ -93,7 +93,7 @@
说明计算机网络知识和技能是互联网应用开发的基础也是成为系统架构师的基础。这门CS 144和配套书《计算机网络自顶向下方法》是目前最佳的学习计算机网络基础的课程和参考书。这也是一门投入产出比比较高的课(学了马上能用)。
#### 第3年上半年
### 2.6 第3年上半年
课程:编译原理
@ -109,7 +109,7 @@
说明:视频可以不看,但是一定要自己动手实现一个小语言解释器或者编译器。
#### 第3年下半年
### 2.7 第3年下半年
课程:数据库系统
@ -125,7 +125,7 @@
说明:视频/课程/书可以不看但是一定要自己动手实现一个小型的数据库系统包括服务器端的存储引擎、SQL解析器、查询引擎和JDBC访问接口。企业开发大部分是基于数据库的应用如果要成为企业级架构师必须对数据库底层实现有一定掌握。
### 3. 额外说明
## 三、额外说明
1. 上面7门课是CS的核心课程(Core CS)偏向软件工程和系统架构方向。波波认为作为打基础的话认真消化吸收这7门课就足够了不需要再多国内的计算机专业核心课也是这7门。其它的像人工智能大数据计算机图形学软件工程Web或者无线开发网络安全分布式系统等等都可以算是专业或应用课在学完7门核心课的基础上有了一个扎实的基础可以轻松按需拓展学习其它专业或应用课。