CMU Global MISM data方向经验介绍

avatar 232962
zigzagloujie
21653
44
快临近毕业了,感慨良多,想到两年前的自己刚拿到offer,看过很多学长学姐写的经验文,非常有用;这次作为过来人,把自己的经历写下来,如果能有所帮助,会很开心。CMU Global MISM的介绍地里不少,但是大多都是sde方面的,data的不多,作为转码大军中坚持找data的,希望这篇文章可以帮助到需要想做data scientist的global mismer。

背景
我本科两年在国内985统计专业,大三交换到美国中部农村学校继续学统计,双修了金融数学。在美国农村大学,统计的数学要求不高,学的也不难,不深。补了一堆历史、物理、艺术等通识课,在理论学习上没有国内的深入,导致我的数学功底日渐萎靡。不过美国学校重视应用,大四和教授做了一个一年的统计分析项目,坚定了我在这条路走下去,在数据中发现有趣的insight,是我的动力。申请的时候就想读data science,然而对这个领域不是很了解,也没有学过机器学习,也不很懂python和sql,用的最多的语言就是R,但也不是现在很火的tidyverse,就是最一般的base R。

申请情况
最后我拿到了哥大统计和cmu global mism ,cmu mism本来申请的是bida,当时我对mis一点了解没有,对cmu也不是很了解,就当彩票申了,在三月底的时候来了offer,被调剂到了21个月,要去澳洲一年,想着也不错,考虑了一天就选择去了。暑假和另一个教授做统计方面的研究,感觉自己不喜欢research,也不是很喜欢传统的统计学研究土壤,环境,所以算是排除了一个可能的方向。

澳洲一年
CMU澳洲校区在阿德莱德,南部一个小城市,不过还是南澳的首府。学校很小,就两层楼,每天两点一线,生活单调乏味。但是双休日可以乘tram去海边休憩,还是非常舒适。校区一共一百来人,主要是global mism,还有global ppm和msit的同学,大家基本都互相认识。
Global mism的最大的好处就是可以在澳洲一年把core上完,但是最大的弊端就是师资力量欠缺。一个教java的老师又可以上data mining,质量可想而知。而且core的用处本来就对data science帮助不大,说实话。对于core就不多介绍了。这里想说的是,能免的课一定要免,比如dmuu,是Riaz上的,Riaz同时还上telecommunication和digital transformation,不得不吐槽一句,能相信一个人什么都可以教嘛?如果项目不重视这些课,为什么又要列为core?telecommunications和digital transformation真的很浪费时间,他们的作用可能就是科普,让我知道了通信一些基本知识,digital transformation除了让我知道long tail,别的我什么都没有记住,当然,我也没有好好学,可能好好学的同学觉得挺有用。回到刚刚说的话题,dmuu一定要免,当时我傻,想着学习excel,就上了,连免学的考试都没有去,真的太蠢了。另外,能够学的美国的远程课尽量选上,比如nosql,linux,uda等等,当时我抱着去美国再上的心,就没选。在美国好课多多了,能上的和data有关的都先学着,不会有坏处。当时我还考虑到想尝试下consulting,就选了strategic planning,发现自己真的不适合management consulting,也算断了自己一个念想。

在澳洲可以上的和data有关的课
Database management:这个是core,学database 设计理论和sql 实践,美国来的老师上,质量不错,而且sql对ds也很重要,很多偏analytics的岗位必考,所以建议好好学。我当时不知道为什么学不进去,sql 的语法对我来说很难理解,所以在美国找工作的时候,pre screen有sql 的我一律放弃了,真的也不喜欢写sql。作业挺烦的,挺费时间,最后两个人一起完成project,有些query还是挺复杂的。
Data mining: Murli教的,非常一般,他就是照ppt念,但是如果自己课外可以跟着学习一些资源,也可以有所收获。课程主要用weka和tableau,当时我在学习python的数据科学用法,所以作业都是用python写的,tableau学学也挺好的。另外,有个小组作业,是参加一个data challenge,挺难的,最后也没拿奖。
当时考虑到质量,没有选别的data课,比如远程的nosql,linux,uda等等,现在觉得nosql完全可以在阿德莱德的时候学掉,没有问题。

在澳洲,虽然课程质量不高,但是时间多,自由,可以多积累实践经验,这里指的是part time 实习。到下半学期,career service会发一些part time机会,一般是十周,很多和data相关,一定要把握住机会去做internship。因为在找fulltime面试的时候你会发现,data相关的project对方会很感兴趣,特别当和他们组做的比较接近的时候,所以前期一定要多去实践,可能比多上课要有用很多。阿德莱德创业公司挺多的,ai在澳洲也在起步发展阶段,对这方面的人才需求很大,我有身边的同学去小公司做深度学习方面的实习生,可以自己独立负责一个小项目,或者有mentor带,还是很有好处的。而且这一年是试错的阶段,我们可以去尝试不同的职业方向,比如consulting,比如data也有很多领域,多去接触项目和公司,探索自己到底想要做什么,想去什么样的公司,比窝在学校里学习要有意义多。当时我在一个做property management的创业公司做cv和object detection,也是我第一次接触深度学习和cv相关,学到了很多知识,开发了很多以前不会的技术。
另外,虽然在澳洲的师资力量一般,但是这并不妨碍我们获取知识。现在网络课程如此丰富,完全可以自学。第一学期我跟了一门网课系统学习了python,第二学期又上了一门网课学了python做data science,学data mining同时又跟了网课补充ml知识。我才发现我本科学的太少了,对data science领域了解太少,所以一点点补充。
澳洲的自然风光很好,假期出去玩真的很开心,这也是加分项,毕竟人生还是要有享受的。现在有时候我还是会怀念澳洲的阳光,沙滩,大海,周五下午热闹的酒吧。。。

暑假实习
暑假实习大家大都回国了,很多大厂offer。当时我是满世界找实习,坚定着要找data相关的。三月拿到了加拿大一个小公司的offer,cto一开始自信满满签证没问题,后来发现复杂,不愿意sponsor就收回了,四月还拿到一个新加坡公司的口头offer,后来又被放了鸽子。回国后很巧的是,简历被一家软件外企manager挑出来,一轮phone和一轮onsite就拿了offer,因为对方也急着招人,看我也不那么差,就要我了。这个实我要从头到尾负责一个数据分析项目,从数据清洗开始,到最后的presentation,分析用户使用软件的情况,很锻炼我的能。这个实习也坚定了我要做data scientist的目标,同时我也觉得这种一个人做项目其实也很有局限性,没有人一起讨论模型,处理方法,学到的很少,自学能力进一步提高的同时,很容易走弯路,我就觉得今后找工作一定要找有data 团队的。另外,我觉得自己不是很喜欢在软件公司做分析,比较枯燥,毕竟软件是不会变的,收集到的features可能每年也不会有大变化,所以做的事情多样性小,这也是为什么我后来特别想去咨询公司做ds。我觉得在什么行业做data scientist和什么公司也非常重要,毕竟我希望每天去公司都可以很开心。

第二年-匹兹堡
到了匹兹堡,自然而然面对了找工作的压力,当然选课选择也丰富多了,这时候core基本完成了,可以选很多外院的选修课,选择很多,我一一介绍我学过的。

Intro to ML (10601):非常popular的cs的课,ml入门课。当时roni教半学期,一个年轻老师zack教半学期,不得不说roni真的教的很好啊,微风细雨就把知识点给讲出来了,特别通俗易懂,也可以深入理解。他好像特别喜欢info theory,讲了两周吧,半学期才讲到了decision tree。后半段的zack真的教学水平一般,感觉被坑了,还是特别重要的内容,dl,rl,gpm等。作业都是build from scratch,觉得可以深入理解一个算法,有挑战,但是理解了就不难。考试是理解为主。10601有两个section,另一个section是郭美丽,好像workload会大一些,学的也很多,各有利弊吧。后来才感觉自己应该学701的,有个小组projec。
Data science for product managers:heinz的课,教授david很厉害,在咨询公司做过,又是教授。主要过一遍ds在product analysis的应用,但是很浅,学完了也不能应付product sense的面试,就当了解为主吧。
A/B Testing:和网上听到的abtesting不太一样,主要讲regression下的abt,偏向于社会调查一类的,不是互联网公司关心的那种,也没讲metric,具体怎么做。最后完成小组作业,也比较划水,要求不是很高。这些6分的课都只上半学期,真的不可能完全理解一个东西,而且都要求project,一般不怎么学就开始上手做project了。
NoSQL:比较high level对key value,document,graph和column family四种NoSQL database介绍,最后要写一篇论文,lab是对四种db做一些基本操作,可以了解基本的知识。
Deep Learning 11785: 四次作业,每次两个part,一个from stratch,一个在kaggle上打比赛,每周一个quiz,最后四人一组做一个project,workload很大的一门课,但是可以深入了解各种神经网络,也会有机会手写网络,用aws/gc。
Big data computing:学spark,挺浅的,五次作业,可以对spark有基本的了解。同样6分的课只是让我们大致有个了解。
Capstone:18学分的大课,4个人合作完成,在第一学期会自己选感兴趣的topic然后分配到一个项目,因为把healthcare排在了第二位,所以接到了医疗相关的项目,因为队友都很靠谱,所以也学到了很多,体验不错。
R for data science:非常水,但是也可以了解很多r的语言,给了很多自由。

Data structure for application programmers: terry lee 的 ,非常有名。上这门课是觉得作为ds要学习点数据结构,作业还好,但是有时候卡在了bug里就很久。最后考试对我来说很难,但是听sde的同学说就是leetcode的感觉。

Heinz很多6分的小学期的课,就8周的课时,不要指望能学习到很多,只能说带你入门,深入的了解还是要靠工作实践和课外的补充。

找工作
找工作方面,我从九月份开始小规模投简历,去了career fair,一个回应都没有。但是heinz还是挺好的,至少一些大公司会专门来院里招人,不过ds机会很少。在不忙的时候就会复习下统计知识,sql和ml知识,但是我越来越觉得data是一个很大的领域,要真正完全掌握太难了。在第二学期,机会渐渐多了起来,不过也是因为有些公司扩招所以机会多,所以时机很重要。去了career fair,依旧没有用,可能还是打开方式不对。大公司对new graduate真的要求很高,没有很多的机会。这里我想说的是,找几个志同道合的伙伴一起准备面试,分享机会很重。找工作是长久战,很考验耐心,要有共赢思维,多交流也可以减缓自己的焦虑情绪。

关于Heinz学院
Heinz的相关data课还是很多的,而且选课没有限制,想做modeling,在ml,dl深入的话可以选修cs学院的课,想在analytics方向多学习的heinz可以满足了,想学business sense就可以选择tepper的课。
Data science本身就是一个多学科交融的学科,工业界不同的data scientist也做着不同的方向的事情,所以搞清楚自己到底喜欢什么挺重要的,前期的internship或者课堂的project就大致自己会有个感觉。最后拿了一个healthcare相关小公司的offer,可能也和我的经历有关系。这个机会也是很巧,对方在linkedin上reach out,约了几次interview就发offer了。

最后
我觉得来cmu还是很好的决定,cmu的光环能让我拿到一些机会,而且cmu让我见识到了天外有天,厉害的人,聪明的,努力的大神比比皆是。我只能做好自己,做自己喜欢的事情就好,多和大神学习。
找工作的话,如果坚信自己喜欢data,想做data,那就早做准备,实习、知识,很多都在于积累,我很不喜欢为了一场面试去穷心竭力,我相信水到渠成和顺其自然,不过也是因为目前太弱,接受知识速度太慢,无法逼迫自己去学不是很感兴趣的东西。我一直觉得找工作其实又是双向的过程,公司在选择你,我们也在选择未来的道路。与其看重公司大小和名气,我可能更看重我会做什么。

一直被教育说data science中communication和合作很重要,要让别人懂你在做什么,用平实的语言讲一个数据的故事有时候比fancy的mode更重要。选课里的Project就提供了这些可能,遇到靠谱的队友,特别是有工作经验的印度人,可以学习下他们说话的艺术。。。

以上经验也是我一个人单方面的感受,肯定不能和大牛们比,希望可以给大家提供一个参考。毕业后还是要继续努力,成为一个优秀的ds。

关于global mism的问题我都可以回答,也欢迎在/想做data多多交流。请加米呀,谢谢!
  • 108
44条回复