作者:AdmitWrite线上留学平台
链接:https://www.zhihu.com/question/24334688/answer/2270175213
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本人就读于哥伦比亚的MSCS项目,在这里借题主的问题和大家介绍一下这个项目的课程设置,并分享一下我的就读体验(包含生活、学习、就业等)希望看完本文能让你更加了解哥大,对想要申请MSCS项目的学弟学妹一个参考。
招生问题
首先是大家比较关注的招生问题,哥伦比亚大学的MSCS项目招生人数还是比较多的,每年招生大概在200多人,而且中国学生的比例比较高,大约60%-70%都是中国人,其他主要是印度人、美国人、韩国人,再就是一些零零散散国家的人。而在中国同学之中,美本和陆本的同学人数基本上是五五开的。哥伦比亚大学在招生时的要求也是比较严格的,我觉得在我身边的国内同学水平都是很高的,身处其中还是比较有压力的。
学习体验
不过今天我主要分享的不是申请部分的内容,这部分我就不赘述了,接下来进入正题,那就是哥伦比亚大学MSCS项目的学习体验。这个项目给人最为直接的感觉就是工作量大,学习压力更大,因为需要上的专业课很多,而且基本没有水课,所以我基本天天都泡在图书馆里。就算这样我还是觉得有些吃力,哥大的这个项目的要求是在三个学期修完10门课之后毕业,基本配置一般是442,四节专业课一起上的话作业是很多的,一个作业可能就要花上一天的时间,再加上还要刷题找工作,时间也是很紧张的。另外开学一个半月就会有期中考试,还需要分出精力来复习,那种紧迫感也是可想而知的。
选择这个项目的新生在刚刚入学的时候需要选择一个track,这个时候大家只要选择自己最喜欢的track就可以了,因为如果大家不是很喜欢自己选择的track的话,第二个学期是可以进行更改的。我建议大家选择machine learning这个track,这是因为这个项目选课十分的友好,基本可以选到所有的课程,因为这边分配选课是要根据你选择的track来进行优先分配,machine learning这个track优势还是比较明显的。
选课问题
说到这里我再和大家说一下哥大的选课,在刚来哥大的时候我也被选课折磨了一番。说实话我之前从来没有见过哥大这样的选课模式,大家什么课都可以随意选择,所以我们只要下手稍微晚了一点,就呆在waitlist里面了。因此在开学前两周的选课周里,最好要尽自己所能去听所有的课,因为我们一旦选不上自己心仪的课程,还可以妥协去选一些别的课。这个时候如果我们前两周的课没有听,那么很可能错过第一个作业或是老师布置的选课认为,这样就失去了机会。因此在这边前两周我经常需要去听很多自己不喜欢又听不懂的课程,这对于我来说真的是一种煎熬。
所以我觉得选课一定要趁早,而且大家在选课的时候不要都去选硬课去值回学费,实际上在这里无论你选择了什么课,最后都是自己做reading,之后做作业,如果你选的课太硬,reading做不完的话后续的作业就会很麻烦了。事实证明我的这种想法是非常正确的,因为虽然我没有做project,但是OS也一直都是赶deadline的状态,一个学期需要学完APUE、OSTEP、Linux Kernel Development三本参考书,现在想起来都觉得有些残忍。
不过就算我们早早选课,像cv、ml这些热门的课程因为僧多粥少还是很难选到的,如果大家不能第一时间选课,那么就要进入waitlist了,有时一门课只有120人的容量,但是waitlist中却有150甚至200人在里面。不过大家也不用太过担心,因为我周围那些在waitlist的人基本在开学后一周之内都能选到课,这是因为哥大第一周是可以自由换壳的,而很多人在听课之后会放弃自己之前选的课程,不过这段时间也是很煎熬的,因为一旦真的选不到课还是很难受的。
项目质量
说完了选课再说一下项目的质量问题,现在有很多的人说哥大的CS项目比较水,不过我并不是这么认为的,在我看来学习还是要靠自己,我们可以自己去选择一些硬课。像我选择的课程难度都不是很低,完完全全是靠自己的大量自习才能搞定的。而我选的课里只有一门我觉得有点水,那就是数据库,不过这也是因为我之前工作的时候使用数据库比较多,对于那些转专业没有相关经验的人来说,课程还是很有难度的。而且这门课的project是要在Google cloud上写一个完整的网站,这个工作量无疑也是很大的。
不过课程虽然不水,但是课程的质量也并非都那么高,这样也和授课的教授有着直接的关系。像我上过database system的课,这个教授给我的感觉就是他在外面有事业的,教书只是他的副业,在上课的时候他两道题就能讲上一个小时,甚至有些时候记不清上节课讲到哪里,作业给的也不是很好。而给我上machine learning的教授则活脱脱将这门课变成了数学课,作业很难,课程内容也十分的硬核,因此教授对于课程质量有着决定性的影响。
不过无论什么课程,这边教授上课讲的知识都是比较少的,一位教授的说法就十分的形象,他说他就像在教我们游泳,他只是负责把我们推下水,接下来都靠着我们的努力。有一个学期我选了四门课,其中两门课每个星期上课两个半小时,两门课一星期只上课一小时50分钟,剩下的时间都是自由安排的。不过有很多的homework和reading要做,所以时间是特别紧张的,因为老师在课堂上讲的东西是不足以帮助我们完成作业的,自学压力还是很大的。
而且CS的研究生项目是没有基础课的,像那种Python入门、数据结构入门这类帮助学生适应研究生的课程一概没有,因此几乎每一门课都需要我们自学很多知识。所以我们选课的时候也要做好规划,不仅是课程的难度,我们还要关注每一门课是否有期末考试,如果每一门课都有期末考试,那么我们也很可能应付不来。
因此这也要求同学们有一定的基础,像OS就需要我们很会C,同时懂得操作系统的概念而且了解文件IO、socket接口。而像machine learning这门课,老师会要求同学有很好的高数、线代、概率以及统计知识,如果没过关的话选课都不让选。
说完了这些选课方面的事情,我也和大家分享一下我选的几门课,让大家提前了解一下这个项目中课程的特点,这样大家未来选课的时候也可以做一个参考。
选课分享
1、CSOR4231 ANALYSIS OF ALGORITHMS by Eleni Drinea
优点
这门课的老师学术背景很厉害,她也十分的专业,在教学的时候更是认真负责,不仅在上课的时候所有的知识点都讲的很细,而且学生如果没听懂她还会回头重述一次。但是因为很多人在上课的时候经常听懵,所以她上课经常会重复,不过这也是没有办法的事情。另外她准备的算法案例不是那些烂大街的东西而是都经过了她的精心设计,可以确保同学们真正学到东西,而为了让同学们真正可以运用算法去解决问题,她布置的作业也不简单,不过两周一次的作业节奏还是很适合的。整个项目一共6次作业,加上一次mid term和final,作业而不需要写代码,都是设计算法,写出pseudocode。而且老师大概率会录制视频,所以很适合那些不爱去上课的同学自学。
缺点
不过这门课也还是有一些缺点的,首先就是老师对于同学们的期望太高,因此一个学期内包含的算法类型太多,知识量也很大,大家拼尽全力也只能勉强跟上老师的进度,压力山大。这也要求我们要有一定的专业知识基础,否则学起来实在是太过费劲。还有一点就是考试的时间太短,大约只有一个小时出头,不过题目量和一次作业差不多,所以考试分数普遍不是很高,只有数学大佬可以轻松过关,其他人就惨了。
个人建议
我之所以先写这门课的情况,是因为我当时考试的成绩真的有些不忍直视。这门课主要是算法设计,而不是背下来已有的算法,所以如果同学们在国内的时候就已经学过算法课或是有算法基础并不是太难,不然需要有很多练习才能融会贯通。总之我觉得这是必学的课程之一,这门课还是很有东西的,只是想要学好还是需要大量的时间的。不过如果你不是数学大神的话,我建议大家选择一些水课和这门课一起上,不然想要拿高分还是有些难度的。
2、COMS4118 Operating System I by Jae Lee
优点
接下来这门课学到的东西可以说是很多的,这门课的参考书包括了 <APUE> <OSTEP> 和 <Linux Kernel Development>,所以我们平时除了上课听讲之外,课外的阅读量是很大的,大家千万不要忽视这些参考书,因为上面的内容考试的时候是真的会考的。另外这门课的老师很有水平,专业知识也很丰富,最关键的是他对于Operating System是真爱,讲课也很有热情,而他布置的作业是急于Linux kernel的某个版本来做的,很多东西都需要我们自己读kernel代码才能写出来,非常的practical。这门课一共有7次作业,全是代码题,其中两次比较容易,是单人完成的,剩下的都是组队完成的,另外同样有一次mid term和一次final。
缺点
不过这门课也有一些缺点,首先就是课外阅读量的问题,虽然这可以帮助我们学到更多的知识,但是这阅读量的确有些太大了,一般的同学还是很难驾驭的。另外作业量也是很大的,因为这边的作业都是写代码,而其很多都要自己阅读代码差资料,所以尽管很多作业是组队做的,但是想要学到东西我们每个人几乎都是要自己完成一遍的,这个工作量也是很惊人的。
另外还有一点需要注意,那就是这门课对于同学们的基础要求比较高,如果没有足够的C语言基础那么就可以直接放弃了,而且这个课程也需要同学们有基础的Linux使用经验,毕竟这些代码都是在Linux上写的。
个人建议
有很多的人说这门课是哥大CS课程中难度最大的一门,我倒不是很清楚它到底是不是最难的,但是我知道这一定是学习需要花时间最多的,当时我也花了大量的时间在这上面,结果导致我算法死的很惨。需要注意的是这门课不是很容易选到,不过前两个星期退课的人也会很多,因为老师上课除了提到书上的知识,还会结合自己的工作、研究经验来补充一些内容,因此没有一定的专业背景和学习动力是比较难跟上的,所以退课的人也会比较多。
这门课前期会学习system call,之后开始进入kernel学习代码,这些内容基本都涵盖在前面提到的三本参考书中,所以后续如果不仔细读参考书的话考试一定会gg的。我觉得如果大家真的很喜欢OS或是想要了解OS,这门课大家一定要上,另外大家如果喜欢实践理论相结合的课程,这门课也是很好的选择。在这里我还有一个小建议,负责这门课的Jae平时还会教Advanced Programming,所以如果你想要申请这门课,最好可以提前一学期去听AP,这也可以帮助你打好C语言的基础。
3、COMS4111 INTRODUCTION TO DATABASES by Alexandros Biliris
优点
这门课和前面两节课画风并不是很一样,因为这门课的上课节奏是比较慢的,也很适合有基础的人“划水”,大家在选课的时候可以用这门课和那些比较硬核的课一起选,这样可以大大减轻学习的压力。另外这门课不涉及底层DB的时限和理论结构,比较专注于database design,所以很适合其他专业背景的同学来入门数据库。
另外这门课无论是作业还是project的量都不是很大,也不是很难,除了写网站的部分都可以在参考书和老师的课件中找到,学习起来挺轻松的。而这门课虽然不是很难,可是其内容也会涉及到自己写SQL以及optional的web programming,也是一门理论和实践相结合的课程,我们也能学到一定的知识。还有一点就是这门课的老师很风趣幽默,在上课的时候也会开一些玩笑来活跃气氛,唯一需要担心的就是你能不能接住。
缺点
但是这门课毕竟没有太多硬核的知识,所以课程的深度还是存在不足的,对于想要理解数据库底层的同学来说这门课不是很适合你。不过听说里面个别session中有些部分还是有难度的,需要使用python来实现index等机制,可是这依旧不能改变课程整体难度偏低的事实。而且这门课授课的节奏比较慢,举例也不会太多,对于没有学过DB的人这门课内容不难学,但是老师的上课模式会让同学们接受起来有些困难,我也亲眼见证这门课从最初的满课到后来零零散散只有20人不到来上课,这也很可以说明问题。
个人建议
所以整体来看对于那些没有DB基础的同学来说,无论是学习相关的概念还是写网站都是比较困难的,需要花很多的时间来自习,而对于我这种有基础的同学来说这就是一门划水课,这也是我上过最轻松的一门课,大家也要结合自己的需要来判断自己是否要申请这门课。
4、COMS 6998 Topic: CLOUD COMPUTING&BIG DATA by Sambit Sahu
优点
这门课是一个理论和实践相结合的课程,主要是关于AWS的知识以及Hdoop和Spark的一些知识,同学们可以通过编码来学些AWS的不同服务,也可以学到当前网站架构的新趋势,另外在课程的学习过程中我们会阅读很多的paper,这也可以帮助我们学到更多的知识。这门课还有一个好处就是它是开卷断网考试的,考试难度不大,考场上我还看到不少坐的靠近的人一起对答案。
这门课的老师人也很好,如果我们没有选上这门课只要给老师发一个邮件就可以了,对于这种编号“6”的毕业需要的课程来说,这无疑是一个福音。同时学习这门课比较的轻松,作业是3个Assignment需要利用AWS编程服务完成,外加一个mid term Quiz和一个final Quiz以及一些不定期的Quiz以及最终的Final Project。而且这个课是Group作业,我们如果能力不足的话是可以抱大腿的。
缺点
这门课的缺点也是很明显的,首先你需要接受老师的印度口音,另外这门课的课件上没有什么有用的东西,有时候甚至干脆没有课件,因此如果你没有去上课的话,那么你不知道老师上节课讲了什么。另外这门课的考试基本都是实践作业+paper阅读+自己查资料得到的知识,上了课的话你也不一定可以考好。
个人建议
这门课我是极力推荐同学们选择的,因为这门课可以学到行业中真正实用的技术,也能帮助我们了解一些和大数据相关的概念,非常有助于我们未来的就业。不过平心而论这门课的知识深度还是有所欠缺的,毕竟这门课牵扯的知识点还是比较多的,如果大家真的对这些项目有兴趣的话,我建议大家在课外自己要多多钻研,多看一些AWS官方的文档,这样有助于同学们提高自己的考试成绩。
看到这里相信会有一些同学担心自己不能跟上哥大的平时课程,我觉得这一点大家大可不必担心,我身边很多来读CS的国内同学很多都是本科毕业后就过来了,也有很多转专业的同学,不过大家只要平时认真学习的话是不用担心跟不上的。至于英语也没有什么问题,像我当时托福的成绩是102,GRE是330,都不是很高,但是上课并不是很吃力。但是有一说一哥伦比亚大学的很多教授口语让人一言难尽,有些时候还是有些让人抓狂的。来这边平时也并不会使用太多的英语,但是英语是很重要的,在最后求职的时候更是如此,因此大家也一定要注意锻炼自己的英语能力。
就业问题
说完了平时的学习,接下来是大家都很关心的就业问题,首先在就业的时候career fair会给我们提供帮助,可是其提供的帮助是很有限的,大公司只有微软和bloomberg来了,我始终没有想通其他很多大厂明明在纽约有分部,可是他们都不愿意来参加哥大的career fair。另外哥大的career fair的服务也是比较一般的,秋招的时候基本上很多厂就是投个简历之后让我们到网上申请。我觉得这样的就没有必要排队了,我们去career fair的时候尽量找那种有on campus interview的,这样比较有助于我们拿面试,而且据说校招的面试会比较好过一些。
所以找工作主要还是要靠自己,主要就是找内推,而像小厂就是到handshake和linkedin上海投了。说实话纽约的地理位置对于就业还是比较有帮助的,在这里会有很多不大不小的公司,他们也会有on campus interview,其中也会有很多的金融公司来info session,大家可以趁着这种机会去多交流交流。
我建议大家最好还是投大厂尤其那些转专业的同学更是如此,因为基本只是考算法,小厂的OA和面试可以说是千奇百怪,同时招人少要求也更严格。另外我觉得Google不用太早投简历,首先9月份很多厉害的人都在投简历,很容易没有headcount,而且我身边不少同学11月中下旬投递简历也都拿到了offer。不过linkedin一定要早投,投晚了就真的没位置了。
为了提升我们的就业成功率,一份好的实习是很有必要的,我当时来美国之前曾经在国内face++实习了三个月,来美国前还刷题200。不过当时gg、fb、linkdein全部都是简历拒,当时能拿到面试的只有几个很小的startup,还被HR放过好几次鸽子,直到春招的时候才有了一些面试的机会。后来我和其他找实习的同学交流了一下,感觉到不顾数量地刷题是没有意义的,刷题的时候要多考虑数据结构的优异程度和底层的复杂度,比如为什么用array不用linkedlist,这些我们平时可能都不会注意,如果面试中对方问这种问题我们很容易暴露知识的漏洞。
一般来说哥大的学生还是比较受认可的,我了解我身边那些国内的同学都拿到了offer,而整体就业情况还是很不错的,所以就业前景比较好。另外我们在求职的时候被拒也没有什么问题,这本身就是一个坚持的过程,我们只要坚持一直投一直面试一定会有好的结果的。
生活相关
最后就是生活的方面的问题了,很多同学都觉得哥大的学费高,而且在纽约平时开销也会比较大,不过我觉得虽然哥大的整体开销水平是会高一些,但是却并不算太高,只能算标准私立项目的开销水平。哥大的MSCS项目是一个一年半的项目,学费是按学分收的,一个学分的费用是2000美金左右,30个学分就能毕业了。另外还有一些七七八八的像设施费这类的费用,而住宿的话如果合租的话一个月至少也要花到1100-1200美元左右。
另外吃饭的话如果不健康的话一天10美金就解决了,吃的健康一点一天也就二三十美金左右,整个项目念完算下来一般十二三万美金就可以了。
环境
至于平时的生活我觉得哥伦比亚大学的整体环境还是很不错的,学校虽然很小但是环境很精致,周围也有不少的美食,其中中餐馆也是很多的。另外出校门就有中餐的餐车,取餐速度很快,价格也很便宜。不过如果大家住的离学校比较远的话吃饭也会是一件麻烦事,我建议同学们最好还是学几个拿手菜,这样生活起来会方便不少。不过这边购物是一个问题,附近没有沃尔玛还是有点坑的,所以不少东西都需要到Amazon上买,一般两到三天就能到,也是可以接受的。
交通
这边的交通也是比较方便的,一般从哥大附近的106街地铁到时代广场一带半小时之内就到了,但是不得不说纽约地铁的内部环境不是很好,地铁站没有空调是硬伤。而安全问题也是存在的,安全完全不比国内,所以大家晚上需要注意自己的安全。不过学校附近也是有很多警察的,大家只要不是特别往北走也是不会有太大问题的。还有就是在这边上学大家最好先买一双靴子,否则下雪真的是寸步难行。
以上就是我的分享了,我也希望可以帮助到想要申请哥大MSCS项目的同学,最后我祝愿同学们都能顺利申请到自己心仪的项目。