Hello,大家好,我是Bob,本科毕业于陆本环境科学。20fall来到密歇根大学安娜堡分校就读数据科学硕士。今天想和大家具体分享一下我在这个这里学习、生活的感受。
一、项目的总体感受
在这个项目读master,我感觉压力还是挺大的,不过这边workload可大可小,完全看自己。硬课选多了,自然就压力大。每次debug不出来,ddl火烧眉毛的时候,随时会感到崩溃……
可能压力很多时候来源于身边的人吧,在这个项目里面我认识了很多大佬,陆本海本都有,谦虚起来让人看不清他们牛x的实力;但我做了两三天的作业别人一个晚上就做完了,有时候会因为这种实力的差距变得焦虑。
另一个压力来源就是找工作。这边刚来的第一个月就有career fair,你可能本来没有很明确的找工作目标,但是身边的各种信息、机会以及同学的网申步骤都会推着你走。本科的时候好好学习是第一要务,来了这边找工作就是你的首要任务了。再加上课程的各个project,压力真的不小。
不过虽然压力大,我还是很享受在这里就读的感受。教授在课堂上会很注重和我们互动,只要有不懂的地方都可以随时提问,老师会很耐心地给你解答。因为同学的实力都很厉害,每次听同学提出问题、老师回答的过程,我也觉得收获满满,学到了很多自己之前都没有想到的东西。
生活上的感受是上课好远,需要早点起床赶公交车;买菜也好远(要坐15分钟公交车),不过每周买一次菜还可以接受;图书馆周围只有panda,吃多了也就习惯了,但我真的还是好想念火锅、烤冷面、小肥羊、虾饺、干蒸烧卖、叉烧包、蛋挞、烧乳猪、烧鹅、烧鸭、白切鸡、蒜蓉蒸排骨、豉汁蒸排骨、海底捞、麻辣香锅、葱爆大虾、帝王蟹、烧腊、双皮奶、炸牛奶、皮皮虾、煲仔饭、砂锅粥、糯米鸡、剁椒鱼头、热干面、臭豆腐、夫妻肺片、凉粉.........
由于我是陆本,刚来的时候语言上真得不太行,记得第一个学期的时候进一些卖三明治的店,看到上面写了几十种面包种类一个都不认识,写了几十种配菜一种都没见过的时候真的很难受。上课的话老师如果没有口音就感觉还好,对着PPT还是基本能理解他在讲啥,不过稍微一走神就不知道老师讲到哪了……不过上述情况基本在一个学期以后就大大改善了,日常学习和交流上已经基本没有障碍了~
虽然安村很村,冬天室外也真的好冷,但在这里遇到的人都很有趣,学习也很充实,导致我也不太跑去别的城市玩(可能我太宅了)。我觉得安娜堡有种静谧的美感,当夕阳洒在这里满山的红叶上的时候,我总有一种在度假村里疯狂赶ddl的感觉hhh。
二、课程设置
下面呢,我来给大家具体介绍一下DS的课程。
首先是pre-core courses。
MATH 403 Introduction to Discrete Mathematics (离散);
EECS 402 Programming for Scientists and Engineers ( C++ );
EECS 403 Data Structures for Scientists and Engineers (数据结构);
BIOSTATS 601 Probability and Distribution / STATS 425 Introduction to Probability / STATS 510 Probability and Distribution;
BIOSTATS 602 Biostatistical Inference / STATS 426 Introduction to Theoretical Statistics / STATS 511 Statistical Inference。
以上的课都是可以waive的,只要你本科上过类似的,给他们syllabus就可以waive了,比如我就waive了统计课。所以如果是打算转码的话,这个项目我觉得还是蛮好的,基本上先修课直接waive掉,然后节省时间去多选一些写码课。
这里给大家介绍一下EECS 402。这门课围绕类实现讲了很多topics,是很实用的一门课。最喜欢的是上这门课的教授Andrew,讲课既逻辑清晰,又充满节奏感,很照顾听课同学的感受而且听得很明白。还有他的助教们,每一次作业在论坛上都是有求必应,他们都很耐心地解答你的问题。我觉得无论要不要转码的同学都值得上一下,对于类的理解会更深一点,以后无论用哪个编程语言工作都有利。而刷题的时候用c++的话也能用上(虽然真的有点麻烦。
其次是core courses,有三类,这里简单介绍一下我上的。
(一)Expertise in Data Management and Manipulation
EECS 484 Database Management System(数据库):
很好的数据库课程,说实话workload相对于其他CS课不算大,而且很有用也比较硬核,无论走data science还是打算转码学习一下应该都蛮好的。没学过sql的可以系统地学一下,几个project难度都不算太大,但是初学者还是需要花点时间来debug的,学得还算实用。我那学期的老师是Atul Prakash,讲得还可以,而且上课会很耐心地回答同学问题,回答到你懂为止。这门课除了sql还教了很多数据库内部存储的原理、运算还有空间分配等等。
EECS 485 Web Systems(全栈课):
系里几个转码的师兄都推荐这门课,说是转码神课,但是每学期都很火爆。好在DS选课优先级够高,应该第二学期都能选上的。主要教你写网页,html,css,flask,react,JavaScript,template,python等等。以上这些老师基本不教,不过写完project会了解,还会覆盖hadoop和搜索算法的project,而且做project老师会给说明书,只要自己花时间去了解一下,照着老师的说明书写还是很有收获的。
STATS 507 Data Science Analytics using Python:
教python的,没有期末考试,只要交作业的一门课。上课讲的都是很实用的python操作,如果对python还不熟练的同学推荐这门课作为入门。只是可能老师的评分标准是很注重细节的,但也不妨碍你学python怎么用。
(二)Expertise in Data Science Techniques
STATS 500 Statistical Learning I: Linear Regression(线性回归):
这个课有两个老师教,我选的老师是个说话很像乔布斯的白人,讲课蛮水的,作业也简单,上课喜欢问你们有什么看法,作业照着ppt copy出来就可以了。好像本科学过的可以waive,有待考证。
EECS 545 Machine Learning:这门课一学期换个老师,所以碰上什么老师天注定。
(三)capstone
这里不介绍了,可以看看课程简介。
接着说一下选修课。
UMich DS项目的选课灵活度极高,没有固定的课程,而是定了好几个area,在每个area里面的好几个课中选一个即可。对于想转码的同学来说,DS项目还是很有优势的,选CS课程的优先级很高。master选eecs本科课的优先级大概是:CSE > DS > ECE > 其他,像 EECS 484、485、482这类转码课,基本我们DS的同学提交request后一天就能选上。同时为了平衡一学期的workload,大家也可以适当选一些统计的水课哈。
接着是一些给想转码同学的tips。
每学期选一些eecs课,搭配stats水课。入学前多刷题,多充实一些cs的经历放到简历里,因为开学就有career fair。对于cs基础好的同学,应该不用多说了,直接waive全部先修课,选eecs的课。对于cs基础比较弱的同学,入学时提交waive申请时,把probability和inference waive掉,离散数学看情况,保留c++和数据结构,很有帮助。
不要选eecs 545,每年老师讲的都非常差,而且课程很理论,对找工作没啥用。如果为了满足syllabus的要求选一门machine learning相关课程,建议选 si670(终极大水课,调调包水过去就完事儿了)。
推荐选上本科的eecs 281 data structure & algorithm。这门课对转码非常有帮助,甚至很多career fair上的公司张口就会问你有没有学过281。自学数据结构,和在学校上课伴随着写作业、考试的压力学数据结构,最后的效果肯定是不一样的。研究生选这门课的课号是EECS 403,和EECS 281是同一门课,但是403是专门给master选的,且最后gpa会往上curve,分数不会像本科生那样惨。
三、项目总体评价
我觉得作为DS项目,UMich DS是一个合格的选项,选课的灵活度适合于还不清楚自己要做什么,或者很清楚自己需要什么的同学。找工作和就业而言,最最重要的还是自己本身够不够硬,oa要过得了,面试也要过得了。
地理位置上UMich的确占劣势,但是美国的onsite面试都是报销机票的,我觉得是在接受范围之内的。这里学习氛围很浓厚,找工作氛围也很浓厚,身边人的优秀是会影响到你的。
至于选不选择data science这个专业,其实和选不选择这个项目是两回事。如果你不是cs出身,你又不想转码,想做data相关的工作,这个项目还挺适合你。而如果你是cs出身,你想尝试码农以外的道路,这里也挺适合你的。但如果你中途还是想当码农,我觉得这条路也是可以继续走下去的,毕竟在这里有很多途径能上到你想上的课。
因此,我觉得对于转专业转码的同学而言,UMich的DS不失为一个进可攻退可守的选择。如果申到更好的cs硕士自然最好,但是这里DS的转码资源对于一个需要跳板的同学而言,又会是一个好的备选方案。这个项目有太多出路了,来到这边,努力刷题,努力找工作,努力做project就是了。
最后呢,也来讲讲我眼里这个项目的一些不足之处。
一方面是项目目前在美国的就业数据不太好,主要是2点原因。(1)不少人坚持DS/算法岗,而DS和算法工程师在国内国外目前竞争都太过激烈。(2)相比在加州、西雅图、纽约的学校,安娜堡地理位置非常的偏,中小型公司可能拿面试机会少一些。
另一方面就是这里很多课主要用c++,如果是java为主可能会更好一些,毕竟用c++刷题有点一言难尽。最后呢,就是安娜堡确实有点村,没啥娱乐活动。