文章结构
一 初试 :政治 英语 数学 专业课
二 复试 :面试+上机
三 总结
四 考研之后的后续安排
前几篇计算机考研经验是搜集了王道论坛上三跨考生经验贴
经过广泛的调查之后开始整合这些经验贴制定自己的计划,就酱紫。。。
附上我的思考过程
一、初试:
1、 政治:
参考资料:红宝书、风中劲草3本、肖秀荣4套题、TWB深度预测10题、肖秀荣时政大纲解析、风中劲草的考点、随便一本习题书(题目的作用只不过是起在看完大纲解析之后的知识回顾和巩固的作用)。
建议:大纲出来之前政治完全不必考虑,那只会增加你的时间成本。大纲出来之后你可以买本大纲解析配合网上的音频通读一遍,建议每看一章做一章的习题,大纲解析建议最少看两遍,第二遍的时候你主要看重点就OK了。最后切记肖四一定要好好研究一下。
马原的一些章节我还是选择看视频,感觉比较难记忆和理解,是马原的哲学部分和经济学部分
看一章考点做一章考题,核心考点我看了四五遍。核心考点多看几次还是很有帮助的。
2、 英语:
参考资料:新东方背单词便携版、张剑的真题解析、新东方王江涛的作文(这个最后准备作文的时候买就OK了)
参考复习建议:英语从决定开始的那天起就不要停下,好好背单词吧!在文章里记单词,比你单看单词书记单词要高效。如果你英语不是很好的话,建议你听一下新东方的课(范猛讲的真题、王江涛讲的作文和唐静的翻译都很给力),单词量不大的同学可以做一下张锦芯出的一本阅读,只要读文章就OK 了,题目就不用做了,浪费时间。(推荐这本书的原因是这本书文章中的单词基本上时大纲词汇,再就是单词重复度非常高,可以帮助我们有效地牢记单词),最后真题一定要好好研究,我建议最少三遍吧(具体方法参见新东方的视频,不介意的可以听10年的,网上有下载)。作文最后一定要好好总结出自己的模板。基础一般的同学就不要死磕完型了!!!把阅读和作文攻克了基本上就没什么问题了。
时间充足的话可以看看何凯文作文视频,没有的话就算了,毕竟后期我是一点时间都不想拿来看视频学太耗时间了。
3、 数学:
参考资料:李永乐的《线代辅导讲义》、新华出版社的《概率辅导讲义》、高数我是配合李和陈的(主要是陈的,辅以李的部分章节)、李王数学全书、李永乐历年真题(不是卷子版)、李永乐660以及教材 李的真题在前期可以结合教材看视频学,做笔记,建议第一轮可以看完一章去刷相应的全书(我当时仅仅是去刷教材课后题,但是我感觉刷全书更好)。后期我真心建议全面抛弃视频,太浪费时间了,自己看全书(当然你可以选择其他辅导书,我选择的是数学全书)+刷题才是王道。
参考复习建议:
第一、如果你基础不好或者时间允许的话一定要把课本好好看一遍。基础概念最重要,不要一开始就刷全书。你得弄清楚基本的概念和定义。多翻翻教材,多熟悉教材,弄清楚书上的定理怎么来的,怎么使用以及使用条件。例如洛必达法则使用条件,有什么需要注意的。线代和概率也是如此。如果实在是看不进去教材,就看视频吧,基础一定要牢固,没有基础,技巧等于花拳绣腿。
第二、以上推荐用书至少做并总结两遍(一定不要手高眼底,上面的书中例题占大部分,千万不要只看不做,例题一定要好好做,好好总结,实在没时间后面的课后习题可以放弃,我考了两年都没有做过)
第三、计算能力非常重要,平常一定要加强训练,切记不要见到题目复杂就不想算。算错的题目要算到对为止。不要认为这个题我算错了但我会做就轻易懈怠,会做和做对是两个层次,会做不代表你做得对。
那么有啥方法可以提高算对的概率呢?我觉得你得用个本子记录自己错误的详细信息,例如我是因为跳了步骤算错的,还是写错了个什么符号算错了,还是审题问题。。。这你得用自己的本子记录下来,并时常反思。
据统计我自己算错的原因大部分是因为跳步骤,于是我每次计算都放慢一点,最好不跳步骤,发现这样坚持下来自己做题算错的概率越来越低。。草稿纸的书写要工整且步骤分明,不要乱写乱画。
第四、后期多刷卷子查漏补缺,真题留在接近考研的那几个月做,最后再预留几套给自己当测验。
数学在考研中可以说至关重要,在复习时间中至少有50%以上的时间要花在数学上面,对于跨考的学生而言,越早准备越好,因为跨考的要自学四本专业课,可以说时间非常紧,我当时一战的时候就是因为花在数学上的时间太少,导致做的题目太少,在考场上好多题不会,复习全书+张宇高数18讲+张宇1000题+李永乐660,以及最后几套卷再加近20年真题,能多刷几遍就刷几遍,此外,复习过程中反复和全面很重要,不要抱着侥幸的心理,认为某些冷门知识点以前没考过,那么今年也不会考,这样想就错了,我第一次何尝不是吃了这样的亏。
4、专业课:
参考资料:数据结构(严蔚敏)、组成原理(唐仲英)、操作系统(汤子瀛)、网络(谢希仁)、王道论坛复习全书和真题解析
专业课我的经验就是一定要好好看课本,最少要看两遍吧,复习全书我也看了两遍,然后找本模拟题好好做做
无论是复习哪门课(包括其他数学政治英语)严格控制时间,比如 这个小时我要看多少页 这样。书主要买了教材+王道4本单科,王道模拟8套、天勤模拟8套。第一轮先看教材,看完一章再去做王道相应章节选择题,第一轮我选择不做大题。然后就开始主攻王道单科,之前教材偶尔拿来看看,因为有些知识点王道还是没有的,并且我觉得王道上也有些不是很正确的地方。我忘了我是刷了两轮还是三轮王道了,除了第一轮刷教材以外都很认真做了大题,并且第一轮第二轮都有单独做笔记,并且要把各科串联起来。有时间的第一轮可以教材和王道都看,做完一章做一章王道习题(时间不足的建议第一轮只做选择题,我就是这样)建议做笔记做成树形结构,看起来比较清晰,以后自己翻笔记也比较容易找到想要找的内容。四门课中难的主要是机算计组成原理,这门课也是我花的时间最多的一门课,估计大部分人也是认为机组是最难的,因此我建议这门课在第一轮花的时间比其他科多并且一定要仔细读好理解好(理解好最重要),去理解计算机各个部件之间(即机组每一章之间的联系)的联系。
很多人问我专业课是怎么复习的,说起来很简单:教材。如果不能把教材看到5遍,可能我的做法就不太适合你。不用说时间不够什么的,我从7月零基础开始看都没觉得时间不够。关键还是自己坚持,基础好了啥都好说。
因为之前没学过这几门课程,所以在7月份一口气把数据结构和组成原理的视频看了,我用的是严蔚敏和刘子良的,OS和网络没有看视频。如果数据结构和组成学得不太好的话看一下视频很有帮助,这两个视频对于难点讲的很清楚,比自己在那瞎琢磨效果好的多,建议买本算法笔记并且配合王道,每天刷一定的机试题目对数据结构的理解很有用。
很多人都说408很难,其实不是难,而是知识点太多,很容易忘,王道四本书当年看到最后一本的时候基本上第一本就忘完了,但是,如果你以后真的想从事计算机,这四门课是最基础的了,必须牢牢掌握, 复习的时候也需要反复的看,反复的记,把那些很容易忘记的知识点记录在笔记本上,没事的时候经常翻翻 ,408每年出题都非常灵活,只是刷题是没有多大用的,还是得回归到知识点上来,今年三道大题连在一起,前面的题不会,后面的就不一定能做出来,你如果只是刷过以前的题,但没有真正理解那些知识点,是不容易拿高分的。对于跨专业的考生,如果有时间的话,除了王道的书外,也可以看一下天勤的书,我两套书我都看过,王道的书比较精炼些,天勤的书有些地方讲的很细,有助于对知识点的理解,但是上面的习题比较少。四门课中就数据结构和组原难一些,数据结构难在编程题,编程题如果能用暴力法解决是最好的,最高还能拿10分,但是今年编程题是一道二叉树的题目,只能用递归或者栈来编写,这样的话用暴力法是无法解决的,这也是今年很多人失分的地方,所以平时复习的时候,要经常练练算法,特别是二叉树的递归算法,图的算法太难应该不会考。组原也是408中比较难的一门课,今年组原大题考的是定点数和浮点数那章的,以前就从未出现这样类型的题目,但是考的知识点确就是那些,只要你对那些知识点熟悉,解出来应该不是问题,刷题的目的是什么,就是为了能更好的记住知识点,以知识点为核心,而不是刷题为核心,方能以不变应万变。
二、复试
复试非常重要
上机考试
今年说是XP+SQL sever08+VS2010,实际上很多机器是SQL server05,我的就是。历年真题刷了三遍左右,感觉挺无聊的。考前一天在酒店睡不着只睡了两个小时,今年题目几乎跟去年一毛一样,只是多了一个表的增删查改以及一个同时显示最多最少人数的统计(本人用两个select语句完成,用union连接起来,并使用isnull内置函数设置空置问题,自行百度)。由于增删改病人会影响到小科室人数,本人使用触发器维护数据库,无需再用c#代码处理,个人感觉非常方便。推荐两个控件,一个是datetimepicker,一个是numericupdown(这控件有个VS不提示的属性Text不小心被我发现,可以用,是string格式,我感觉还挺方便),后者可以用来限制输入数字并且可以设置最大值最小值,无需像textbox那样去限制数字输入;外键输入可以直接用combobox。今年需求虽然比较多,但由于我敲代码挺快,早早就写完,但写完后有点得意就没去检查代码了,晚上回到酒店突然发现忘了写上检查单引号的代码(这个估计不会扣分)和写错了添加病人的人数限制的代码(这个比较后悔)。建议写个工具类,很方便。
对于跨考的考生而言,就算是和本专业是计算机的相比,也没有一点劣势,因此跨考华工计算机绝对是一个不错的选择。我把历年上机的试题都做了一遍(机试的往年试题和答案在王道论坛都能找到),可以说在一个半小时之内做完完全没有问题,但是前提那是你自己的电脑。今年去机试的时候,完全没有意料到机房的电脑有多差,SQL 2005 + vs 2010,在上机的时候,有的人的电脑死活都连不上数据库,换了好几台电脑,都没心情做了,此外vs2010是全英文的,和你电脑里的VS完全不是一回事,排版很乱,找个控件的属性都花了我一点时间,最坑的是机房的输入法,那是微软自带的,当时一边上机,心里一直在骂,不知道骂了多少个草泥马。而且今年的题目还比去年多了一个小题,多了一个表的增删查改,也不知道出题人是怎么想的,最后一个统计也没看懂是什么意思,最后两个半小时下来没做完,对输入框的代码没有检查,健壮性没有写好。最后只有86分,总成绩从并列第二掉到了第四。
机试我买了两本教材,王道的《计算机考研机试指南》和《算法笔记》,这两本书都可以用用。每天先看机试书,把例题吃透,然后刷OJ。上文已经提到算法笔记这本书可以在初试阶段就开始用,对数据结构提高很有用。
刷机试的时候,最蛋疼的就是debug了,在这里写几点debug的经验:
1.我建议那种比较长的代码最好写完一个模块就设置断点,调用系统堆栈看看自己的程序是否按照自己的想法来实现。
2.最好用文件读入输入案例,把输出结果写入另外一个文件。这样调试的时候比较方便,节省时间。
3.有时候实在找不到自己错在哪,我建议可以用牛客的平台试试数据(考研机试题上面都有),牛客可以看WA的详细信息,但我不推荐在那个平台刷机试题。那个平台测试案例比较水,只是单纯用来看WA详细信息用的。
4.如果以上办法都没有找到错在哪里。。请在群里跟大佬们多多交流。。
如果AC了某个题,感觉自己写的太复杂,这时可以去排行榜看看大神的代码(九度OJ可以看,其他大多不能看,提交榜点语言那个链接就行了),可以从大神的代码那里学学他们怎么写的。
此外强烈不推荐题目没进行深度思考就跑去百度查答案,实在是没思路的时候再去查,代码一定要自己实现,不要当复制粘贴党。
英语口语+面试
给我抽两个题目,第一个是介绍本科学校和院系、第二个是研究生计划,让我说五分钟,我都有准备,但是准备的话不多,我只讲了1-2分钟,估计得分不多吧。专业课问题抽三个,分别是1.死锁概念 2.病毒检测技术 3.寄存器和cache区别,其中第二个不会,我只能瞎扯说应该有病毒数据库,可以从系统根目录开始遍历扫描,吹了一段。
第三天公布成绩,往届据说是总分成绩最高者先选择导师并会贴出导师名单,但是今年没有,所以我建议:一定要去联系导师!!!
第二天早上是面试了,本以为会问些往年问过的问题,我还特意准备了一下,没想到今年换方式了,先让你从很多信封里面抽一个英语问题,然后再抽两个专业问题,由于我是分组第一个,可能运气比较好吧,第一个问题是说说你的研究生计划,用英语回答,幸亏这个我之前有准备,当场就直接背下来了,抽到的两个专业课问题也比较简单,第一个是TCP协议的可靠性是怎么实现的,第二个是回溯法原理,都是408的知识。本以为回答完了之后应该是专业课问答了,没想到有个研究生还是博士生学生在旁边,又尼玛问了两个英语问题1)你学过那些课程、2)哪门课程最重要,它讲了什么,这两个问题就是我的自由发挥了,不知道面试的老师听没听懂,我知道到当时说了好多个额.....额.....额........,,答完这两个问题之后,旁边的一位教授问了个数据结构的存储结构有哪些,我就把四种存储结构说了一下,还问了我什么是第三范式,我说我跨考的,只学了SQL语言,没有学过范式,后来就没有问了。此时面试已经进行了8分钟,有位教授说,差不多了,那就叫下一位吧,我不知是小组第一个还是什么原因,总感觉最多五分钟不到,后面的人可就没我那么好运了,有的抽到的问题特别难,有的人面试还超过10分钟的都有。
跨专业的来说,最担心的莫过于面试了。虽然我初试分比较高,但还是相当担心,因此我的跨度实在太大了…
下面讲讲我的心得吧:最最重要的是找出自己的优势以及变现出强大的信心。我在考前曾去找过以为东大最好的方向的一个导师,他跟我说我知道你的专业基础会比较差,但是打动他的有三点:第一是在一个时间只联系一个老师,这对老师很尊重;第二是数学成绩很好;第三就是你对自己非常有信心。(最后因为觉得自己不适合那个方向,真对不起那位老师,汗一个…)只要是跨专业的,老师一定会问你关于这方面的问题,比如为什么、怎么办之类的。这是强大的自学能力和信心是不二法宝,而这是你确实具备的。
老师没问我专业方面的问题。毕竟想要为难我们跨专业的考生是太容易了,随便来个问题都能问倒,所以一般来说老师不会问。从我们那当天面试的情况看,如果是离得比较近的专业跨过来的(数序、信管、电子等),老师会问你本专业的一些问题。实话实说就行。
英语口试之前最好多练练口语,听一听听力(= =我感觉大多数人应该坚持不了练口语和听力),最起码让自己的自我介绍那些东西说起来不像是背书的感觉。。
面试的时候要表现的自信点,不知道的东西最好也别停留在我不知道,你要说出你对这个东西的看法。要了解老师看重什么能力,要了解自己报考的方向。。
项目经验很重要,科班出身的没有做过一点项目的话,面试有可能被怼。。跨考生被怼的程度可能要低一点,但如果你有项目经验,老师对你看法就会不同。可以参考丁神的经验贴里,他做过的项目。。总最好之要有项目经验。。
三、总结
报名的时候多关注下名额,学硕有多少,专硕有多少,这些要清楚,今年报学硕那些人不知道怎么想的,只有三个名额都敢报,虽然说最终扩招到了9个,但是还是刷掉一大批人,如果报专硕的话就不会这么惨了。如果求稳就报软件工程的,因为软工每年都收不满,初试过线基本上就稳了,还要收调剂生,但是毕业后其实计算机和软件查不了多少,起点都是一样的,找工作也在同一水平线上。
最后还要强调一点,不要放弃一丝希望,坚持到底,山重水复疑无路,柳暗花明又一村。
四、考上研究生之后续安排
0.程序设计
《c++primer》这本经典书是c++入门的最好选择。
《The C programming language》这本书是c语言作者写的,书上的练习题做完很有收获,而且它的附录我觉得非常好,从c语言设计的角度讲解了很多内容,举个例子,一些笔试题里经常出现的一些复杂的声明,都在附录里有详细的解释。
《effective c++》《more effective c++》《c++沉思录》,这几本书也很经典,一些面试题都可以在这里找到答案,看起来也很快,几天就能看一遍。
《深度探索c++对象模型》,这本书也是非常重要的一本书,看完对c++的底层机制理解更深刻了,看懂这本书校招很多分析代码的c++笔试题都迎刃而解。
《STL源码剖析》,我觉得这本书也很重要,面试的时候常见的c++问题都能从这本书找到答案,比如vector底层原理,map和set底层的红黑树,迭代器,容器的内存分配等等。看这本书的时候在网上下载了侯捷的SGI STL源码注释版,配合着书看效果更好。
《设计模式--可复用面向对象软件的基础》这本书是设计模式的经典之作,里面的例子都是c++代码,很容易看懂。
《设计模式之禅》这本书相比上一本更偏重实践,里面有很多具体的实现方式。
在实习的时候看了《mysql必知必会》《高性能mysql》,因为开发业务代码需要熟练掌握sql,还要对数据库性能优化有一定了解。除了关系型数据库,还要掌握一些诸如Memcache、Redis等Nosql数据库,我看了《Redis设计与实现》,结合源码学习redis的底层机制,对工作有很大帮助。
1. 操作系统
操作系统阅读了《操作系统--精髓与设计原理》,结合清华大学的公开课(http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about)学习。这门公开课的配套实验非常好,要实现一个名为ucore的linux系统,作业更多时候是读很多代码,自己填写部分函数,所以也相对比较容易,通过动手实践有很大收获。还可以通过实验掌握gdb、valgrind等一些调试工具、提高c语言的编程能力,加深对操作系统的理解。在做作业实现ucore的过程中,我还参考了《深入LINUX内核架构》。
还有《深入理解计算机系统》,同样看华盛顿大学的公开课CSE 351 《The hardware/Software interface》( http://courses.cs.washington.edu/courses/cse351/16au/index.html)并完成实验作业,这门公开课的实验就是《深入理解计算机系统》前面讲到的8个实验,我觉得很有挑战性,印象最深的第二个实验二进制炸弹,需要反编译二进制代码并找到秘钥,为了做这些实验,又学习了很多知识,比如看了王爽《汇编语言》、《程序员自我修养--链接装载与库》,阅读intel IA32手册学习函数调用、保护模式、用户态和系统态的切换等。总之,通过这些实验,能掌握很多系统底层的知识,并且也能提高自己的编程能力。还有《UNIX环境高级编程》,这本书是风华哥给发的,这本书我是编程遇到问题查阅相关部分看的,带着问题看书理解的比较深刻。
2.计算机网络
看完了《TCP/IP详解,卷一》,阅读这部书使我对计算机网络有了更深入细致的理解。看书的过程中,自己也通过参考网上的资料实现了一个抓包分析的小程序,把数据包一层一层按照书上讲的协议分解出来,加深了对网络原理的理解。还有《UNIX网络编程》,看这本书的时候阅读了一个简单的web服务器代码(http://lifeofzjs.com/blog/2015/05/16/how-to-write-a-server/),读代码的时候遇到不懂的地方就看书上相关部分。然后读了《深入理解Ngnix-模块开发与架构解析》这本书,结合nginx源码看,了解了Nginx的原理,对高并发的理解很有帮助。
3.编译原理
学习了公开课(https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about),做作业实现一个叫Cool的编译器。
阅读《自制编程语言》,这本书实现了2个编译器,一个是无类型的crowbar,一个是静态类型语言Diksam,通过阅读这些源码,对编程语言底层的机制有了更深入的理解。还有《编译器设计》以及龙书,都是在做公开课作业和看《自制编程语言》时参考其中的原理讲解。
4.算法
看了coursera上的算法课(https://www.coursera.org/learn/algorithms-part1,还有个part2),配套教材是《算法》作者是sedgewick(这本书还有个配套网站http://algs4.cs.princeton.edu/home/上面有很多资源,还有内容勘误,书上的错误会对理解造成障碍,我觉得看书的时候尽量找到勘误把错误修改了再看),这门课的作业也设计的非常好,做完了之后收获很大。而且《算法》这本书是用java实现的算法,api很清晰,尤其是讲排序时编写代码用动画展示排序过程,对理解算法很有帮助。这本书我觉得比《算法导论》更容易读。
5.读源码
侯捷在《STL源码剖析》序言中写道:“追踪一流作品并于其中吸收养分,远比自己关起们来写个三流作品,价值高得多”。我深受这句话影响,看了一些优秀的源码。除了上面讲过的那些源码,还有网上看到别人推荐的好源码,比如学习网络编程时看了linux2.6内核中的select,epoll的代码实现,再比如google的轻量级数据库leveldb的代码(https://github.com/google/leveldb)。还有深度学习库Caffe源码(https://github.com/BVLC/caffe),以及mxnet源码(https://github.com/dmlc/mxnet/)。推荐一个源码阅读工具Understand,这个软件可以画出函数调用关系图。遇到不懂的代码就自己写写调试一下,在网上找别人读源码的笔记看,可以用xmind画思维导图把源码的架构画出来,可以帮助理解。我觉得读源码对提高自己编程能力有很大帮助,读源码过程中经常会学习到很精妙的设计。
看书的过程中会遇到不懂的,我觉得不懂是因为有些背景知识没有掌握,我会先跳过继续看后面,有时候把后面的知识看了就懂了前面的,或者在看其他书的时候会突然明白了之前看不懂的地方,所以我看书的时候遇到不懂的先放下,以后再反过来看之前看不懂的地方,很多书都看了不止一遍。看书自学需要大块的自由时间,看视频效率比较低,我逃了研一的大部分课加上导师管的松才完成上面那些内容。其实那些公开课最大的帮助还是在于做课后实验,如果时间不充裕可以把课件看看只做实验。学习总结很重要,《暗时间》里有句话“书写是最好的思考”,我深以为然。我有个喜欢交流的同学,我们经常会把学到的给对方讲,有的时候会遇到自己理解的盲区或者有偏差的地方,讲着讲着就卡壳了,这时候再去看资料,直到给别人讲懂了才算自己真的懂了。
网友评论
c++有几本,我感觉讲的特别烦, 还没有其他好看。