美国的暑假一般从5月底持续到8月底。
如果这三个月都花在玩上,那就太可惜了,所以在暑假找实习是一个非常好的选择因为除了获得实习机会,还可以换个新环境,结识新朋友,同时积累工作经验。
我工作的计算机科学领域的许多公司每年夏天都会招聘大量实习生。
2016年,我在华盛顿特区的一家创业公司实习。
这家公司主要从事法律文本的分析,非常适合我在自然语言处理方面的科学背景。
当时公司已经初具规模,租用了一层办公空间。
公司运行速度非常快,我工作的数据科学小组由负责科研的副总裁直接领导。
每当我有新的想法时,我可以直接与VP讨论,找到应用场景后立即开始实施。
公司的福利也比较不错,除了工资,还提供通勤津贴和每周一次的免费午餐,此外还有无限量的零食**。
2017年,我在华盛顿特区的康卡斯特实习。
康卡斯特是一家成熟的互联网服务提供商,专门从事宽带和有线电视服务。
康卡斯特的总部设在费城,我在康卡斯特华盛顿特区的实验室工作,该实验室专门开发新的自然语言、图像和技术。
尽管康卡斯特是一家历史悠久的科技公司,但这个研究实验室的工作节奏与之前的初创公司相似。
有了新的想法,它们可以通过简单的讨论来实现,硬件支持更加强大,拥有数十个顶级 NVIDIA GPU,用于运行深度学习相关的实验。
康卡斯特唯一的缺点是福利,除了工资之外几乎什么都不提供,而且康卡斯特也收取了几乎在科技公司标准的免费零食,尽管费用非常低(25美分)。
2018 年,我去了谷歌位于加利福尼亚州山景城的总部实习。
谷歌是一家将工程师文化发挥到极致的公司。
由于谷歌的数据海量,市面上常用的工具在谷歌中都会遇到效率问题,所以谷歌的工程师们几乎从下到上重写了所有的**。
例如,谷歌的所有数据预处理都是通过其内部工具Flume实现的。
Flume 是 Google 内部版本的 MapReduce(外称 Hadoop),它可以有效地将数据处理任务划分为多个节点,处理后再进行汇总。
机器学习模型的开发基于 TensorFlow,而 TensorFlow 是由 Google 自己开发的。
该工具长期以来一直是开源的,并且一直是学术界和工业界开发深度学习算法的流行工具包。
机器学习模型是在谷歌自己开发的TPU上训练的。
TPU是专门为张量(类似于多维矩阵)计算开发的处理单元,计算效率远高于普通CPU和GPU。
谷歌员工欺骗朋友。
除此之外,日常办公也在谷歌的产品中,比如桌面开发环境是GLINUX(谷歌的Linux版本),谷歌Gmail的底层是用来收发邮件的,谷歌文档是用来分享文档的,浏览器是谷歌的Chrome,甚至笔记本电脑都是Chromebook。
谷歌的福利在业内也是首屈一指的。
除了免费餐食和通勤班车外,该公司还经常分发纪念品,例如各种贴纸和Android机器人。
我的YouTube还发送了刚刚上映的《碟中谍6》的电影票,让我们可以在工作时间去看电影。
Google 还为实习生提供其他活动,例如团体寻宝、免费自行车租赁等。
早餐在谷歌桑尼维尔园区的自助餐厅供应。
除了上面提到的好处外,实习经历还可以为毕业后未来的求职铺平道路,因为如果实习表现符合预期,公司会给你返还优惠。
例如,如果你在谷歌有两个实习机会,并且你的表现符合预期,你可以直接获得全职工作机会; 如果你做了一次实习并按预期表现,你可以将现场面试的轮次从五轮减少到两轮。
相比之下,Facebook 的回聘比较容易拿到,只要你在 Facebook 实习一次,表现符合预期,就会发出全职回聘offer。
谷歌为员工提供的通勤班车。
面试准备
当我在谷歌实习时,我离毕业只有一年的时间,所以我开始准备找工作。
在申请计算机领域的工作的过程中,算法面试是必不可少的,所以我开始在leetcode上刷问题。
leetcode 上有数百道练习题,我先按算法对题进行分类,然后在每个算法下练习一些题。
在那之后,我专注于每家公司实际测试的问题(此功能需要付费)。 我练习了一个多月,当我看到问题时,我能够想到最优算法。
除了算法问题,我还复习了很多基础知识,包括各种常见数据结构的原理和实现,机器学习领域的各种基本概念和方法等等。
在准备面试的同时,我还请各公司的同学帮我做好内部晋升。
虽然自己投简历也可以获得面试机会,但通过简历的几率更高,推荐人也可以帮忙关注整个招聘过程。
面试
在谷歌实习后,我在加州多呆了一个星期,主要是为了参加面试。
内部推荐提交后,还发送了各大公司**面试的HR预约邮件。 我特意把这段时间安排在我留出的那一周。
后来,那一周的前四天,我参加了20多个**面试,白天面试美国公司,晚上面试国内公司,周五去谷歌进行现场面试。
面试内容与各公司相似。 最多的是对算法问题的检查。
这部分一般通过**编程进行。 面试官会给我一个**编程地址。
面试官提问后,我先和面试官口头谈谈我的想法,然后在回答区写下我的解决方案,然后向面试官解释执行过程,并给出时间和空间的复杂度。
由于前期准备充分,我回答了所有的算法面试问题。
不同的公司在面试时也有不同的优先事项。
国内公司都测试了我的数据结构基础知识。
美国的公司对我的机器学习知识更感兴趣。
在谷歌和Facebook等美国公司中,他们通常只问算法问题。
自招的团体,如Microsoft和苹果,会问很多与团体业务相关的问题。
现场面试
我参加了四家美国公司的面对面面试:谷歌、Facebook、苹果和亚马逊。
谷歌的现场面试安排在我所有的面试结束后。
由于我刚刚结束了在谷歌的实习,我只进行了两轮面试。
两位面试官都是广告部门的经理。
他们走过来问算法问题。 和面试一样,在我谈完我的想法后,我在白板上手写了我的解决方案,然后解释了细节,顺利通过。
Facebook的现场采访要激烈得多。
那时我回到了马里兰州。
为了这次采访,Facebook为我预订了往返机票和酒店。
采访前一天,我从马里兰州飞到加利福尼亚,第二天一大早就去了Facebook总部接受采访。
共有六轮面试,其中四轮是算法面试,一轮是机器学习系统设计,一轮是行为面试加上简单的算法面试。
算法面试和谷歌一样,就是在白板上写**。 机器学习系统的设计是基于面试官提出的问题(比如设计广告推荐系统),从零开始构建解决这个问题的系统,包括数据采集、算法设计、算法离线评估、**评估等模块。
行为面试是关于询问你在工作中可能遇到的问题,例如如果你在某个问题上与老板意见相左该怎么办。
在这个环节中,面试官希望听到候选人有开放和包容的态度,可以充分讨论遇到的问题。
苹果的面试是分组进行的,我申请了Siri的自然语言理解小组。
苹果的现场采访包括一场讲座和多轮关于算法和机器学习基础知识的采访,内容与之前类似。
由于时间问题,亚马逊的采访改为远程采访,与苹果的采访基本相同。
产品/服务选择
经过所有面试,我收到了上述四家公司的录取通知书。
在面对录用选择时,我综合考虑了每家公司的薪酬福利、工作内容和上升空间。
苹果和亚马逊在薪水方面没有足够的竞争力,谷歌给了我有限的工作内容和成长空间,所以我最终选择了Facebook。
最初的报价一般是相对较低的薪资(俗称低球),但如果有其他公司的offer,可以让各公司的HR提高每家公司的报价,从而快速提高你的薪资水平。
增加的工资主要体现在**和签约奖金上。 合理使用这条规则可以显着提高您的收入水平。
除了薪水之外,我之所以选择Facebook,是因为它灵活的选择政策。
Facebook 在招聘员工时不会预先分配群组,而是将新员工放入训练营计划中。
该项目的员工可以充分自由地体验每个小组的工作,并为他们做出最佳选择。
在 Facebook 工作是一种极大的享受。
我小组的经理总是设法很好地计划每半年的任务。
每半年,整个小组都会有一些具体的大目标,然后经理会把这个大目标分解成几个相关但不重叠的小任务,开始以2-3人为一组工作。 每人会分成2-3个小任务,每个任务组会有特定的分工。
这允许组中的员工管理多个任务,并且还允许员工在无法推进任务时不会失去工作。
这种方法还使绩效评估变得清晰明了。
员工有明确的需要优化的指标,管理者可以利用员工优化指标,争取更好的绩效考核,甚至为员工争取晋升机会。
Facebook为其员工提供了可以说是无微不至的关怀。
除了通常的免费餐食和通勤班车外,还有非常好的员工套餐健身房、按摩服务、牙医服务等设施。
此外,有足够的预算用于团队建设。
每个小组都有机会每季度进行一次团体郊游,偶尔还会有晚餐。
每位员工每年还有机会参加一次学术会议,公司承担所有差旅费用,如果飞行距离较长,公司为员工购买商务舱机票。
在今年冠状病毒大流行期间,Facebook关闭了校园,所有员工都转为在家工作。
公司为每位员工提供补贴,以购买在家工作所需的设备和服务。
对于因疫情无法工作的员工,如保安、餐厅员工、因疫情无法进入美国的员工,公司继续全额支付。