由于丰厚的薪资,强大的就业吸收能力和对外国员工友好的H1B/绿卡sponsorship使得越来越多的中国学生将进入以Google、Facebook、Amazon、Microsoft等科技大厂作为毕业后的职业首选,因此CS(computer science)专业近年来热度不断飙升,成为了中国留学生申请最多的专业之一。
但是大家可能不知道的是,同样都是CS,在许多大学其实分为两种不同的专业:
两者都重视高等数学
学生要上两到三个学期的微积分、线性代数、统计学和概率论等
所需的核心专业课包括计算机科学基础、离散结构、数据结构、程序设计、算法思维和设计、硬件、架构和高级计算机语言
大四的学生通常会需要完成一个Capstone Project
所以这两个学位的要求在很大程度上是相似的,而且为学生毕业进入科技公司做好准备。
但是,两者的所在学院、专业课、毕业文凭都有一些区别:
一个叫 Bachelor of Arts in Computer Science (BA in CS),
另一个叫 Bachelor of Science in Computer Science (BS in CS)。
今天就来讲讲这两兄弟的区别和在两者间如何选择。
学院区别
BA in CS通常设在学校的文理学院(College of Arts and Science),而BS in CS通常设在工程学院(School of Engineering)。
因为一般入学后跨学院转学比较麻烦甚至有门槛,学生在申请阶段最好想好选BA 还是 BS,从而申请相应的学院。
课程区别
BA的课程:
在设计更强调跨领域的广度,会给学生更多灵活性,让他们有更多机会上一些计算机和数学以外的课,像人文社科类以及艺术类的课,所以学生也会有更多double major和选择minor的选项。
虽然BA in CS也能为计算机专业打下扎实的基础,但在专业技术的深度方面一般要求较少的必修课程。
对于希望将计算机知识与其他学科相结合的同学,或者倾向于在科技公司担任需要更综合的知识背景的岗位(如产品经理或或用户体验设计)的学生来说,BA这条道路是个比较理想的选择。
BS的课程:
强调对计算机科学有更严格和深入的理解。
通常会有更多且更深的专业必修课、课题项目和技术选修课,会深入研究算法、系统编程或人工智能等领域,还可能要上更多物理相关课程像力学,电磁学和机械设计等。
BS的弊端是因为专业课又多又难,学生一般没太多机会上其他领域的课程。
但是对计算机和数学领域的复杂性充满热情或希望从事研究或专业技术职位的学生可能会认为BS学位更合适。
对未来职业或申研的影响
- Research/高级技术研发: 对于毕业后想从事先进技术的研发工作的同学,比如这两大火的AI领域,如果想去做大模型,底层算法的研发, 或者希望后面继续读研读博的同学来说,BS可能会更加适合。因为技术层面学得更深,会与一些研究生或博士项目的细分专业更加对口。
- 融合性工作: 如果希望以后从事更加融合性的工作,比如产品经理,商业分析,Digital Art等,那么BA带来的更加综合性的教育背景会更加有优势。
在实际的求职中,一个人的文凭上是BA 还是BS对于招人的公司来说,区别是几乎可以忽略不计的。
哪条路线更合适, 更多是对于学生自己来说的。
科技公司招人时更看重实践经历,也就是做过的实习和project,不会纠结其在学校上的什么课。实习和刷Leetcode准备面试远比细分专业更重要。
下面我们来以NYU为例,看看那BA in CS与BS 在课程上的区别。
可以看出来,两个专业在核心课程上内容是很相似的,都要学基础的Intro to Computer Science、Data Structure、Algorithm、Algorithm System。
科技大厂的SDE岗位的coding面试涉及内容在这几门课中已经都覆盖了,所以学哪个专业对于找Software Engineer工作不会有显著影响。
但是可以看到,BS在CS必修课、选修课、科学必修课的数量上都比BA要多,尤其是CS和数学必修课几乎是后者的将近两倍。
但是因为必修课较少,给学生留了更多的自由选修课空间。
而且在相关专业部分可以看到,BA路线有更多的跨学科专业机会,学生可以选择和数学、经济等组成joint major。
总结
BA in CS与 BS in CS在核心课程上相似,BS一般在计算机与数学方面的专业课更多,学的深度更深,比较适合希望接着读研读博或进入科技企业从事技术研究类工作的同学。
BA在计算机与数学上要求的专业课数量少一些,给学生留了更多时间,让他们可以根据自己兴趣选择更丰富的自由选修课(本专业或其他专业的),更适合希望从事综合性、融合性强的工作的同学。