专业指南丨计算机科学和软件工程,哪个更适合你
2018年高考已落下帷幕,选择什么大学、报考什么专业又将成为考生和家长要面对的难题。对于之后想成为软件工程师的考生而言,计算机科学和软件工程专业哪个更适合自己呢?前谷歌的软件开发人员YK在本文中给出了自己的见解。
大家好!我叫YK,目前我正在运营一个YouTube的编程教育频道,拥有20万的订阅量。我以前是一名Google的软件开发人员。
听众经常会问我这两个问题:
“计算科学专业和软件工程专业有什么区别?”
“如果我想成为软件工程师,我应该选择计算机科学还是软件工程?”
在本文中,我会回答这两个问题,针对这两个专业给出我的分析和建议。
专业概述
· 计算机科学是探究计算机运行原理的学科,主要从理论和数学的角度出发。
如果你喜欢数学、逻辑学,或者你想进入计算机科学的专业领域,例如人工智能、机器学习、安全或图形,那么你应该选择计算机科学专业。
· 软件工程是研究软件系统如何构建的学科,包括项目管理、质量保证和软件测试等内容。
如果你对实际操作方法更感兴趣,并且想了解软件构建和维护的整个过程,那么你应该选择软件工程专业。
计算机科学和软件工程都包括编程和计算机科学的基础知识,因此选其中任何一个专业都能成为软件开发人员。
为了明白计算机科学与软件工程专业之间的区别,让我们以加拿大滑铁卢大学为例,具体看这两个专业各自包含的课程。
之所以选择滑铁卢大学是因为它具有北美顶尖的计算机科学课程。
工作前景
我们首先比较一下选择这两个专业能找哪些工作。
以下是滑铁卢大学关于计算机科学与软件工程专业的毕业生所从事的工作列表:(职位,公司)
计算机科学
Web开发人员/架构师,The Steele Group
程序员,Harry Rosen Inc.
移动端/云开发人员,Clearbridge Associates Limited
软件工程,General Dynamics Canada
软件开发工程, Microsoft
Agile工程师,Pivotal Labs
业务分析师,Canadian Tire Corporation
开发者倡导者,Google
产品经理,Dropbox
软件工程
软件开发人员,Tagged
软件开发人员,IBM Canada
软件经理,Arius Software Corporation
软件工程师,VistaPrint USA
软件工程师,Harris Corporation
软件开发人员,Accenture Inc.
技术产品经理,软件设计与开发,NexJ Systems Inc
顾问,PureFacts Financial Solutions
实施顾问,Desire2Learn
可以看到,无论选择两者间哪个专业,之后所找的工作区别并不大。
计算机科学和软件工程专业的毕业生中,最常见的工作是软件开发人员或软件工程师。
还有其他相关工作,比如产品经理,质量保证分析师和技术顾问。你所从事的工作取决于你掌握的专业技能。
第一年的课程
现在,我们来看看每个专业的必修课程。首先比较一下第一年需要学习的课程,以滑铁卢大学为例。
计算机科学
CS 135 - 设计功能程序
CS 136 - 算法设计和数据抽象
MATH 135 - 代数
MATH 136 - 线性代数1
MATH 137 - 微积分1
MATH 138 - 微积分2
另外还有一些选修课。
软件工程
CS 137 - 编程原理
CS 138 - 数据抽象和实现
MATH 115 - 工程线性代数
MATH 117 - 工程微积分1
MATH 119 - 工程微积分2
MATH135 - 数学系代数
ECE 105 - 电气工程物理1
ECE 106 - 电磁学
ECE 124 - 数字电路和系统
ECE 140 - 线性电路
SE 101 - 软件工程方法
注:
CS:计算机科学
MATH:数学
ECE:电子与计算机工程
SE:系统工程
可以看到,第一年的课程也很相似。两个专业都涵盖了基础的计算机科学课程,以及一些线性代数和微积分的数学课程。
唯一的主要区别是,软件工程有更多的物理和电子工程课程,而计算机科学有更多的选修课。
之后的课程
那么第一年之后有哪些必修课和选修课程呢?让我们看几个例子:
计算机科学
MATH 239 组合学概论
STAT 230 概率
STAT 231 统计
CS 240 数据结构和数据管理
CS 241 序列程序基础
CS 245 逻辑和计算
CS 246 面向对象软件开发(软件工程专业不需要)
CS 251 计算机组织与设计
CS 341 算法
CS 350 操作系统
此外还有一些计算机科学选修课。
软件工程
CHE 102 工程师化学
ECE 222 数字计算机(包含汇编语言)
ECE 358 计算机网络
MATH 213 软件工程师高等数学
MATH 239 组合学概论
STAT 206 软件工程统计
MSCI 261 工程经济学:工程师财务管理
CS 241 序列程序基础
CS 240 数据结构和数据管理
CS 247 软件工程原理 (计算机科学专业不需要)
CS 341 算法
CS 349 用户界面(计算机科学专业不需要)
CS 343 并行和并行编程(计算机科学专业不需要)
CS 348 数据库管理概论
SE 212 逻辑和计算
SE 350 操作系统
SE 465 软件测试和质量保证
SE 464 软件设计和结构
SE 463 软件需求规格和分析
SE 490 设计项目
此外,还有一些计算机科学和电子工程选修课。
总结
这两个专业对于数学和统计方面的要求几乎相同,两者都包括组合学,概率和统计的知识。
关于计算机科学的核心知识需求也相似,包括算法,数据结构和操作系统。
关键区别在于:
软件工程专业在电气工程和软件工程基础方面有更多的要求,例如软件测试,设计和软件需求规范。
计算机科学则能选择更高级的计算机科学课程。你可以在大量的选修课中进行选择,例如安全性、软件工程基础知识、计算机视觉、机器学习和数据库管理。
应该选择哪个专业?
选择哪个专业主要取决于你的喜好。
简而言之:
如果你喜欢数学、逻辑学,或者如果你想进入计算机科学的专业领域,比如人工智能,机器学习,安全或图形,那你应该选择计算机科学。
如果你对实际操作更感兴趣,并且想要了解软件构建和维护的整个过程,则那你应该选择软件工程。
如果想成为软件工程师,哪个专业更好?
根据滑铁卢大学具体的课程要求来看,如果你想成为一名软件工程师,那么计算机科学是更好的选择。
假设你想在美国从事高薪(每年约10万美元)的软件工程师工作,这些工作通常在大型软件公司(例如微软,谷歌,亚马逊等)或中型、高增长企业(例如Dropbox,Lyft,Snapchat,Pinterest等)。
通常,这些公司希望软件工程师能够编写可靠的代码并构建有趣的项目,并且熟练掌握数据结构和算法等计算机科学基础知识。
我认为培养这些技能的最好方法是,快速学习计算机科学基础知识,花时间练习解决问题和编写代码。
我认为根据软件工程的课程,以及该专业课业的繁重程度,比起计算机科学专业,软件工程专业能够支配的时间和精力更少。
计算机科学专业的另一个好处是能够选择更多的选修课。这很好,因为你可以根据就业市场的需求调整课程。例如,如果移动应用程序开发需求很多,你就可以针对这方面进行学习。如果并行计算的需求多,你则可以学习这方面。
当然学习软件工程基础知识(项目管理、设计、测试等)也很有帮助。但我更希望有更多的时间学习特定的技能。这就是为什么我认为要成为软件工程师,计算机科学是更好的专业选择。
但这只是我的个人看法,如果你有不同的看法,或有计算机科学、软件工程专业的学习经历,请给我留言。
注意
· 不同的大学对这两个专业有不同的要求。你应该根据具体学校的课程进行选择。
· 一些大学没有软件工程专业。例如,温哥华的不列颠哥伦比亚大学有计算机科学和计算机工程学位,没有软件工程专业。但是计算机科学专业和计算机工程专业都有软件工程课程。
如果你感兴趣的大学没有软件工程专业,而且你想成为软件开发人员,那么我建议选择计算机科学专业。与计算机科学或软件工程相比,计算机工程更侧重于硬件,因此与一般的软件开发人员的工作相关性较小。
参考来源
滑铁卢大学计算机科学
https://uwaterloo.ca/future-students/programs/computer-science
滑铁卢大学软件工程
https://uwaterloo.ca/future-students/programs/software-engineering
感谢您的阅读,祝愿您选到心仪的大学和专业!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03