大家好,我是小林。
小时候大家的烦恼是不是都有这个:
「长大后,我要上清华,还是北大呢?」
长大后,经过一轮一轮的考试后,回过头看是不是感觉这个烦恼有点多余了
虽然没本事上清华,但是并不妨碍我们体验清华的课程嘛。
Github 真的是个好东西,我在 Github 找到个「清华大学计算机系课程攻略」的仓库。
地址: https://github.com/PKUanonym/REKCARC-TSC-UHT
我看了下清华大学的计算机系课程表,我这里简单列一下跟计算机相关的课程,其实还有很多文化课、图形学、数字电路、高数等等。
- 大一:C/C++语言;
- 大二:Java语言、数据结构、汇编语言;
- 大三:计算机组成、计算机网络、编译原理、操作系统、数据库系统;
刚发现这个仓库的时候,我感觉我还是挺兴奋的。第一感觉就是觉得这个仓库会把清华大学的计算机课程视频、课件、教材、作业、期末考试共享出来,这样不在清华的同学,也能体验清华的教学。
我翻了一圈后,发现并不是我预期想的那样。这个仓库感觉更像是「面向清华大学校内学生」,因为仓库的内容主要都是每个学科往年的作业、试卷、复习资料这类的内容,这样共享出来后,能方便给校内的学弟学妹们做课程作业或者考试的时候有个参考。
这样的话,似乎这个仓库对非本校的学生就没用了?那到不是,可以去学习清华大学计算机相关课程实验和大作业,比如操作系统、数据库。
先说操作系统,清华大学的操作系统课会用 8 个实验带大家手写一个 ucore 操作系统,当然这是微型的操作系统,只是用于学习目的,主要有这 8 个实验:
每一个开发步骤都是建议在上一个步骤之上的,所以学习起来是一个循序渐进的过程,就像搭积木一样,从一个一个小方块,最终搭建出来一个房子,在搭建的过程中,学习和实战操作系统的设计与原理。这个房子最终的建筑架构和建设进度如下图所示:
清华大学操作系统公开课在「学堂在线」也可以看,我以前在学操作系统的时候,把视频都看完了,老师讲的很不错,而且网站上面还可以直接进行操作系统实验。
然后,数据库的大作业就是自己实现一个数据库,支持基本的 SQL 语句和索引功能。仓库还给出了往届清华同学的数据库大作业代码,大家有兴趣也可以去看看源码,代码都不长。
我在网上搜了清华大学的数据库实验课程,还真没找到.
如果你也想做个数据库的实验课程,可以看国外的 15445 数据库实验课程,这是一个面向磁盘的数据库。
地址:
https://15445.courses.cs.cmu.edu/fall2020/schedule.html
讲解的其实是 MySQL 的原理,然后文字材料参考的是 《MySQL 技术内幕:Innodb存储引擎》和 《Redis 设计与实现》。之前也有位读者分享了他的实验心得:国外 CS 的 lab,yyds!
看完了清华大学这个仓库,我才回想起来,前段时间有位本科清华的读者跟我报喜,他拿到了很多大厂的offer。
然后我问了他的准备情况。他说:
算法的话学校教过数据结构,再刷一刷题就基本OK了,我是大概leetcode写了200左右;八股这些看看您的图解也差不多了;项目的话其实都是学校的大作业。
注意到没,项目经验是学校的大作业。所以说,清华大学大作业水准还是很高的。
大家校招时如果不知道写什么项目,可以去这个仓库把操作系统和数据库之类的大作业看看,自己学懂了,就可以写到简历了,不用刻意去追求要做一个高并发项目。
类似这样的高校计算机系攻略的仓库还挺多的,除了清华大学外,还有北京大学、浙江大学、广东工业大学、上海交通大学等等。
在这类高校上学的同学,真幸福,准备期末的时候,抱紧 Github 的仓库就稳了。而我们,只能抱佛脚。