暌违日久,前来兑现承诺,写一写美国 mscs 的申请经验。之所一直拖着,一方面自然是因为我拖延症晚期又发作了,另一方面这东西难写的程度让我望而却步。在我看来,phd 申请同质化很高,大可以 one to rule them all(魔戒烂梗。。。),但 ms 申请真的是五花八门,不同项目之间差异太大,很难找到一根主线把所有项目全串起来。所以啊,我先大致提纲挈领地写一写,然后还是得把每个学校每个项目逐个分析。当然请首先阅读本文的前传,也就是 AI PhD 的申请经验🕳,毕竟 ms 申请的 timeline 和准备的材料大同小异,所不同之处主要还是在项目本身。所以要怎么提纲挈领呢?我想谈两件事,第一个,我们申请 ms 要看什么?第二个,ms 招生的又看我们什么? 所以申请美国 cs 的 master,目标无外乎三个,留美工作、准备继续深造读 phd、回国工作。留美工作大概是多数人的目标。基本的流程就是上课刷题、cpt 实习,opt,抽 h1b,排绿卡,所有学校所有项目都是如此。但上学只能去一个项目,自然是要优中选优,选最好的那个念。所以我经常碰到很多人会问的一个问题是 A 项目和 B 项目哪个好啊?我的答案很多时候是不知道。因为选项目最重要的是适合自己,有些项目再好,但是不符合你自身的现状或者预期目标,那对你就不是好项目。一般来说一个 ms 项目首先值得关心的是年限问题。一般 ms 项目都是两年,当然也可以提前毕业,但也有的 meng 项目只有一年。一年的项目往往意味着没有 cpt,也就是不能暑假实习,也就是到了美国就要开始找 full time job。当然例如 cmu 的某些项目暑假还要上课,这也意味着没有 full-time cpt,暑假也无法实习。如果你大三暑假或者大四的暑假没有在比如 google、msft、amzn 这种知名实习过,那你直接怼全职就很困难。要知道你 opt 结束之后只有 60 天的 grace period,没工作申请不了 opt 过了 60 天就要离境。所以对于那些实习不丰富,或者算法题还没刷的很熟练的,建议还是优选两年的项目比较好。但两年项目也有很大的不同。虽然很多人说美国念什么项目无所谓,都能拿面试,到时候就看你自己 leetcode 刷的如何。我做了很多的统计和调研,发现根本不是这么回事儿,很多人都只能拿到一部分公司的面试,也就是说拿面试这就是第一道坎,很多人在这儿就折戟沉沙了。那么怎么才能拿到面试呢?首先,你的 cv 要和 cs 高度相关,如果你背景全是 finance 或者 financial engineering,你申请 sde 肯定会被直接 pass,申请 data scientist 还差不多。这也是为什么明明 ee 的项目也能做 sde 而且 ee 的项目明显好申请,但还是那么多人往 cs 的 master program 上去挤。而且 cs 背景不仅能帮助你拿面试,还能帮你拿多的工资哦。然后呢,面试还要考虑到 peer pressure。有些公司比如 fb 就很讲究 diversity,这也意味着很多学校有一个 headcount 的上限。像 cmu 这种内卷大校,你要是简历不能出类拔萃很可能连 fb 的面试都无。因为 career fair 上的一抓一大把,你要找不到靠谱内推,很可能直接被刷掉了。其次,地理位置也有影响。由于 IT 公司集中在西海岸,我听到的普遍反映是西海岸学校的 cf 要比东海岸学校的 cf 上的公司多,当然主要是中小公司,因为 flag 这种都是全国招聘。而东海岸像纽约一般 fintech 的公司会多一些。所以拿到面试之后的第二件事就是面试了,这我觉得没啥好说的,就是刷题,你不刷个 300 道 leetcode,我都替你在白板上写 code 这事感到心里没底儿。现在疫情期间,感觉也没 onsite 了,基本都是 online 做题。具体经验请参考一亩三分地。很多公司会出很多原题,像 fb 似乎全是他那个 tag 的原题,当然 google 就很喜欢出新题,甚至偶尔还会出一些面试官都不知道确切答案的题出来 XD。当然,除了算法题还有 behavior 面试,像 amazon 就很重视这玩意儿。大家准备面试呢,还是要平衡好上课和刷题这两个事儿。当然啦,你读 ms 本质是买了个 opt,在我看来刷题找工作才是正事儿,读书上学那是副业。因为 ms 时间很短,不像本科或者 phd 那样有时间让你探索自我,所以还是要功利一点。而且要是真喜欢上课的话,完全可以找到 full time 之后慢慢上个够。所以啊,大家还是要根据自身情况选择课程硬核还是更 flexible 的项目。那面试拿到实习 offer 之后就 match 组,match 到了满意的之后就可以直接快进到 summer intern 了。所有人都喜欢去 fb 实习不只是 fb 钱多,更是因为 fb 可以直接给 reutrn offer,而万恶的 google 实习了还得再面两轮(不实习是 5 轮)。一般暑假努力干就是为了这个 return。有 return 之后第一个好处是稳定心态,第二个是你找其他工作可以 compete offer。像 google 这样的,要是你没有其他 offer compete,给你的 package 就很低。而且一般 intern 表现好的,都更容易拿到更大的 package。一个 package 的主要组成就是 base+ 股票 +signon。像 google 的等级,一般本科和 ms 进去是 L3,phd 是 L4,但有些 ms 也能 L4,一般是发了 paper 的 ms,因为在美国 mle>sde>data scientist。L3 的 base 一般是 11-14w,L4 能到 17w 左右。像 cmu 这种技校就十分贴心地公开了所有项目的毕业生拿到的 base salary 的统计:https://www.cmu.edu/career/outcomes/post-grad-dashboard.html。大家可以选择 master+scs+ 自己心仪的 program 看看出路。至于股票的话,一般都是四年为期,多数人都是 4 年 20 万左右。很多人虽然 base 不高,但股票多,特别是最近美股坐着火箭一样往上涨,今年到现在就涨了 40%,所以 package 总和可能特别高,像 phd 的 base 一般也不比 ms 高多少,但是股票一般没上线,像今年有个 phd 去 adobe research 就拿了 40 多万的股票。另一笔钱是签字费,只有第一年有,一般就几万,fb 的上限是 10w。所以一般一个经典的 fresh grad package 就是 12w+20w/4+7.5w/4=18.875w,差不多就是一个正常水平的新员工的税前 package。当然税后能到手的也就 60%,因为加州税太 tm 多。所以很多人往西雅图跑,因为华州没有 9% 多的州税,只有联邦税,所以很多人算了一下同样的 package 能比加州一年多拿一万多。当然西雅图的税前也要比加州低,所以总算起来其实税后差不多,但是西雅图的各种开支更低,房价更是只有湾区的一半出头。所以就看大家愿不愿意给 CA 政府交阳光税了。不过疫情之后似乎西雅图和湾区的税前 package 也差不多了,可能是因为大家都 wfh 吧。。。毕业后 full time 一般要用 opt 实习,然后在 opt 实习期间要抽 h1b,一般 opt 期间能抽三次。但很多人都提前毕业赶在 3 月前入职,主要是 h1b 抽签在 4 月,这样能抽 4 次。一般抽三次的最后命中率是 7 成,命中不了就回国、去加拿大或者在读个 professional program 继续进入 opt->h1b 的循环之中。而且虽然名义上人人平等,我直觉感觉这个抽签明显偏向高学历,当然也可能是统计偏差。如果想长期留美,还可以排绿卡,一般硕士排 eb2,phd 只要别太水可以排 eb1,期限短很多。当然啦,作为清华的学生还是不鼓励大家申请绿卡啦。如果一毕业就想回国,其实找国内的实习或者 full-time 就好了。上面说的都是找工作的东西,对于少部分有意读博深造的,我建议是先确认老板。虽然有些人管 cmu 的 msr、mlt 和 uiuc 的 mscs 叫研究型项目,但在我看来不准确,美国所有项目都可以做研究,一年的 meng 也可以,学校老板可以不搭理其他学校的套磁,但自己学校的任何一名学生发邮件想做 research 他都会答应。那些所谓的研究型项目不过是必须做研究和肯定有 funding 罢了。研究型项目可不是能随便选老板的,要看老板有没有以及你的竞争对手的情况。想想一整个项目几十个人都要做 research 的盛况,你首先真不一定能去你最心仪的老板,像 cmu ri 的很多做 cv 的老师已经不招 master 了,其次你老板手底下可不止你一个人,到时候申请的时候不可能全留下,顶多留一两个。所以不要觉得录了这种研究型项目然后接着读该校的 phd 就稳了,你很可能到时候还是正常申请,只能说你留校读 phd 的可能性比其他人大一些,但是没留校和其他人的情况是一样的。而且要是碰到个给你安排个不好发 paper 方向的 advisor,你的申请还很可能处于一个不利的地位。所以啊,我建议还是先确定潜在的 ms advisor,这个人要愿意要你,而且最好你的水平能留下,申请还是得留个保底。而且 ms 申请是一定要有 pub 的,所以一定要找个近年发 paper 多的,最好是找个 ap,毕竟不像 senior 的老教授对文章要求那么高,更方便多水几篇。所以这些五花八门的 ms 项目是如何选择我们的呢?其实标准完全不一样。像 cmu scs 的很多项目,特别是 mld、ri、lti 的项目主要是要背景 match,言外之意就是要你有相关的 research 经历,最好是有 paper,sde 实习的不太管用。但一般其他的 mscs 项目则比较一视同仁。但是东部的藤校比较重视 gpa 或者托福这种标化成绩,公立学校感觉重视程度低一点点。有些像 uiuc 这样的学校因为 mscs 是给 funding 做 research 的,所以一般比较看重本校的推荐信。当然啦,我觉得这还得 case by case,逐个项目给大家分析。至于准备和流程,基本和 phd 申请一毛一样,区别主要在于各项加权的方法有差异。我在下面的回复里按 usnews 的排名给大家分析一下 top30 的学校 cs 方向的 ms program。