综合编程

博士、硕士和本科,到底有什么不同?

微信扫一扫,分享到朋友圈

博士、硕士和本科,到底有什么不同?
0

记得我当年开始读研的时候,不知道因为什么原因,我们一小批硕士生硬是被安排进了博士宿舍楼。我当时住的是一号楼,大概是清华现存最古老的宿舍楼之一了。

这是一个异常幽静的所在。楼门前古木参天,枝繁叶茂,似乎比楼层还高。在枝叶掩映之下,即便是在夏日的午后,都让人有说不出的凉爽。一号楼就像深藏于丛林中的古堡,静静地不发出一点声响。如果无人引路,你根本寻觅不到它的踪迹。

一号楼的幽静,似乎是根植于它的一砖一瓦之中。从它门前经过,你都不忍心大声说话。我在那里住了两年半的时间。在我印象中,即使是在重大节日,即使是在人们疯狂地追逐世界杯比赛的日子里,我也从不曾听到楼道里有人大声地喧哗。博士们就是这样安静。

和我同住一个宿舍的博士,就是这样安静的一个人。他少言寡语,更甚于我。再加上他每天早出晚归,我们一天也几乎没有机会说上一句话。我几乎不记得他参加过什么社交活动,整日里只是忙于导师的项目和自己的论文。我刚住进一号楼的时候,他已经在那里住了三年了。当我离开清华的时候,他还在准备继续他的学业,出国深造。

以上就是清华博士给我留下的第一印象。说实话,我对于那些能将自己的全部身心都投入到研究事业中去的人,怀着深深的崇敬。有时候,我甚至对他们很羡慕,可以一心一意地做一件事,不用考虑现实世界的复杂。当然,如果没有发论文的那种外来压力,就更好了。

相比本科生和硕士生来说,博士们是如此的不同。他们在毕业后,多半会选择留在各大高校或科研院所,终身从事研究工作。

而本科生和硕士生在毕业后大部分都将踏入社会,步入同样的职场。他们在同样的职位上工作,一起合作,彼此竞争,在几乎同样的起跑线上谋求自己的发展。

那么,你如果还是一名在读的大学生,在是否考研这个问题上,你会如何选择呢?而如果你是一个互联网的从业者,在为公司的某个职位进行招聘的时候,你是更喜欢本科生还是硕士生呢?他们到底有什么不同?

清华大学的阎学通教授曾经说过, 本科是素质教育,而研究生教育是专业教育
。这是研究生教育和本科生教育的最主要区别。

大学本科阶段,正好是学生们从未成年到成年人过渡的阶段。所谓素质教育,就是要让每个人在一个良性的环境中完成这个过渡,开发心智,并接受社会的规则。记得我在读本科的时候,有一次一位同学对我说,他来到大学才发现,周围的人都这么nice,从来不像高中那样,男生们动不动就打群架。其实这就是大学本科教育的重要功用,人们逐渐褪去了原本与生俱来的野性,被赋予了更多的社会属性。

而研究生教育则不同,它讲授的是专业知识,以及做研究的方法。我读研时所在的实验室,当时有一位从美国前来做学术交流的华裔教授,他有一句话是这样说的:首先要知识广博,然后在某一方面又特别深入,能体现出你的专业性,这——才叫博士。

硕士介于本科和博士之间,但是是被划入专业教育的范畴的。这也就意味着,在本科和硕士之间,存在着一些差别。这些差别,我们可以统一归入到研究生教育和本科教育之间的差别里面去。

首先,研究生的专业划分更加细致,涉及到的专业知识比本科生要更进一步,并可能接触到一些学术前沿的东西。

通常一本教材或者技术书籍里面,Advanced的部分可能本科学习就不会涉及,但研究生阶段则需要了解。比如,计算机专业的本科生,在算法课上会学习常规的算法,像查找、排序之类,常规的数据结构,像栈、队列、树和图之类。这些都是算法的基础。而研究生阶段的算法课,则会引入更多的算法分析,还要涉及一些计算复杂性理论,讲清NP与P问题的本质。

再比如,在计算机网络课上,本科的课程可能会讲授TCP的三次握手、滑动窗口、流量控制,有些学校可能还会讲解慢启动和拥塞控制。而研究生阶段则不仅要知其然,还要知其所以然,比如三次握手到底是为了什么,拥塞控制背后的原理为什么是加性增加乘性减少,甚至需要你去思考有没有可能设计出比TCP更好的协议。在这个阶段,你还可能需要去阅读一些RFC,以及相关的论文。

当然,专业性上的差别并不是主要的,更重要的一个差别是,本科学习是限定性的,而研究生学习是开放式的。

本科在某些方面还是跟高中类似,学生们阅读指定的教材,完成老师布置的作业,最后努力通过考试。实际上有不少人在大学阶段仍然采用高中的学习方法,还是能取得不错的成绩的。但以后到了工作岗位上就不同了。因为工作上碰到的问题都是开放式的,没有现成答案的。

研究生教育也是朝着开放式这个方向,但更偏向学术性。研究生阶段真正训练的是文献检索的能力,准确一点说,是通过检索文献的方式将某一领域的历史和现状搞清楚,然后在前人的基础上提出自己的观点或解决方案。对于博士生,一般学校会要求将这些观点以学术论文的形式发表出来(投稿),而对于硕士生,有些学校也会这样的要求。

这种文献检索的能力,实际在工作中也非常有用。我曾经在之前的一篇文章《技术的正宗与野路子》中提到过,要学通一门技术,就需要去阅读Spec层次的资料。所谓Spec,其实就是一门技术最原始、最规范的那些资料,这对于了解一门技术的本来面貌非常重要。对于工程性比较强的那些开源项目,一般来说这些Spec资料已经被开源项目的维护者整理过了,所以我们到项目官网上总是能容易地检索到它们。但在学术研究中,这个问题就更加复杂,有关一个研究领域最核心、最本源的那些知识,通常散落于各个学术期刊的论文中,且处于动态发展之中。我们从一些论文出发,通过引用关系找到另外一些,不断地追根溯源,直到我们觉得对这个领域理解透彻为止。

学术研究对于这种能力要求很高,所以研究生需要在这方面进行系统的训练。而如果你在工作中具备一点这样的能力,也会对工作大有裨益。

前文提到的对于开放式问题的研究能力,其实并不是说只有研究生才具备。只是研究生教育把它作为一个明确的目标提出来了而已。

我在工作中碰到的一些表现优异的技术人员,他们对于工程性问题的研究能力也很强,不管他们是本科生还是研究生。那些善于思考、热爱学习的工程师,他们在实际的工作中,总会摸索出类似的一套方法。所以,如果一个团队招聘进来的既有本科生,也有研究生,那么经过一段时间之后,谁也不会再记得他们的学历高低,人们只看你的实际表现。

当然,在毕业后的第一份工作中,研究生会比本科生的起薪高一点。但这点起薪的差距是微不足道的。本科毕业生要早工作两到三年,正好能利用这个时间段把薪水追上来,实际情况是一般都能远远超过这个起薪的差距。

那对于在公司工作的人来说,读研究生到底有用吗?我觉得还是取决于个人。

很多公司的技术部门被称为研发,实际是包括研究和开发(research & development),其中research类型的工作,对于研究能力还是要求很高的。对于这种类型的工作,可能读个硕士或博士学位,还是挺需要的。毕竟,在学校里做过研究的人,对于学术的力量感受更深一点,这种感受会激励你走得更远。

另外,研究生和本科生还有一个区别,那就是:研究生们都有一个固定的导师。

本科生只有在最后半年做毕业设计的时候,才会有一个指导老师。而毕业后刚参加工作的新人,公司一般也会为他安排一个导师。

导师是领路人的角色,为你下一步的努力指明方向。但是,最好的导师,都是授人以渔,传授自我学习和研究的方法。只要你掌握了正确的方法,学习就是最容易把握的一件事了。

所以说,导师对你进行指导的最终目标,就是让你不再需要一个导师。

(完)

阅读原文...


Avatar

专访代驾创始人杨家军:我在死人堆里趴了8个月

上一篇

A Simple Attribute Directive in Angular 2 for Dart

下一篇

您也可能喜欢

评论已经被关闭。

插入图片
博士、硕士和本科,到底有什么不同?

长按储存图像,分享给朋友