CMU MSIT-SE/MSE个人感受分享

avatar 92374
Ror
137457
281
最近我们的QQ群有新录取的同学来问情况了,于是赶紧回地里把自己的感受分享一下。
我是14Fall进入CMU的Master of Software Engineering(MSE)专业的,下面的介绍主要是针对MSE的。但因为MSIT-SE和MS的核心课基本相同,而且我们平时很多时间在一起,所以大部分情况也适用MSIT-SE。项目的官方主页见mse.isri.cmu.edu。提前说一下:我目前掌握的就业信息真得非常少,部分原因是现在还不是我们这个项目最需要关心找工作的时候(我们先吐血把目前的课应付下来再吧……),请大家暂时不要问我关于就业方面的事情,不好意思了。

大概说一些我已知的情况。

关于环境:
  1. MSE和MSIT-SE项目有单独的教学楼和办公楼,离主校区大概步行5~10分。
  2. MSE的同学有自己单独的工位,因为MSE除了上课,还会做一个客户项目;MSIT-SE的同学没有自己单独的工位,可以使用open area的座位,但第2、3两个学期因为上一届的MSE同学(也就是我们)走掉,他们也可以使用那些工位。
  3. 我们的教学区域在那栋楼的二楼。一楼是校警,所以安全得很,偶尔会在一楼看到一大票警察聚着等开会……
  4. 教学楼附近有三家中餐馆;还有PNC银行,办卡非常方。
  5. 这里学生以印度同学居多,然后是俄罗斯同学,然后是中国同学,然后是其他国家的同学。比如我们本帖隐藏内容需要登录后才能查看。


关于专业:
MSE和MSIT-SE的核心是软件工程(software engineering)。软件工程不是技术型的课,所以如果你想学习和具体技术(比如云计算,分布式系统,移动终端开发……)这里的课程真心不适合。我们的核心课程主要有:
  1. Personal Software Process(我们简称PSP):核心是通过建立个人软件开发流程以提高工作质量。通过编程来学习软件开发流程,但编程不是核心。这门课会在暑假期间(5月底~7月初)以远程课程的方式上。
  2. Models of Software System(我们简称Models):主要是通过集合论和逻辑来对软件系统建模以推演系统行为的正确性。不编程。
  3. Methods: Deciding What to Design(我们简称Methods):核心是需求工程,即如何应用课堂上学习的技术去收集客户对软件系统的需求。不编程。
  4. Software Development Management(我们简称SDM):软件开发管理,类似项目管理。不编程。
  5. Analysis of Software Artifacts(我们简称Analysis):核心是软件测试理论和技术。不编程。
  6. Architecture of Software System(我们简称Architecture): 核心是讲解各种软件架构模式、架构开发方法和架构分析方法。通过编程来学习架构技术,但核心不是编程。
  7. Communication for Software Engineers(我们简称Communication):核心是讲软件项目开发过程中的沟通问题,即如何提高沟通效率。不编程。

我个人认为MSE和MSIT-SE这两个项目最理想的学生是(注意我说的是*最理想*)本帖隐藏内容需要登录后才能查看。虽然MSIT-SE时间比MSE少一个学期,但从核心课程上来看,我认为培养方向是一样的。

但这并不是说主要以找技术型工作为目的的同学就不能来读,只是这里的核心课程不能对找工作起到直接的作用,还会花费你不少时间去写作业,所以需要单独找时间刷题和准备面试,的确会比较辛苦。但一届又一届的同学都这么过来了,毕业之后也找了工作,我虽然没有详细了解过,但从有限的消息里也没有听到谁最后混得很不好的。这个专业或许不能在短期找工作上给你直接的帮助,但我个人认为这里学习到的东西是让你有机会看到和思考若干年之后你职业发展上可能碰到的问题。或许若干年之后当你坐在办公室里苦思项目上遇到的问题时,会突然意识到“哎呀,原来当初Dave讲的就是这个意思啊”。换句话说,它提供的是长期价值(前提是你长期来看是打算走IT业这条路的)。

这两个专业偏文科和管理科,所以有大量的阅读作业,阅读的文章主要有学术界对软件工程学科的研究论文,也有工业界的白皮书,甚至还有哈佛商业评论上的文章。对阅读要求比较高。

这两个专业都有大量的group work和presentation。上面列出的每一门课都有group work和presentation,很能提高对你团队合作认识,而presentation会提高你的公共演讲和演示的技能。不要忘记这是软件工程,本来就是冲着团队软件开发的方向去的,所以设计了很多group work;而同时美国的文化似乎也比较重视公共演讲的技能,且这个项目的老师们也认为要称为一个合格的公司高层,presentation的技能一定要有,所以他们会用各种机制保证你一定有presentation的机会。

这两个专业都有各自的客户项目(我们称为Studio Project),设计的目的是把核心课上学习的东西能立刻在项目实践中应用并检验其效果。这个客户项目是不会给你付钱的。

在选课方面,虽然理论上每个学期核心课的学分是不满的,有选课空间,但对于MSE的同学来说,一般第一个学期是不选课的,因为太忙了而且要适应新生活;对于MSIT-SE的同学,可以选一门选修。第二个学期都有一门课的选课空间。所以这两个专业的选课自由度不是非常大。因为核心课偏管理,我们都会在选修课上选技术型的课,方便将来找工作。第三个学期(暑假学期)MSE的同学有一门课的选修空间,MSIT-SE有两门课。具体可以看官网上的Plan of Study。

最后:
  1. 我只是想客观点公允点介绍我们项目的情况。不褒也不贬。毕竟一个项目是否适合自己是和个人目标有很大关系的。所以我认为大家做决定的时候,一定要尽量弄清楚自己来学习的目标,然后参考我上面写的东西。
  2. 希望这篇帖子能帮大家更好地认识这两个项目,在这种对后面发展道路有较大影响的决策上尽量明智,尽量不要来到这里之后发现和预期相差太远。


暂时想到这些,就写这么多吧。我最近多回地里看看,尽量回答大家的问题。本来这篇帖子应该早早就发的,但最近太忙了,一直没有时间写。上周春假本来打算写,结果……好吧我是不会告诉你们我们春假期间写了一个星期的作业然后最后周日晚上我还通宵了……我们几个中国的同学本来还打算开车出去玩一天,后来发现算了吧赶紧写作业吧大家简单聚个餐就行了……希望现在也不是特别晚,毕竟刚发offer不久,大家应该还有时间考虑选择。

补充内容 (2015-3-20 15:59):
做了一个Google Doc文件,把一些照片放进去了,希望能给大家一个关于我们学习环境的感受(但现在国内能访问么...?):
drive.google.com

补充内容 (2015-3-20 16:05):
关于选修课:官网上Course中列出的选修课只是说那些是我们项目开设的选修课,并不是说只能选它们。学生们可以选所有学院开设的课程,比如CS专业的一些核心课。

补充内容 (2015-3-21 01:48):
CMU比较著名的课有:云计算,操作系统,分布式系统,Introduction to Computer Systems,Machine Learning。

补充内容 (2015-8-12 13:04):
增加了对MSE Studio Project的介绍:1point3acres.com

补充内容 (2016-3-14 19:06):
增加了对录取前的远程课程Personal Software Process的简单介绍:1point3acres.com

补充内容 (2016-3-14 19:07):
MSE没有机会实习,因为4个学期都有要上课和做项目,全部都是full-time student。

补充内容 (2016-4-1 17:58):
从2015年开始,MSE的Studio Project计划从原本4个学期都有的project,变成了只有后面3个学期有。第一个学期没有studio project了。MSIT-SE/ESE的时间表据我所知目前并没有变。具体请参考官网的plan of study.

补充内容 (2016-4-12 18:13):
我的一点点看法:关于在就业环境整体偏紧、大公司普遍缩招的情况下实习的重要性:1point3acres.com

补充内容 (2018-11-23 19:52):
这两个项目不太适合Business Analytics (BA)方向的申请:1point3acres.com
  • 108
281条回复