资源帖 - AlanFreySpace/algorithm_contest GitHub Wiki

个人复习经历,略加梳理,以馈同道。 这条道我走过了,你们正在走,也终将走过,此即为同道吧!

考试科目:912 清华计算机考研专业课 我2019年:<80分,没过单科线 我2020年:≥125分

两年前我开始准备这门课的时候,也是在网上各个角落旮旯搜寻一切有用信息。生怕错过了什么重要信息,怕在这场战役的一开始就因为信息过于不平等而失了先机。 感谢xuanxuan,整理的资料:https://xuanxuanblingbling.github.io/life/study/2018/12/29/912/ 感谢王道考研论坛的前辈经验:风华漫舞 http://cskaoyan.com/forum-84-1.html 还有我建立的备考讨论群:1137440979(大家可以交流知识点,我也会尽力分享)在这篇帖子里面,我只谈912,毕竟这才是大家来这里的目的,公共课自有各方大神、专业辅导老师给出经验。 同时,毕竟912也才是这次考试最重要的,最难把握的,信息最少的部分,其成绩甚至也直接影响到复试时老师对你的认知和判断。毕竟在复试时,如何判断这些考生的计算机基本功,912成绩才是最实在的,最可信的,最全面的反映。

壹 — 资料梳理 数据结构(DSA) 邓俊辉老师视频课 :https://next.xuetangx.com/course/THU08091000384/1516243 邓俊辉老师算法训练营:学堂在线 参考书:邓老师的配套书(包括习题)

操作系统 向勇&陈渝老师 :https://next.xuetangx.com/course/THU08091000267/1516699 课程主页:http://os.cs.tsinghua.edu.cn/oscourse/OS2020spring#A.2Bi.2F56Cw.26.2BW56ajGXlegtbiWOS- 课程QQ群(两位老师在里面):181873534 课程PPT 历年期末考试试卷 参考书:《Operating Systems: Three Easy Pieces》

组成原理

视频:刘老师的线下课程录像(我在B站上看的) 课程PPT 参考书:《CSAPP》、《计算机组成与设计》

计算机网络

课程PPT 典型习题和实验总结 参考书:《计算机网络(第五版)》 历年期末考试题目回忆

贰 — 准备过程 4月-7月 第一阶段,第一遍较为仔细复习了DSA/OS/Organization,看视频,看书,看ppt,确保看见了的98%的知识点都明白其逻辑了,都搞清楚了。适当做一些笔记和知识结构图,方便后面回忆。 8月-9月 第二阶段,复习Network,第二遍复习,看DSA/OS的知识结构图/书本目录,尽力回忆出这一块的所有内容,如果想不起来或者说忘了,就快速复习回忆,然后重新在理顺一遍这一块的知识逻辑。轮询两次,每次间隔一个月。如果说,你复习一个月后,还能回忆起这一块的主要内容和重要的细节内容,说明对这一块的掌握不错。否则说明,这一块的知识还不到位,不能手到擒来,需要加强。尤其需要重视,对重点考点内容的反复回溯。 10月-11月 第三阶段,做试题和回忆题。将能搜集到的所有清华考题,做一遍,对答案。由于没有官方的内容,所以试题的收集,答案的寻找,以及内容准确度的甄别,耗费的时间比较久,精力比较多。大部分地方都没有,有的话,大家也很珍视自己搜寻的辛苦工作,不太分享,也可以理解。总之,这也算是比拼信息收集能力和信息处理能力吧。毕竟考研就是一场综合素质和个人能力的考验。单纯觉得自己聪明、努力,就能成功,就该成功的同学,我觉得还是不太客观。 12月 第四阶段,快速过了一遍整体知识框架。把上阶段做错的错题又重新来了一遍,保证这次都做对了。如果还错,那么接着来吧!还有历年真题的训练,把它放在最后压轴了。

叁 — 个人经验 (插个真实的小段子)
今年在考场上,我右前方的一个男同学,前三门公共课考试都没来。然而!他在考912的时候来了。考试到一小时左右的时候,我们考场的一个女监考老师,在他附近来来回回。好像是出事了,说了两句话,还出去上报叫人啥的。最后来了人,收走了他的东西,原来这哥们把所有912的考题写在准考证上,估计准备带回去研究考题,却被抓了。不知道接下来咋处理。提醒大家,这件事可能有风险! 我是工作后又考研的,在大厂干了两年开发,这次复习912依然让我受益匪浅!尤其是DSA,没想到这些基础的,平时搬砖时觉得不起眼的东西还能这么玩。考完试,和一个正在为跳槽做准备,正在刷题的同事,一起讨论了一些leetcode上的一些题目。我惊喜的发现,我会从很多好玩的新颖的之前根本想不到的角度去处理问题了,感觉不错。 在工作时,我用的API里面封装的太好了,自己能上手写这些基础东西的机会不多。然而遇到复杂的综合性问题时,依然需要自己凭借对这些数据结构的深入认识,进行合理选择,适当重载。我个人认为如果一个程序员上来就和你说数据结构不重要,大吹各种框架,那么一定是他接触的内容太浅,他编程的内容太简单,因此,他的不可替代性也就太弱,他很容易被淘汰。我是希望终身投入计算机行业的,我个人觉得这些东西我这辈子都会用到。也推荐大家好好学吧! 我是往届生,所以我知道,如果你希望边工作边考研,那么你面临的困难更多。考验的不光是学习能力,还有你如何平衡生活/工作/家庭交流/情感交流/学习。大家上完班都很累,如何调整好心态去学习呢?男女朋友约会,去不去?处处是考验! 我考了两年,依然觉得内容十分庞杂。912考的知识点有的很细,有的又很浅,十分难把握住每个知识点的深入程度。同时,这几门计算机专业的基础课内容涉及的面很广,而且是基础课程,随便一个知识点都可延伸的很远很深入。所以,千万不要自认为看完了一两本书上的内容,就算是接触到了所有的知识点,其实很多知识点都没有写出来,因为这些点都是比较专业和细致的。随便举两个例子说明下: 红黑树在插入和删除过程中,可能会遇到的红红问题与黑黑问题。大部分同学都看到过书上写了对应的几种处理方式,以及示例。那么,大家是否总结过哪几种情况下节点需要重染色?哪些情况下需要旋转操作?严格控制拓扑结构改变的复杂度在O(1)有何意义及应用? 散列表的冲突解决方案中,用单向平方试探法时,装填因子大于50%时能否找到插入位置?不能的话如何解决?双向平方试探优势何在?混入lazy标志位后,能否撤销,以及如何计算此时的装填因子? 这些问题,都是关于这些基础数据结构的,并未超纲,何况并无明确考纲。类似于这样的知识点在很多在书本上是不会明确介绍,却可能会出现在考题中的。所以不要妄图掌握每一个细节和知识点,应该做的是有的放矢,统揽全局,对于不同的知识点采用不同的复习深度和精度。管理好自己的时间、精力,把好钢都用在刀刃上才能得到好结果。 再强调一下,不要只闷头苦干,要有策略,有侧重。 来考912的大部分考生,都是很优秀的,非常努力的,智商也都是够的,但为啥最后是你考上了,别人没考上,为啥呢? 没事可以多灵魂拷问下!

希望大家都能蹚过这条道,遂了自己的愿,毕竟谁还没个清华梦呢! 努力吧!希望你们都能快快上岸,我们一起聊聊过往的故事和未来的梦想!