文章来自清华计算机毕业的软件工程师ChaosYang

本文发布时,在知乎2532 人赞同了该回答

https://www.zhihu.com/question/326675268

谢邀。作为一名2005年入学本科和2009年入学研究生的清华大学计算机系毕业生,我想我可以贡献一枚来自高中无计算机背景同学的回答。

我原本并没有想过去报考计算机专业,也从没料到自己可以考到清华大学。高中的时候我对计算机一窍不通,并且也没有意识到互联网的新兴发展趋势。2005年我参加高考,应该说自己非常幸运,当年的安徽省实行的是估分填志愿的策略,所以很多我知道成绩比我好的同学反而很谨慎没有填报清华大学,让我这样一名排名并不是非常靠前同学混进了清华大学。从高一的时候由于班主任的影响我参加化学竞赛,所以当时我的第一志愿/第二志愿并不是计算机系,我是被调剂到计算机系的。当年我省进入计算机系的主要是参加信息学竞赛被保送的大牛,其他的考生可能机缘巧合并没有填报计算机系的志愿。

当年我入学的年份年级有150多名来自五湖四海的同学,其中有两位数的同学有高中参加信息学竞赛的背景,其中不乏各种国内、国际金牌的同学。我在进入计算机系之后最大的感觉是——“被碾压”,事实这个感觉从大一入学到至今,一直伴随着我。我从大一入学开始,到研究生毕业的那年为止,至少在竞赛编程上,自认为从没有超过那些在大学入学前就已经获得过金牌们的同学。直到现在我偶尔还会在以前读研的实验室群中,问那些“神童”们一些算法有关的问题。

本科前两年的侧重点是平台基础课程+少量入门的专业课,所以在大一大二计算机系的课程和其他的院系比如电子系、自动化系并没有太多不同。大一的时候系里的必修课主要是一些基础专业课,比如《微积分》、《大学物理》之类的,穿插了一些专业入门的课程比如《程序设计基础》、《离散数学》。大二的时候有《线性代数》、《数值分析》,加入了《电路原理》、《模拟电路》或《数字电路》等专业课程。

从高三到大一,学习的节奏从天天在复习巩固知识变成了要去同时学好几门知识。大学的授课和高中也完全不同,一门课一星期只有一到两节。基础课程一个教室可能有200~300名来自不同院系的学生。老师们除了上课的时候讲课,下了课是基本见不到面的,因为他们自己还有其他的职务和科研等任务。助教们大部分时候也只是负责批改作业,因为他们自己也是在校学生,也有自己的学习、科研任务。同学们也不再像高中那样,整天窝在同一个教室里学习。下了课,大家就各自散去,或吃饭,或锻炼身体,或去宿舍、图书馆自习。

大一大二的时候相对比较“公平”,因为大学物理、数学这样的课程,大部分的同学都没有基础,还算是在同一个起跑线上。大家会去自习做作业,也会相互讨论作业,也有的同学会去找助教答疑。总的来看,平台基础课程大家学的都还是比较辛苦的。

另一方面,在专业课程上,有基础的同学和没基础的同学就形成了极端的对比。对于有信息学竞赛基础的同学来说,大一的《程序设计基础》课程基本就是摆设,最多可以算是学习C/C++的语法课。他们可以几乎不用花费什么时间,就可以轻松的获得课程的几乎满分。而对于像我这样的0基础的同学,第一次进机房,学习的是怎样正确的开关电脑,怎样从Windows2000的桌面上启动VC6.0的程序。理解指针很困难,理解递归很困难,动态规划我到现在也没能够玩的转。相当一部分的同学也和我是一样的0基础,我们会花很多时间来编写课后的一道习题,并且花更多的时间研究为什么VC6.0报告代码编译不过,为什么程序运行时崩溃,为什么我的运行窗口会打印出来一大串"烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫"和 "屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯"。

“被碾压”便是在这样的课程上体验出来。但是正是这样的环境提供了一个得天独厚的空间,可能你对床就睡着一个国际信息学竞赛的金牌,无论你遇到多么棘手的编程难题,你永远不用担心没有人可以帮你解决。他们会口若悬河的跟你说“哎呀这个问题就是个XX问题,blablabla...”。你对床的竞赛大牛不在宿舍?没关系,出门走两步有另一个金牌。等到若干年后,这些大牛们毕业后又去到五湖四海,再想要见到其中的一位,可能都需要大费周章。计算机大牛,便是计算机系普通学生身边最宝贵的资源。

大一的时候系里为了不影响大家的学习,规定不得带个人计算机在宿舍,所以大家平时上机实验都会跑到系里的机房。大二的时候规定开始解禁,大家几乎人人都购买了自己的电脑。2006年的时候我从中关村花了5000多元配来了人生中的第一台台式电脑,作为出生后的最大一笔个人购物,激动的心情不言而喻。作为那个还没有智能机的年代,电脑+网络也给大部分同学打开了新世界的大门,搜索引擎,BBS,电子书,影视资源几乎塞满了我们的业余生活。大二那一年是同学们最“堕落”的时刻,系里盛行玩各种局域网游戏。我虽然游戏水平不高,但也热情高涨的用前人的经验搭建了转播平台,在业余时间组织了系里的《魔兽争霸》比赛,并客串了几回主播。

大三是计算机系,也是大部分清华工科院系的一个分水岭。因为随着平台基础课程的修完,大量的专业课程开始出现。《编译原理》、《操作系统》、《计算机组成原理》这三门大课便是当年大三学生头上的大山。个人觉的是否学过这几门核心课程的知识也是区分计算机专业和非计算机专业程序员的主要因素。清华计算机系的这几门课程,尤其的“重”,主要体现在除了课本知识上,还有分量不小的”大实验“需要学生去完成。

我到现在还清晰的记得每门课的实验场景。

《编译原理》的大实验:需要去实际的补全一个教学用的编译器,来解析一个类Java语言的源代码,以及生成和优化中间代码。这门实验是我我第一次读一个大型的代码库,也是一门让我深刻认识到什么叫“纸上得来终觉浅”。但也正是这门实验,使得我在工作中对于静态分析类的技术非常感兴趣。能在写代码时就发现并避免的问题,不用去等到代码运行时再去发现。

《操作系统》的大实验: MIT大学计算机系的操作系统实验jos(现在被本科同年级同学编写的ucore代替),需要补全一个教学操作系统的启动,内存管理、多进程、文件系统等功能。这门课程的实验使得很多的同学第一次接触Linux以及命令行程序。在模拟器中对着黑黑的窗口,人肉看内存,这门课程也使得的同学们学会了另一项奇技淫巧——在Linux中运行Windows程序。否则你正在写操作系统大实验的时候,同学找你打dota,你只能望洋兴叹“下一局”。

《计算机组成原理》的大实验:使用由清华大学科教仪器厂研发的TEC-2000A型FPGA实验箱,模拟制作一个简单MIPS指令集的CPU。第一堂课上完后从实验室领来的手提箱大小的试验箱,之后做实验的行为便被称为“烧箱子”。记得我实现简单的十几条指令,怎么也不对,后来借来别人做好实验的箱子,对着两个箱子用手拨动输入开关“人肉”调试,终于全部调通的那一刻整个人如拨云见日。

整个大三感觉速度一下被提上来,每个同学都面临着毕业之后的去路选择问题。很多同学大一大二便准备出国深造,大三的时候就已经开始准备申请;有些同学想要留校读研,也开始找系里的老师做一些学生科研项目,混个脸熟;还有的同学想要本科毕业直接工作,开始联系公司实习。准备读研和出国的同学们都开始注意自己的学分绩,为了使得自己的成绩单更加好看,每一门课都抓住尽可能得分点——作业,考试和大实验。大实验一般采用分组制,2~3人一组,每个人的实验得分很大程度上取决于小组得分。往往在课程之前,一个大牛便有好多小p奋勇而上,纷纷求抱大腿。然而大牛资源也是有限的,大牛往往被宿舍室友瓜分,或者大牛间强强联合。更多的情况下只能小p们抱团取暖。

“人都是逼出来的”——这句话作为系里的经典名言之一,是大三时大部分普通同学的真实写照。在这样巨大的学习压力之下,有些普通的小p们,被迫成长为“小牛”,“中牛”。也许他们暂时比不上那些大牛,巨牛们,但是这些经历使得他们可以成长到本来所不能够达到的高度。

到了大四的时候,同学们的生活被分成迥然不同的三种状态:读研究生的同学大部分联系好导师,并通过系里面的面试,于是已经开始了实验室坐班生活,也享受着毕业前最后的悠闲时光;出国的同学冲刺最后的刷GRE/TOFEL成绩的机会,紧锣密鼓的申请学校,找老师写推荐信,等待学校的offer,交流签证心得;直接去工作的同学开始进驻实习单位,基本上只有晚上才见人影。

大四下学期大家每位同学的去向都基本上已经确定,基本上就剩下了毕业论文这一个任务,这也是本科期间最轻松的时刻,但也是最伤感的季节。一个宿舍的同学可能很快就要分道扬镳,可能天南地北,也可能远隔重洋;心里既充满了对未来生活的向往,又对即将逝去的日子怀念不已。我们制作了自己觉得最好的毕业联欢晚会,我们把自己的回忆留在了大礼堂的舞台。

一晃本科毕业已经10年了,在清华计算机系的经历仍然使我受益,如果说有什么遗憾,那就是我希望可以再一次回到入学的那一刻,更加踏实去度过在系里学习的每一天。

一觉醒来发现有60+赞,并且看到了一些学弟(学妹们是不是不存在的?)的答案。心中既是窃喜,又在想自己这个老流氓是不是抢了他们的风头。毕竟这篇回答可能更需要的是现在在清华大学读计算机专业的体验。

但是看完在读同学的回答,很高兴自己的回答和在读的同学的回答有很多共同之处,说明我读的是真的清华大学计算机系,也说明这十多年来我所感受过的氛围一直延续到了今天。

关于感到被碾压、被暴打等心声:可能每个人都有自己的一个心灵舒适区,只有自认为自己在周围的圈子里达到前X%才是一个合理的常态。作为高中时代同学中的佼佼者,心里的期待可能更是如此。

然而如果转换一下思路——你觉得你在所处的环境中处于下风,恰恰说明你“赚到”了,你够上了本不属于自己的圈子。而更加值得庆幸的是,这个圈子里面的牛人们,和你并没有多少直接的利益冲突。和牛人们接受一样的教学内容,实际上对你来说是一种“揠苗助长”,如果你能以正常的学习态度来应对,那么这些当初给你带来巨大压力的东西,终将使你和其他没有感受过这样环境的同学带来一些不同。