因为这个问题在平时生活中很多人都在询问,我就在这里说一下自己的感受吧,权当一篇科普文。大一我去的是东北大学软件工程专业,后来大二转到了计算机科学与技术专业,所以两个学院,两个专业我都待过,有一定感受。
首先,隶属不同,软件工程属于软件学院,一般比较年轻,成立比较晚,国内35个示范性软件学院还是很好的,而且课程更新比较新,每年变动比较大,整体感觉跟得上潮流。计算机科学与技术一般隶属计算机学院,一般比较悠久,成立很早,课程已经有了一套良好的体系,所以不会轻易变更,这一点说好就是比较成体系,说不好就是用的课件十年没变过。
其次,课程体系差别较大。转专业之前我也以为差距不大,谁知道差别蛮大的。软件那边重点培养学生动手能力,学的东西偏技术的多一些,而且讲课用英文,比如大一学Java,大二学Web开发,大三组织实习半个学期,学linux,考试直接上机考试,主要以软件相关为主,会有设计模式,软件工程这种课,理论课像计算机网络,数据结构,离散数学课时较少,硬件相关的课除了计算机组成原理更少。计算机科学与技术主要培养学生的理论能力,动手能力为辅助,比如这边大三才学那些web开发啊,Java啊,而且都是以选修课为主,课时少的可怜。大一大二这两年学的基本全是基础知识,高数线代概率论离散模电数电数据结构等等,大三才会学计算机相关的专业课,计算机网络操作系统等等,同样的课程,比如离散数学,计算机课时要比软件长,而且学的多,考试还难,但是计算机这边基本没有上机考试,虽然也有实验,但是学生动手机会相对于软件少很多。给我的感觉,计算机科学与技术是一类学科,所以会包含软件工程的东西,软件学的他也讲,不学的他也讲,这样一来啥都学点,但是不精,比如当时我们学大学物理学了好久,各种实验报告,实际和计算机关系不大。好处就是计算机这边理论知识扎实,培养计划决定这边学霸特别多,考试很厉害,而且软硬件全都学,不像软件那边可能对硬件,对原理理解相对薄弱。
最后,说说这两边学生给我的感觉,软件那边喜欢竞赛,喜欢折腾的大神很多,当然学霸也有,相对来说少,相反,各种极客技术控偏多,而且普遍本科实习过。计算机那边搞竞赛的也有,但是主要是ACM数学建模那种,不像软件那边各种软件开发比赛,计算机这边更多大牛能够本科发论文,基础竞赛获奖,建模能力数学能力很强,考试成绩接近满分的大有人在。从保研来看,软件那边放弃保研名额的好多人,他们更喜欢去工作,或者出国,计算机这边几乎没有,更多的人希望读研进一步深造。当然这只是普遍,不代表个例。
至于以后干什么,一般学这两个专业的,工作的话,本科生绝大多数成为软件工程师,这样软件的优势比较大,毕竟学的东西很多能用上。读研读博的话,找工作更多的是研究性质的,计算机的优势更显现出来。当然有一点不得不提,软件学费普遍贵,考虑一下经济因素。
总的来说,想要搞工程,推荐软件,想要搞研究,推荐计算机科学与技术。前提是你都得踏踏实实,脚踏实地。