Skip to content

Latest commit

 

History

History
145 lines (78 loc) · 22.2 KB

清华计算机系考研须知.md

File metadata and controls

145 lines (78 loc) · 22.2 KB

清华计算机系考研须知

这个文件是我考清华计算机系的经验贴,暂时存在ds-lab这个repo里面。

我希望准备考清华计算机的同学能耐心阅读完这篇文章,在心里想清楚是否确实要报考清华计算机系。我期待有实力的同学能和我一样在清华计算机系做研究,但我也不忍心看到有天赋的同学因为信息差做出了误判而铩羽而归。

免责和独立性声明

  1. 这个文件只关于清华计算机系本部学硕的考研,和任何其他学校、和清华的其他任何院系都没有关系。
  2. 我从未上传过任何清华本科的期中期末题、上课录像、PPT、教材PDF、912考试真题、机试真题,尽管您可以从stellarkey/912_project: 清华大学计算机系考研攻略 Guidance for postgraduate entrance examination in Department of Computer Science and Technology, Tsinghua University (github.com)中找到它们。
  3. 我在这个文件中不会涉及复试问到的任何题目,尽管您可以从其他的经验贴中找到它们。
  4. 我没有报过任何考研机构的班、不在任何考研机构里工作或投资、和任何考研机构都没有利益关系,尽管您可能会从它们的一些群里找到我。
  5. 考研有风险,报考需谨慎,感谢你阅读这个文件,但我不对读者的报考选择和复习安排负责。

初试考试情况

  1. 北京地区存在压分的现象。主要体现在政治主观题、英语主观题上,此外数学的步骤分也会扣得比较狠。因此不能简单地将其他省的成绩和北京地区的成绩进行比较。

    尽管参与竞争的每个同学都会面临这个问题,但这也意味着有可能会出现卡单科线的现象。政治、英语都应该尽可能达到60分以上,复习的时候尤其需要注意避免偏科。前车之覆,后车之鉴!

  2. 考研的阅卷相对来说比较随意。和高考不同,考研的阅卷有着很大的不确定性,尤其体现在英语作文等主观项目上。因此,虽然至今为止没有初试第一被刷的先例,但任何情况下都不要以初试第一或者有挑战性的分数(如420、430)作为自己的目标。

  3. 自命题科目难度平稳、风格特别。清华计算机的自命题考试(912)目前来说,难度和计算机统考(408)相仿,但命题风格有很大差异,比较接近清华计算机系本科的考试风格。912的命题风格以理解为主,通常不要求学生有较大的知识记忆量;但理解层次不够很容易无从下手。

    除非本系的同学,否则都应该至少熟悉一下往年真题,以免被打个措手不及(早年912分数普遍低于408的主要原因)。另一方面,由于清华的老师其实并不是很重视912的命题,所以912的命题是很规律的,做往年题总是可以押中一些真题的命题角度。

初试竞争情况

  1. 竞争相对较小。目前,自命题学校无法调剂到统考408的学校。因此,相对于同一水平的北大叉院、信科,清华计算机系由于912的护城河作用,竞争激烈程度较小,分数线通常会低一些。(清华深研院相比同一水平的软微,分数线也会低一些)

  2. 纯自学条件下,总体复习成本和11408相近。但由于辅导机构会倾向于深耕统考科目,所以在使用辅导机构的条件下对比,复习成本会显著高于11408。具体复习时间和个人情况有关,对科班同学来说,主要差别在英语、数学上;我的建议是至少提前6个月开始初试复习,以防最后因时间不足而焦虑,引发心态危机。

    考虑到越优秀的同学对辅导机构的依赖度越低,所以对于名校科班的同学来说,综合上述两点,清华计算机系的初试竞争压力是低于北大对应院系的。

  3. 可能存在软性的本系保护。目前存在一定数量的本系同学会参加考研,这些同学如果总分较低,可能会一定程度上影响单科线,通过单科线卡掉几个高分让他们有机会进复试。这种情况既不能证明存在也不能证明不存在,应对它的最好方法就是不要让自己有单科掉队。

初试复习用书

  1. 数据结构前,可以看徐明星《程序设计基础》入门。《程序设计基础》在清华是《数据结构》的先修课,这门课可以看做是C++语言学习加上一小部分的编程能力训练。如果零基础的同学打算考清华计算机,可以先从这本书开始打基础。

  2. 数据结构必须看邓俊辉《数据结构》。邓俊辉《数据结构》和其他经典的数据结构教材相比,无论是授课风格还是知识内容上都有显著差异,且912中《数据结构》占比远高于408,所以邓俊辉《数据结构》为这门课复习的必修课。这本书在学堂在线有网课,建议去听;但网课似乎版本较早,建议去邓老师主页上下载新版本的PPT和代码进行学习。此外这本书的勘误也可以在主页上找到。

    不建议看《算法导论》。《算法导论》的叙述风格太过数学了,对于计算机系的学生来说不那么必要。整个清华计算机系作为工科院系,都是以工程理解为主的。邓俊辉《数据结构》自带一本习题册,虽然题目风格和考试不太一致,但还是值得作为思考题练习的。

    《面向对象程序设计》和《离散数学》在清华的课程安排上是《数据结构》的先修课,但从考试来看并不需要学这些,性价比非常高。其中和《数据结构》关系最密切的是《离散数学》中的图论部分,如果时间多想了解的话看一下那一章就可以。

  3. 除数据结构以外的三门,都可以不看教材,依托清华PPT去做复习。这三门课的教材用的都是比较厚的英文版(当然也可以买到翻译版)教材,清华本科的学生也不会全部精读。实际上期中期末考试、以及考研的命题点基本都在PPT上。教材分别是特南鲍姆《计算机网络》(龙书)、《软件硬件接口》、《操作系统精髓与设计》,可以买翻译版当工具书用,时间多的话可精读。

    一些市面上的其他经典教材,比如袁春风《计算机组成与系统结构》《计算机系统基础》、《深入了解计算机系统》、《自顶向下方法》等,也可以作为参考,但性价比会边际效应递减。如果从备考初试出发,基于PPT复习已经足够,购买教材已经绰绰有余,不需要再买其他经典书了。

  4. 对于操作系统,ucore实验指导书建议阅读,并建议完成ucore的实验。尽管近两年都没有在912考ucore的代码题,且本系学生操作系统课的实验主战场已经转向rcore,但不排除这种可能性。另一方面,ucore的实验也能让同学们对操作系统的理解加深一个层次。

    由于不一定会考,所以如果时间太紧迫可以放弃。

  5. 作为练习,可用王道或其他机构的408辅导用书。如果912的真题不能满足你的刷题需要,可以买408的辅导用书作为练习册。注意是练习册;当知识点解释冲突时,按照标准>PPT>教材>练习册的规则处理。比如在计算机网络中,教材更新可能慢于PPT,PPT更新又可能慢于RFC(网上的PPT不一定是最新本系使用的),而辅导机构编的练习册不但更新可能非常慢、编纂过程中也可能收入错题。

    对于绝大多数同学来说,适当的练习保持手感是有益的。

初试考研辅导

  1. 邓俊辉《数据结构》课程建议看完。邓俊辉的《数据结构》在清华计算机系课程中算是首屈一指的教学标杆,我的四年本科生活没有几门课的教学水平能达到这个层次,非常推荐。

  2. 最好的自学网站:CS自学指南 (csdiy.wiki)。这个网站对跨考和本科没有学扎实的科班同学都有非常巨大的帮助,归纳总结了很多经典的公开课程(后面就不列举了,自己进去看)。需要注意的是不要贪多,重点复习初试会涉及到的部分,以及打算在复试材料中设计的部分(下面复试部分会说)就可以。

    我认为如果读清华计算机的硕士是合格的,那起码要有一定水平的自学能力。现在供给大家自学的信息来源很丰富,足够让跨考的同学通过自学达到清华计算机本科的平均水平(也就是我这个水平)。如果对学科知识体系有比较清楚的理解,实际上可以几乎完全放弃应试(即不做题),也能拿到一个不错的分数。考虑到初试只是个门票,并不需要追求更高的分数。

  3. 王道等的大机构912定向班,性价比不高。除非有“报班不足恐惧症”,否则大机构的912定向班性价比非常低。因为912的报名人数过少,且许多选择报考清华的同学都具有较强的学习能力,所以912定向辅导对于考研机构来说收益很低,反馈的结果就是912定向班的性价比很低。

  4. 新威考研有一个专门面向912的培训,计算机工作的压力大导致复习时间不足的话可以考虑。新威考研的912主讲张威老师(威神),本人是通过退役大学生士兵计划以316分上岸的清华,并非正牌科班出身,对四门学科的知识体系理解有限,很多时候无法传授给学生高视角、粗粒度、深层次的知识理解方法,且因为小机构人手不足,难免有忙不过来或忙中出错的情况。但瑕不掩瑜,这已经是市面上比较好的912付费培训了。它可以起到一定程度上的提分作用,但从知识体系理解上,能教给学生的上限也很低,威神的时间和身体状况就把上限定死了。

    1. 如果因为本科(科班)或工作(计算机相关)的压力大,导致考研复习时间不足的情况,可以考虑报新威考研的课程。因为这个时候考研复习节约的时间用来做了对考研上岸来说性价比更高的事情。
    2. 如果本科课程压力不大或者脱产备考的同学,或者跨考的同学,或者从事计算机无关的工作的同学,感觉到考研时间不足、初试过线有危险的话,都建议去考深研院(同样是清华的牌子,不比本部差,但分数线比本部低)。
    3. 如果考研时间充足,建议好好打下扎实的学科基础;报班不是不行,但一定要自己刻苦自学。名校科班通常能轻易超过张威老师对四门学科的理解深度,其他同学如果想要考清华计算机系,只要不认为现在316还能上岸,也都应该抱有超过张威老师水平的觉悟。
  5. 可以加点考研群,但群内交流一定要控制。除了本系同学以外,其他同学都存在信息差问题,经常需要加考研群。然而,在考研群可能会存在以下现象:政治局势夸夸其谈、社会热点重拳出击、物化女性矮化男性、煽动焦虑损人利己、用同学朋友秀优越、靠几个名词装大佬、亲美精日大放厥词、资本信徒上蹿下跳……因此,非常建议对自己有充分的控制,不要在考研问题以外参与考研群的讨论。有些辅导机构会负责地做群内的管理,并督促大家每天打卡,对自己的自制力没有信心的同学也可以考虑。

    另外,群里问问题的时候建议讲清楚自己有困惑的地方在哪里。免费答疑是出于兴趣做的,没有包讲包会的责任。比如如果问我的话,我不会以教会知识为目的,只会以引导自学为目的,如果引导不动,我不可能追着喂饭。

  6. 押题卷是买心安。一些同学有“刷题不足恐惧症”,为了让自己安心可以考虑买押题卷。但其实押题卷能押中题的基础是,912命题比较随意,往年题有很多能和新题相似。其实如果自己做了912的往年题,稍微思考一下,肯花点时间设计,每个人都能出押题卷。

  7. 如果打算报班,曲线救国的方法是报408的培训班。408有非常成熟的辅导培训体系,而且可以达到的上限也远高于目前已有的912培训;所以可以考虑报408培训班曲线救国,再通过自学差额知识点转成912。这种做法的理论基础是408和912命题难度大体相似、知识范围基本相同,408转到912的gap不大,转换需要的额外时间不多;而且给知识体系打一个扎实基础比初试912拿下高分更有意义,未来在研究生阶段更容易触类旁通。

    但是,必须要注意408和912的差异性。之前很多同学按照408复习912结果成绩很低。如果要走曲线救国路线,则一定要记得自学PPT和做往年真题降低信息不对称。

复试考试情况

  1. 初试过线,就是回到同一起跑线。清华计算机系的初试是入场券,是门票,过了初试以后重新回到同一起跑线上。深圳相对来说好一些,但也不能想当然、绝对化。这个是每个跨考的同学,或双非科班的同学都要面对的问题。

    考研辅导机构喜欢做数据统计,试图说明初试高分对录取有作用,这个逻辑是值得怀疑的:因为名校科班的同学本身初试分数较高的可能性就比较大。深圳的情况看这个逻辑还能一定程度上成立,贵系这边基本可以忽略不计。实际招生的老师,也就是同学们未来的boss,可能并不了解或并不在意初试的成绩,甚至不一定知道初试的满分是多少。跨考或者双非科班的同学,在保证自己初试能够过线的基础上,应该好好去准备自己复试的时候能拿出手的材料。

  2. 机试命题随意、难度随机、风格多变。机试题大多是清华本科的竞赛选手设计的,难度非常随机,有可能大家都能做对,也有可能几乎全都0分;命题没有范围,各种领域的问题都可能会出,具体可以参考往年。如果要追求机试拿到高分,则通常需要有竞赛选手背景,或者需要按照竞赛选手的标准做训练。

  3. 面试材料非常重要。面试提交的材料(简历、个人陈述和面试现场的PPT),是同学们需要准备并且可以控制的内容(老师如何提问则是无法控制的)。通过灵活地组织展示材料,可以更好地展现自己的真实实力。

    搞明白怎么把自己的实力完全展示出来是很重要的,这不属于通过面试技巧骗分。

  4. 目前来看,被刷还有校内调剂机会。虽然有一定的一志愿保护,但学硕复试被刷(甚至初试被刷)还是有机会在网研院或者深研院调剂上岸的,清华的其他院系(比如集成电路、精密仪器)也有希望。

复试竞争情况

  1. 本系同学有绝对竞争优势,但目前很少。清华计算机系自己的同学,因为课程压力非常大,应届过初试难度较大。而如果是非应届,通常也不愿意花一年时间在考研,通常就选择就业、出国、保研较低层次的院校、保研到其他系。所以目前为止,本系同学还非常少。

    一般而言,本系同学如果参加考研并且过了初试线,基本都必定会占名额,不过数量一般不会超过3个(总共大约12个名额)。因为清华计算机系的同学一般都是当地高考状元或者集训队保送选手,所以复试名单出来之后,就可以借助搜索引擎确定被预定名额的数量。

  2. 相比于本科学校,个人实力更重要。现在的情况看,非科班的清本被刷概率并不小,而且由于清华的本科课程压力非常大,用来学计算机的时间更少,清本跨考和其他学校跨考相比甚至可能居于劣势,更不用说北本了,课程压力大还没有就近优势。

    所以,目前并不需要担心清北本挤压的问题,211一样有机会上岸;双非比较难,需要个人更加刻苦的努力。

  3. 跨考需要达到科班的水平,才能对等竞争。硕士只有三年,老师等不起跨考的同学进来之后继续学习再兑现天赋,跨考和科班是站在比较统一的起跑线上竞争的。这是一种相对公平的做法,但也要求跨考的同学付出更多的努力,在即战力上达到科班的水准,至少是普通学校科班的水准。

    一些同学的经历很丰富但分数不高,可能和材料的组织有关。但跨考的同学头疼的往往是材料的数量本身很少,巧妇难为无米之炊。可以拿得出手的材料包括论文、专利、竞赛、实习、毕设课设、个人项目等,一般的名校科班总有七八个拿得出手的课设,实际上很多名校科班的同学都会把不那么重要的去掉或略过以突出重点,而跨考的同学需要自己找补。辅修或者双学位是比较可行的,如果做不到的话就只能自学的时候自己做项目了。

    此外,不要轻信其他人对复试材料的肯定,一般除非太过朴素的,师兄师姐都会给以鼓励,更不用说考研辅导机构了。

复试复习资料

  1. 几乎所有收费的复试辅导性价比都很低。复试群里有免费的模拟复试和信息分享,可以部分解决信息不对称的问题。复试材料的展示和组织,也是可以找师兄师姐、老师、研友等帮忙修改完善的。和这些免费服务相比,收费的辅导除了让自己看起来比较富婆以外,没有什么额外的好处。

  2. 机试需要一定的算法题训练。机试存在每年会变化的保底分数(第一题通常是送分的签到题,以及后面两题可能有的暴力分),达到保底分数就说明能力过关。达到保底分数通常阅读胡凡《算法笔记》,适当地针对基本算法进行复习,加上考试的时候心态平稳就可以。练习可以考虑

    可以提前参加CCF CSP或者PAT等考试感受考试氛围。机试拿不到保底分数会比较危险,这个时候如果有较大的项目或竞赛获奖佐证自己的编程能力(并在面试中应答自如),可以挽回一些印象分。

  3. 跨考的同学最好自己做一些高水平的课设级项目

    在此重点推荐Salensoft/thu-cst-cracker: 清华大学计算机系课程攻略 (github.com),由清华计算机系本科生整理的清华课程体系,包含了大量的清华课设。可以选择自己喜欢的方向去做,也可以在初试复习的时候,顺便做掉那几门课的课设。

    传统上的三件套是CPU、OS、编译器,名校科班基本都做过,是课设中相对分量较重的项目。计网的软件路由器是可选项目。三件套做出来能极大提高同学对对应学科的理解,兼顾912的初试,三件套的价值是OS > CPU > 编译器,最好能三件套都做,作为跨考同学,做个青春版也能展示出一定实力。青春版大概相当于,照着经验贴做ucore lab,华科平台上画的、不带任何附加功能的五级流水MIPS32,用lex/yacc写的没有任何优化的C语言编译器。跨考的同学大约需要2-3个月完成这些项目,想要展现出更多实力可以在OS或者CPU上加内容,做深入、有东西可讲、不容易被问倒,比做了很多“手写数字识别”级别的简单项目有用的多。虽然编译原理也很有用,但是和初试没关系,所以不那么建议在编译器上深入做。

    我正在写一个数据结构的实验框架也就是这个repo:ClazyChen/ds-lab: A series of experiments of subject Data Structure for kaoyan-exam students (github.com),补全4门912课程的实验体系(因为我只有闲的时候才会写这个所以更新很慢)。我的设计上,数据结构实验的难度及代码量应该和三件套之一持平,面对邓公也有很多东西可以讲。

    如果是对计算机零基础的跨考同学,在一轮复习的时候可能吃不消这个难度的课设,我建议至少提前一年半来准备考研。一轮学912的四门课的时候,经常打开编辑器写一些代码,跑一跑课上讲的算法,即使只写一些小品,也能对理解有不少帮助,并锻炼到自己的代码能力。工程学科最不好的就是停留在脑子里,一定要多动手。没动过手的912就算考到130分,也只是空中楼阁。或者选择初试占比更高的地方,提高自己的上岸机会,比如软微、交大和浙大。

  4. 准备复试材料时,在精不在多。这一点跨考的同学需要做准备,很多科班的同学也要引起重视。

    名校科班水平的课设,只能证明自己基本能力是过关的,但没有出彩的点;即使展现了二十多个,也只能说明学习新技术比较快而已。为了能够展现自己和其他竞争对手相比的独特优势,一定要至少专精其中一个方向;比如在三件套中的一项里加东西(当然,更建议根据自己的兴趣选择深入的方向)。虽然如果选择专精的方向和同一届的本系同学重合了,有可能会被抢掉该方向的名额;但是有一项专精的项目至少有如下好处:

    1. 展现科研积极性。表现自己确实对科研工作有热爱,并且付诸实践在做一些研究的。
    2. 展现阅读并复现论文、文档或开源代码的能力,这是必备的科研素养。
    3. 对复杂工程的掌控能力。计算机是一门工程学科,很多idea不能落地的原因都是工程难度太大。有过复杂项目的开发经验是非常关键的竞争力。
    4. 在一个方向了解深入,就有机会提出创新点。不需要是真正验证过可行的思路,但在复试材料里写一些想到的创新点,可以展示自己是有思考的、有创新能力的。
    5. 引导发问从而控制局面。当材料里面将大片篇幅和重点笔墨都放在一个项目的时候,可以想办法引导老师围绕相关问题提问,从而把面试走向守在自己擅长的领域里。只要真的做的好,老师肯定会很感兴趣的。

面试注意要点

想看面试注意要点?进了面试直接群里问。考研最忌讳的就是瞻前顾后,不要在进面试之前就担心面试的事情。