百万个冷知识百万个冷知识

百万个冷知识
一起学习百万个冷知识

从创业小白到Facebook,一个普通算法工程师的这些年(文末赠票)(facebook算法乌龙)

陈村,现任 Facebook 英国分部 Senior Software Engineer。剑桥大学研究生毕业后,在一家 AI 创业公司工作5年,任 NLP Tech Leader,在机器学习、语音识别、语义分析等领域有多年经验,参与设计了多款业界领先的语音交互产品(手机 App、车载语音、智能音箱)。知乎id: 陈村。

10 月底的一天,伦敦已是深秋气象。时隔 5 年多,陈村再次回到了他曾度过一年硕士求学时光的剑桥校园。天气晴好,教学楼斑驳的欧式墙砖上,爬满了红叶。不怎么发朋友圈的他,也忍不住和身边的行人一样拍照打卡。

但和校园里来去匆匆的游客和学子不同,陈村此次赴英,是以 Facebook 伦敦分部新员工的身份前往的。作为一名扎根 NLP(自然语言处理,下文简称 NLP)领域的算法工程师,他刚刚完成了职业生涯的一个重要的里程碑:离开了奋斗 5 年的创业团队,来到世界一流的互联网公司,为自己磕磕绊绊的升级打怪之路,再添上注定不平淡的一笔。

01

被邮件砸中的 NLP「入场券」

时光退回至 2007 年 9 月,陈村踏入复旦大学的校门,开始了他 4 年的计算机本科生涯。「我从小到大都属于前 30% 的普通学生,」虽然跻身人才辈出的复旦校园,意味着拥有高于诸多同龄人的起点,但陈村还是会时不时在仰视身边大牛同学的同时,意识到自己的平庸。

不过命运之神一直对这位「自叹平庸」的青年眷顾有加。大二那年,一封由学院某算法实验室教授发给全体 07 级 CS 本科生的邮件,让他误打误撞地半只脚踏入了 NLP 的大门。

在这封陈村的「启蒙邮件」里,教授介绍了实验室的研究范围,顺便科普了一下 NLP 技术,鼓励学生们有兴趣可以自主报名加入。「我当时还什么都不懂,只是觉得很好玩,完全不知道后来会赶上技术爆发的势头,」陈村笑言。「身为大二学生,去实验室多半是帮老师打打杂,但也学到了一点东西,最重要的是和老师建立了联系。」这个随大数据和 AI 发展扶摇直上的风口,就这样悄无声息地与陈村未来的职业生涯捆绑到了一起。

陈村口中「技术爆发」的年代,指的是语音识别、语音搜索和 NLP 在智能手机中普及并迅速蹿红的 2010 年和 2011 年。

2010 年,Siri 还只是 iPhone 的第三方应用,随后 Siri 被苹果收购,并在 2011 年 iPhone 4s 发布会上,首次以 iOS 智能语音助手的身份亮相,技惊四座。由此点燃了人们对语音助手及 NLP 的关注,也掀起了 Amazon、Google、小米等众多公司的语音助手争夺战。

与此同时,2010 年陈村已临近毕业。站在学业和职业的交界点,他对技术的强烈好奇心和新兴的技术趋势产生了共振,但他并没有选择趁着NLP的风口直接就业,而是决定申请出国读硕士。

然而,留学的这一步「险棋」,陈村一开始下得并不顺利。

02

留学弯路,焉知非福

机会总是更加垂青有准备的人。「复旦不乏一入学就很清楚自己想要什么的人,」相比之下,陈村的留学路却显得磕磕绊绊、后知后觉。

在陈村求学的年代,互联网远未形成今天的红海,更多优质 CS 本科毕业生以进入一线 IT 外企为目标。而陈村在大三那年,一边对未来感到迷茫,一边却又不甘心过早给自己圈定好「外企」的去向。在大多数人选择的坦途之外,他想尝试一下不同的路线,就向学校的英国双学位项目毛遂自荐,大四在英国交换留学一年,并预计在 2010 年夏天领到双学位,回国如期毕业。

直到陈村到达英国,开始最后一学年的学习后,他才意识到自己的时间已经所剩无几,要赶紧着手准备硕士留学申请了。由于没考 GRE,申请美国的学校没有优势,陈村退而求其次选择了英国。虽然是懵懵懂懂间抱着「碰运气」的心态,但他并没有放低自我要求,只申请了牛津和剑桥两所名校,连保底 offer 都没有。「我只想去最好的,计算机院校无疑是美国最好,其次就应该申请英国的顶尖学校。」

然而,仓皇上阵的结果并不顺利,2010 年 3 月,得知被剑桥 CS 专业拒了之后,陈村连牛津的申请都没有继续完成,就在交流项目结束后回了国。

再次回到充斥着毕业氛围和 peer pressure 的国内校园,陈村在最初的一两天里,难免会受困于焦虑和失落的情绪。但他也很快调整心态,明确了下阶段的 to do list:在毕业后的间隔年里,完成一份专业相关的兼职实习,同时再次申请剑桥硕士。

虽然申请失利,但陈村却「因祸得福」地获得了一份宝贵的硅谷名企实习机会。也算是山重水复,柳暗花明,当年由一封邮件与陈村结缘的实验室老师,在陈村毕业的当口,又给了他这份惊喜。

7 月份,刚忙完毕业还没「着落」的陈村例行拜访了恩师。老师表示,门下正好有一位陈村的师姐在硅谷某知名 IT 大厂工作,需要招一位能在岗 1 年的实习生。这对于陈村来说简直是量身打造的机会:「那可是硅谷啊,我一定要去!」陈村非常兴奋,一口答应了。

2010 年 9 月,陈村远渡重洋来到美国。他四处「勾搭」同学和朋友,把当时的 FLAG(Facebook、Linkedin、Amazon 和 Google)等知名企业都参观拜访了个遍;虽然身边一直不缺优秀的同龄人,但在世界顶级的 IT 产业区,他还是受到了技术氛围的强烈冲击,大开眼界。

在美国实习期间,陈村所在的团队隶属于这家老牌 IT 企业的北美研究院,以学术研究、发表论文和输出行业观点为目标。陈村任职 Research Intern,参与了导师的社交网站文本处理和缩略语研究,以 Twitter 的用户语料信息为主。陈村负责执行层面的工作,实现论文中的一些具体算法和 demo。

最终,项目在 8 个月后成功发表了一篇顶会论文,陈村不仅获得了公司的一小笔奖金,也对 NLP 理论研究和实际应用都有了更深理解。

与此同时,陈村没有忘记他 Gap Year 最重要的任务——向剑桥 CS 专业的 NLP 硕士再次发起挑战。

「对于志在出国的人,我有一些经验要分享,」陈村对 100offer 提到,「其实两次申请,我的个人资质和能力并没有明显变化,只是第二次我多了双学位和一封国外教授的推荐信,剑桥最终不但录取了我,还给了全额奖学金。」

海外背景的确会为国内的留学申请者加分不少,陈村给自己上的「海外双学位+国外教授背书+硅谷实习」三重保险,就发挥了作用。

03

回国加入创业团队,飞速成长

在剑桥 CS 专业 NLP 方向紧张的一年硕士留学期间,陈村进一步明确了他的职业规划:将当年自己凭着直觉和好奇心选择的 NLP 坚持到底

这个选择无疑是正确的。他在剑桥所学的机器学习算法推导原理、每周的编程作业和报告,都是实际工作中的必备知识。只是学生时代的陈村还并不知道,自己所储备的技能未来会在怎样的公司和业务场景中生根发芽,发挥价值。

从剑桥毕业后,陈村并没有考虑过留在英国。一方面 POW(留学后工作)签证刚取消,在当地直接就业的客观限制条件太多;另一方面,陈村盯上了国内蓬勃发展的大数据和 NLP 市场,「我发现可以在国内做很多牛逼的项目,没有多犹豫就回国了。」

回国后工作的第一站,陈村再次选择了少数人走的路。大多数海归会将大中型名企作为职业起点,而陈村加入的是一家当时业内名不见经传的 AI 创业公司,主业是语音交互和智能硬件。陈村入职时,公司刚刚成立满一年,只有二三十人的规模。

之所以会做这样的选择,源于陈村对公司创始人及 CEO 的关注。公司创始人是 NLP 和 AI 学界非常有名的专家级人物,为美国名校博士、谷歌背景。

于是,冲着这样的大神级人物,从加入实验室、两次申请出国,到在硅谷四处「勾搭」,陈村性格里一贯「心之所向,素履以往」的冲劲又占了上风。他直接在微博上给创始人私信留言,表达了自己对这家创业公司满满的热情和向往。最终,双方在面试里一拍即合,陈村以研发工程师的身份加入,负责核心算法的实现。

因地制宜,做出正确的选择,其实也是个人能力的一种体现。陈村从创始人的资质中看出了公司的潜质,后来的事实也证明,这一次他又搭上了「顺风车」。

陈村入职时,是 NLP 方向的最初一批全职员工,参与了多个核心项目的研发。加入的第一年,公司的人员规模就翻了三倍;而 NLP 一直保持着精英化队伍,人数维持在个位数左右。

比起互联网人平均两年一跳的节奏,陈村的职场第一程可以算是马拉松了:在这家业务迅速扩张、技术氛围浓厚的公司,他坚持着 996 的高强度工作节奏,一待就是 5 年。公司从 30 人扩张为如今 600 人的中型企业,陈村也从一个初出茅庐的小兵,逐渐成长为带领团队其中一个技术方向的 Tech Lead。

当然,成长的过程并非一帆风顺,这也是陈村承受压力和拥抱变化的 5 年。

比如不断接受技术和应用场景转变的挑战。公司最初的场景是手机应用,后来从 2014 年起以智能手表为切入口,在可穿戴设备、音箱和车载等智能设备场景上,尝试开拓更大的语音交互空间,基本一年推出一个全新的产品线。这对算法团队的反应速度是一个不小的挑战。「2016 年,Magic 个人助理模式很火,我们转而开发有上下文语义理解能力的多轮对话算法。因为之前有非常成熟的单轮对话 NLP 的积累,我们花了 2 个月时间从零做出来了多轮对话系统。」

同时,公司业务形态的快速迭代,还意味着即便是负责算法的陈村,也不时要扮演「救火队员」和「开发替补」的角色。当公司全力扑在移动端开发上时,他甚至从头开始学写安卓,做了半年的安卓开发。

对于接二连三的挑战,陈村并不感到痛苦。「基本上,每当我快到瓶颈期或者舒适区时,很快又会有新的业务场景冒出来,」当单轮对话算法基本已成熟,他开始感觉到在「新建场景-数据标注-测试」的工作循环中自我重复时,车载场景下的人机多轮对话又被提上了议程。业务驱动算法迭代,永远让你保持开疆扩土的兴奋感,这就是陈村眼里 NLP 的独特魅力。

在失败经验中培养项目管理和团队规划意识,也是陈村在 5 年间领悟到的另一重要技能。入职第 3 年,陈村由一线开发工程师升为Tech Lead,管理一支由应届生组成的小团队。从一人单打独斗,到带领团队一起「找肉吃」,这又是一个倒逼陈村快速成长的机遇。

「我们组比较特殊,每条产品线都有专属的产品经理、开发工程师,但所有产品线的语义分析需求都要汇总到我们组来实现。」陈村意识到,由于公司业务发展过快,人员增长赶不上项目增速,平摊到每人身上的压力不减反增。时间一长,所有产品线的开发进度都卡在了 NLP 这里,公司内部针对陈村组的抱怨也越来越多。

刚「走马上任」就遭遇开发进度压力,陈村急于寻找解决问题的出口。与 CTO 和其他部门多次沟通之后,他总结出了几个关键措施:

首先要学会更好地预估项目工作量和排期。「我们接到一个新项目时,总觉得前几个项目已经结束了,可以接,但老项目又会有各种问题和临时任务冒出来,导致团队时间总是紧绷着,完全没给自己留有余地。」技术 leader 应该充分预估项目需求的所需工作量与时间,为未来公司的业务发展留足战斗力。

其次,必须提前做好人才储备,NLP 这类专业技术岗位尤其如此。「当团队需要投入人力到新的项目上,即便马上开始招聘,人才到位最快 1 个月,入职后还要花很多时间培养,所以必须要有内部人员储备和技术积累。」

为解决这个问题,陈村几乎变身「挖人狂魔」,混迹于各个技术群,寻找合适的人选。同时,由于创业团队对人才的学习能力、技术实力和解决问题的能力要求更高,且 NLP 薪资高、人才储备少的特点,客观决定了招聘的难度,陈村也善于从公司内部资源入手,将数据清洗和标注等耗工时又易上手的工作整理成一套标准文档和工具,鼓励其它项目的 PM 和开发一起参与。

进入创业公司的 5 年,陈村以肉眼可见的速度积累着技术深度、项目管理和跨团队协作技巧,已经不再是当年那个「愣头青」了。然而在 2018 年上半年,他骨子里的那点不安分,终于促使他迈出了职场生涯的下一步。

04

肉身翻墙 Facebook:

再不出来看看,我怕自己会后悔

不是所有的创业公司都有上市敲钟的那一天。即便是团队「老骨干」陈村,内心也不时会冒出对未来的担忧和犹疑。

由于身边优秀的同龄人很多,陈村越来越意识到自己的职场处境并不算明朗:虽然他在公司仍有上升空间,但本质上,将个人职业筹码长期押宝在一家公司,谁也不能保证没有风险。

「我之前的简历还是不错的,但如果在这家公司最后没有等来上市,我们的业务体量限定了我并不会上升到高层管理岗的位置。毕竟我的总监和 CTO 也都在等着上市,留给我的空位所剩无几了。」陈村一针见血地指出了自己的问题。「再过几年,我已经 34、35 岁了,在小公司内部如果没有做到足够高的职位,跳槽反而会变得非常被动。」面对尚未来临的「中年危机」,陈村暗自下定决心再搏一把。

这次求职,陈村给自己限定的大方向仍然是 NLP,以文本处理和语音交互为主。在创业团队摸爬滚打的技术实践,为他打好了坚实基础。国内外的八家一线互联网企业向他抛出了 offer 橄榄枝,不过最后兜兜转转、机缘巧合,陈村选择了 Facebook 英国分部的 offer,又回到了他毕业前的起点——伦敦。

「这次我只想离开北京,到离父母更近的城市工作生活,最初并没有想到英国。」陈村这样回顾起选择 Facebook 的经历。与其说是回到英国,不如说是冲着Facebook的招牌去的:他尤其看重 Facebook 的技术氛围,这也是他所拿到的 offer 中业务场景和团队知名度两全其美的最优选择。

重返英国,陈村设定的目标也非常清晰:短期内,他希望自己能学习到 Facebook 顶尖技术经验,例如如何构建一个大型机器学习系统。在此基础上,争取用优秀的工作结果获得职级晋升的突破。虽然未来还有诸多变数,但陈村对自己的长远规划已有一个模糊的方向:希望能将 Facebook 至少 2 年以上的积累和个人品牌带回国内,寻找新的值得落地生根的创业团队。

经过几个月的机会观望、多轮视频面试回答算法题,陈村最终凭借 Facebook Senior Software Engineer 的聘用函回到伦敦。和 5 年前尚显青涩的自己比起来,如今陈村已经懂得保持对市场和技术敏感度的重要性,并在更长远的时间维度下做好规划,走向成熟。

05

「自由而无用」的工程师

100offer 采访过诸多对自我要求严格的技术人,他们总是倾向于将自己的一分钟时间掰成两分钟用,业余仍然会抽空保证高效学习和自我提升。

有趣的是,虽然在职场上,陈村几乎是彻底的「实用主义者」:将职业生涯的每一步都力求走得深思熟虑,利弊清晰,甚至会不时暗自忧虑未来;但在生活中,他却又带着点「理想主义色彩」:「自由而无用的工程师」,这个让复旦校友倍感亲切的自嘲标签,也一度被陈村写进了他的签名。

这种对「无用」的追求,多半来自于陈村旺盛的好奇心。他会在闲暇时间开发一些小型项目,透着一股天马行空的极客思维。 例如他曾在公司周末举办的黑客马拉松上,花了一晚上时间搭出一套电路硬件系统,可以用语音对话操控家中的电灯开关;他也写过一个用手表远程开门的 demo;甚至还鼓捣出了一套访客系统,可根据用户的语音指令,自动打印出访客信息贴纸,等等。

「这些确实对于公司而言没什么用,但我纯粹觉得好玩就做了,你不觉得很酷嘛?」说到兴奋处,陈村两眼放光,忍不住笑了起来,恍然间,他似乎又回到了无忧无虑的校园时光。

100offer 说

在「有用」和「无用」之间的自由切换,的确是令人艳羡的一种工作生活状态。但在与陈村交谈之后,我们印象最深刻的还是他对自己的一句评价:「爱折腾」。

不论是「歪打正着」进入NLP领域,留学申请失利却抓住了硅谷实习机会;还是回国加入创业公司从零开始,跳出舒适区、放弃回到家人身边的期望,前往 Facebook,陈村每一次不甘平庸的选择,都意味着不小的风险和代价。但一番「折腾」下来,令陈村都有些意外的是自己已经在 NLP 的方向上,跌跌撞撞走了那么远:「虽然我走的不是高速公路,但在乡间小路上一直坚持向前走,也能慢慢的看到一些风景。」

愿更多像陈村一样走「乡间小路」的工程师,都能获得时间的犒赏。

如果你对陈村肉身翻墙 Facebook 的经验有更多好奇,可扫描下方二维码,领取知乎 Live 免费赠票:在这场 100offer 与陈村合办的 live 中,陈村将以过来人的身份,向你分享工程师的实用求职经验与面试技巧。

扫码领取知乎live赠票

彩蛋时间

Q & A:五问陈村

以下Q&A环节中,Q代表100offer,A代表陈村。

Q: 入职创业公司之后,你印象最深的第一个项目是什么?收获了什么成果或教训?

A: 我入职的第一个项目就是上线一个新的算法,印象最深的是老板教了我具体的方法论:做任何算法改进前,要先找到并设定合适的核心量化指标,把实验数据做好,再去做算法提升,要确保你的优化是能看到量化结果的。其实这是非常基本的要求,但刚刚工作时我却没有这个 sense。经过一番折腾,最后这套代码的运行结果很不错,现在还在线上跑着。

Q: 你认为在创业公司做 NLP 相比于在大公司做 NLP,主要的技术难点是什么?

A: 首先,缺少真实环境下的大量业务数据积累,是无论大小厂都会遇到的难点。NLP 有一个定制性:每个公司对 NLP 的定义是不一样的。比如讯飞和小米做语音识别是一样的,都是把语音一一标注对应到文字,是可以直接购买或借助外界数据包的。

但 NLP 必须要根据公司自己的业务场景来定制。对每个场景的定制需求和问题定义不一样,语义分析结果也就有天壤之别。即使是很小的需求差别,你的数据标注标准也会不同,人工标注的数据不同,就会导致训练出来的模型有很大的偏差。

其次,大小厂之间的数据量差异,并不至于对 NLP 的结果产生质的区别。假定用准确率来衡量,首先是算法模型,其次是喂给这套算法模型的数据量。算法模型都是开源的,各个公司都差不多。而数据量的主要瓶颈就在于人工标注。

NLP 和推荐算法不同,推荐算法依赖的是行为数据,用户的点击、观看等数据无需人工标注,所以抖音的推荐算法背后,是几个亿的流量,但小公司背后可能只是几百万的流量,这时推荐算法的准确性就会有明显差异了。

但 NLP 要依赖于人工对语料的标注,大厂的确可以人工标注得快一点,但积累差距的速度并不会像行为数据那样明显,并且 NLP 对数据量的要求并不算高。所以,在不同公司做 NLP,我认为面临的技术难点还是由 NLP 本身所导致的,和公司规模关系不大。

Q: Facebook 的面试流程是怎样的,该如何准备?

A: Facebook 的面试流程很机械化,他不会看你的项目经历,对于同一个岗位,面试都是按照这个顺序来:第一轮 behavior questions, 第二轮 machine learning system design,第三和第四轮都是纯算法 coding。

我个人认为 Facebook 的面试目的就是做个「正反区分」,区分你是不是够「聪明」、是否「具有丰富编程经验」。可以上 Leetcode 多刷刷题准备,一来熟悉面试中的主要算法思想,二来熟悉现场白板写代码的流程。

Facebook 是我最后面试的一家公司,这也算是一种准备的方法:通过其他面试不断来衡量自己的水平。要对自己有信心,即便对面坐的是 Google 的面试官,他的智商也不会比你高很多,如果被问到一题懵逼了,不要慌,背后肯定暗藏玄机。慢慢和面试官沟通,把解题入口找出来,就会发现里面其实还是一样的老套路。

Q: 伦敦分部的 Facebook 是怎样的一家公司,有哪些业务组?

A: 伦敦是 Facebook 海外最大的一个分部,是为了吸引当地人才,分流美国的流失人才,毕竟有很多人拿不到美国工作签证。

而具体分工方面,主要会考虑业务的独立性和跨国的团队协作性。毕竟伦敦和美国总部有 8 小时时差,所以伦敦尽量会拥有一块独立的项目,有自主开发和做决策的能力。项目业务基本上也涵盖了 Facebook 所有方面。

Q: 对于市场上想转型算法、NLP 的人,你认为现在这个时间点比以前更难了吗?

A: 从我这次求职接触的猎头和机会来看,我觉得机器学习方向的岗位应该是越来越多了,也有很多新增职位。比如腾讯的智能客服在招数据挖掘和推荐算法方面的人才,这也是腾讯的新业务。

因此,市场的需求是大量存在的,转行难度取决于个人能力,但是总体来说还是挺难的。机器学习要先会高数、线性代数和概率论,培训机构教的偏工具应用,但要直接转 NLP 方向非常难,因为市面上和你直接竞争的就是北大毕业生;除非从一些机械的工作入手,比如数据标注。

最后再次为大家献上 100offer 的本期福利:

扫描下方二维码或阅读原文,可领取知乎 Live 免费赠票:陈村作为live主讲人,将会向你分享他的亲身经历、实用求职经验与面试技巧。如果你对陈村肉身翻墙 Facebook 的经验有更多好奇,欢迎领票收听!

扫码领取知乎live赠票

//文:雨蹊

//陈村知乎主页:@陈村

100offer 是谁 ?

100offer 严格筛选来自世界各地的优质公司,打造了一个优秀人才和公司的平台,致力于帮最好的人才发现更好的工作机会。使用 100offer.com ,互联网人可在一周内收到来自北京、上海、杭州、广州、深圳、新加坡等数千家优质企业的工作机会。

领取知乎live赠票,听陈村亲授面试技巧

未经允许不得转载:百万个冷知识 » 从创业小白到Facebook,一个普通算法工程师的这些年(文末赠票)(facebook算法乌龙)
分享到: 更多 (0)

百万个冷知识 带给你想要内容

联系我们