网上有很多推荐计算机公开课的帖子,但有的文章推荐了太多,反而容易收藏后吃灰。故针对计算机的基础知识,推荐几门我觉得不错的公开课给大家。 这些课大部分我都做过一些(惭愧,都没有完全做完),用打星的方式来标识下难度,五星最难,打分难免主观,欢迎拍砖。
工具环境:MIT:The Missing Semester of Your CS Education
难度级别:★★
工欲善其事,必先利其器。操作系统、数据库这些计算机基础诚然重要,但是一个程序员实际工作中天天打交道的其实是这些工具。因此,这门课值得放在最前面。
The Missing Semester of Your CS Education:https:/missing.csail.mit.edu
中文翻译:https://missing-semester-cn.github.io/
编程思维:CS 61A
难度级别:★★★
本门课程以巫书(Wizard Book) SICP 为教材。涵盖了编程思维中非常重要的方面:
- 抽象之——函数
- 抽象之——数据
- 解构程序执行
- 数据处理范式
其有本关联的小书讲的尤其不错:
Composing Programs[1]。另外,他用了 Python 这样一门很 handy 的语言作为授课和实验的辅助语言,于是,你还可以顺手学个这么火的 Python。这门课类似于各种编程世界中武功心法总纲,想必能苦苦思索计算机“为什么”的你十分受用。
操作系统:MIT 6.828
难度级别:★★★
使用一个简单的 xv6 教学操作系统,通过实验实现一些操作系统中的关键算法。
Operating System Engineering[2]
数据库开发:cmu15445
难度级别:★★★★
讲义和资料都很翔实。四个实验,构成一个简单的数据库 DBMS。可以看之前 Andy 授课的版本,他讲课比较有激情。
CMU 15-445/645 : Database Systems (Fall 2020)[3]
分布式系统:MIT 6.824
难度级别:★★★★
分布式系统作为当今工业界系统的基石,值得一门公开课。
该课程梳理了近年来工业界分布式系统各种广为应用系统后的论文,设置了分布式系统基石——分布式共识协议的实验,绝对值得一学。
6.824 Distributed Systems: Spring 2020[4]
参考资料
[1]
Composing Programs: http://composingprograms.com/
[2]
Operating System Engineering: https://pdos.csail.mit.edu/6.828/2018/schedule.html
[3]
CMU 15-445/645 : Database Systems (Fall 2020): https://15445.courses.cs.cmu.edu/fall2020/
[4]
Distributed Systems: http://nil.csail.mit.edu/6.824/2020
题图故事
公司杭州办公室的窗外,最喜欢的大落地窗