计算机与软件考研的区别

专业学习

计算机科学与技术,简称计科(CS)。一般来说CS的学习偏重学习计算机的原理。学习偏理论,学习内容涉及软件也涉及硬件,还有两种相结合,一般来说CS两者的比重是1:1,按学校的不同可能会出现不同情况。

软件工程,简称软件(SE)。SE的学习主要是围绕着软件的应用、设计、开发、维护架构这几个模块等。偏应用、工程、实践。学习内容涉及一些基本的硬件,但更多是工程的理论和大量的软件实践知识。

国内的大学似乎把软件工程当做了一个马甲,以软件工程之名,行计算机科学之实。它们可能会淡化较为理论的电路、物 理、数学内容,并以一些软件工程的方向课体现与“软件工程”的相关性。

为什么呢?因为学校不得不这么做。首先,本科的学生没有任何专业背景,直接上软件测试、软件分析、软件开发生命周期这种软工内容,同学无法理解。其次,我们的软工教学还处于纸上谈兵阶段。真正懂软件工程的老师太少,他 们能做到的只有读 PPT,或教你画画图这种东西了。

那为什么要分设计科和软工两个专业?我认为这是某段时期响应政治 召、创造变现方式的产物。如果读一读一些大学软件学院的创院历史,你就会发现它 们一般创院甚晚于计算机系(2000 年前后),且字里行间会渗透出“响应国家 召培养更多信息技术人才”这种信息。间接的证据就是,这些专业都很默契 的收取更高的学费。

不过,这到底是不是好事?不一定。从严肃的学术/科研角度说,CS 在大一大 二打造的理论功底非常重要。各种数学课、算法分析课、乃至底层的编译、操作系统、计算机组成原理都对长久的发展很重要。就好比一个培训班出来的码 农,如果只在意写代码,是达不到科班出身的工程师那种深入的理解的。因 此,我个人表示顾虑。可喜的事,软工和计科选课上可能没有本质区别,那这样的话,似乎就只是名字的区别了。这样的话增加了你成功进入理想专业的机会,这就是个好事。

此外,软工的学费是计算机的两倍左右(大学四年软工平均要 4 万, 计算机 2 万。研究生阶段北大软微4W的学费,华科2万1年的学费),另外计算机学的会偏底层一些(汇编,硬件都有涉及),软工多的偏上层,例如“软件工程”(这也是一门课的名字)。

软件开发就像是盖房子一样,一般来说,要造房子,主要要完成两部分内容,一是要备齐各种建筑材料(砖瓦,水泥,钢筋等等),另一方面要画好设计图纸,最后请工人来按照 设计图纸来施工建造。建成之后,房子的质量主要取决于这一下两点:

(1)材料过不过关。

(2)设计图纸合不合理。

两者缺一不可,至于最后的建造过程,我觉得只要监督合力,劳动力充足,基本上是不会出什么问题的。

其实最初到大学的时候,一直不明白为什么很多学校要单独成立一个软件学院(当然你可以说新成立一个学院可以更好地“骗钱”啦)直到随着时间的推 移,才越来越觉得,其实软件学院与计算机学院的最本质的区别是培养目标不 一样。软件学院的培养目标是工程师,计算机学院的目标是科学家。那上面所举的例子来说,软件学院就是负责设计图纸的,而计算机学院就是负责提供水泥,钢筋的(但是目前的现状是,本科生阶段软件与计算机都在彼此渗透着, 原因在后面会讲到)。

所以你说是造钢筋,混凝土困难?还是设计楼房困难呢?虽说因人而异,但是个人觉得,还是建造钢筋混凝土更困难些。因为越基础的东西越难突破,就好 像我们一般盖的小房子一样,只要材料准备好了,图纸大致设计一下,随便请 几个工人就能开工,但是还没听说过在集市上随便拉几个工人就能造出合格的钢筋,混凝土这等建造材料的例子。

好了,回到我们软件开发上来,软件开发其实主要就是由算法+代码逻辑组成 (细分可以分成很多,但是你目前还没接触到真正的软件开发,所以就按最简 单粗陋的说了),算法就是上面提到的建筑材料(钢筋,混凝土等),代码逻辑就是设计图纸之类的,那些大量的编码工作主要就交给那些小工好了。

所以理论上来讲,在公司中软件开发是这样的:学计算机的提供算法,学软件的提供构架设计,培训班出来的负责写具体的代码。这就要求了学计算机的/算 法工程师脑袋要好(数学要求高),学软件的/构架师逻辑要好(数学要求一 般),培训班的/码农要能吃苦耐劳(数学基本没啥要求)。

就业前景

近几年的CS和SE的就业情况相当不错。如果经常去了解就业市场的话(可以上一些招聘 站看看),你会发现,公司无论大小,招人上,除了技能的要求,对于专业的要求一般是“计算机相关”,几乎没有见过有公司点明必须是SE或者是CS,也就是说无论是SE还是CS其实HR都不太关注,更关注应聘者的专业技能。所以如果从就业方面来说的话,CS和SE的差别其实很小

但另外一个问题是,由于两者在专业学习上的侧重点是不同的。CS学习了更多的理论,而且软硬结合,知识面更广,如果在研究生阶段年内没有好好拓展自己的动手实践和工程能力的话,就业上是会有些许吃亏的。我曾经认识不少的CS朋友,他们都在吐槽CS学习得太泛,反而影响了就业。反观SE,由于更注重培养工程能力,而且课程中一般有大量的课程设计,所以更适合企业

但其实这个更看个人,在 学习专业知识的同时,如果注意去拓展自己,在就业上基本不会有太大的差别,因为大家的基础都差不多的。



软工 vs. 计科 如何选择

皮皮灰个人的建议:就业首选SE,升学首选CS。

如果打算读博士,CS更有优势。一般学校都会有CS的博士点。

有兴趣去查的话,你会发现,大多数学校CS和SE的考研科目都是数据结构、计算机组成原理、计算机 络、操作系统等等。这些科目都是偏向理论,而且要求基本功扎实。而SE的考研难度在绝大程度上都比CS难度低,拿华科来说,计算机专业课考两门(数据结构,计算机 络),软件的专业课仅仅只考一门(数据结构)。甚至有的学校会考软件工程(偏文的课程)。

最靠谱的回答就是,你必须根据不同的学校区分对待。如果是个一流大学,且 两者下属同一学院、由相同师资任教、考研难度相似,那质量会很有保证。否则,你就要多留意教学质量了。

如果抛开个别大学,只说整体情况,我觉得二者必选计算机科学。为什么?规 避风险。

参考资料:

链接:
https://www.zhihu.com/question/54766296/answer/141198590

链接:
https://www.zhihu.com/question/54766296/answer/141340726

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月5日
下一篇 2019年10月5日

相关推荐