全文共2753字,预计学习时长9分钟

图源:pixabay

我在三星电子做了两年的软件工程师,一直在计划跳槽。最初开始找工作时,我根本没敢想自己可以有机会在Facebook工作,然而仅仅五个月后后我收到了录取通知书。

7月时我进行了一次全面的求职,除了申请Facebook之外,还开始准备申请热门的科技巨头。我想在和Facebook碰碰运气之前,先在其他公司的面试中表现出色,这样就足够自信了。

这是一个充满期待和意外的旅程。本文中我将分享所有的经验和途中获得的见解。

暗中出击

利用缝隙时间,我开始在LinkedIn上建立关系网。我搜索了想申请的公司的招聘人员,并给他们发了电子邮件。我没指望会有什么实质性的结果,但这个接触招聘人员的过程给了我某种刺激和信心,帮助我度过了准备阶段。

LinkedIn是一个很好的平台,你可以给招聘人员打电话,但确实需要坚持不懈。不要胆怯,去接触陌生人。我收到了亚马逊、微软、Snapchat、Bloomberg和苹果等公司的招聘人员的回信,他们只是简短地回复了一条消息。

经过锲而不舍的努力,幸运之神终于降临在我身上,8月份发的一封邮件让我接到了一个来自Facebook的招聘电话。

在求职过程中,接到第一个招聘人员的电话是最耗时的。就算感觉没有准备好,还是要开始申请空缺职位。在安排第一次面试之前,可以向招聘人员申请几个月的准备时间。

希望之光

怀着最好的期望,做着最坏的打算,我参加了电话会议,招聘人员来自Facebook的AR/VR部门。

信息:Facebook分为不同部门且每个部门单独进行招聘,即Facebook工程、FacebookAR/VR和Facebook人工智能。

她问了一些关于目前职位和工作经验的问题。我一直是一个C/C++开发人员,在XR中没有经验,我很害怕自己不适合招聘人员心目中的角色。有人说,只有当在电话回合中表现出色时才会被考虑,因为技能与团队并不完全一致。

洞察:Facebook工程有一个招聘限制,他们只考虑有超过7年经验的候选人。8月可能是Facebook招聘周期的尾声,今年的员工人数已经达到上限,空缺也减少了。我认为在10月份之后,在新的招聘周期开始时,申请会更容易一些。

一定要搞定

两周后我安排了技术屏幕面试。面试形式是在45分钟内解决两个问题。这些问题是基础的,易于编码(数组和字符串问题),我想讲讲关于测试运行。

图源:unsplash

测试运行:代码没有在面试中编译和执行。为了验证,面试官要求接受测试输入,并展示它将如何在代码中运行。

提示:测试运行是在面试期间调试代码的好方法。一定要在面试准备中包括测试。对于面试官的第二个问题,我想到了两个解决方案,并向面试官解释了这两个问题。他要求比较这些解决方案,并分析它们各自的优点。最后保留五分钟向面试官提问。我不认为这五分钟有助于候选人的绩效评估,无需担心。

众所周知,Leetcode是一个非常好的准备面试的网站,Leetcode上一个鲜为人知的宝藏是Leetcode discus。人们在这一页分享他们的面试经历和问题,请相信,面试问题是会重复的。

第一轮面试

FacebookAR/VR部门办公室

Facebook的面试过程相当迅速。我在两天内收到招聘人员的回信,然后飞往伦敦进行现场考察,一共安排了四次面试。

编码面试

有两个问题需要在45-50分钟内解决,涉及二叉树、字符串、堆栈和列表。你需要先和面试官讨论解决方案,然后在白板上写下代码。

提示:代码中总是有一些边缘情况需要处理,在压力下编写代码时很难处理它们,测试运行就显得很重要了。编写解决方案后,我立即告诉面试官,将在一个通用示例上测试运行解决方案,并首先自己调试。

代码中明显的错误是由第一次测试本身带来的——与其让面试官指出错误,不如自己找到它们。通过这些测试运行,我可以有时间考虑可以合并到代码中的边缘情况。

系统设计面试

对于入门级的软件工程师来说,这是一个有趣的全新回合,目的是从头开始设计一个系统。问题陈述通常如下所示:

1.设计现有产品,如WhatsApp(瓦次普)、Facebook、谷歌搜索等。

2.设计其中一个应用程序的特定功能;例如,在Facebook应用程序中实现时间线。

3.设计一个完全假设的场景;比如,创建一个系统来存储相隔很远的三台服务器的日志。

行为面试

这部分是最简单的,但不要掉以轻心,因为在这次面试中出现的问题都会使你失去选择的机会。这些问题围绕着非技术性的经验展开,比如领导技能、团队精神、如何处理分歧等。这组问题几乎是固定的,我们可以提前准备好答案。

提示:在面试的前一天,浏览一下受欢迎的行为问题清单,想想职业生活中的趣闻轶事。在一系列技术面试之间,利用这次面试放松一下。这一轮的信心增强有助于提高士气。

第一次失望

一周后我收到了面试反馈,我本以为自己做得很好,但结果并不及所料。我在两次面试中都得到了很强的正面评价,其中一次是编码轮的正面评价,另一次是系统设计的负面评价。这些是我从经验和反馈中获得的见解:

·        系统设计回合是决定因素。以一种结构化的方式来表达自己的想法是非常重要的,不要错过诸如数据库模式、协议定义等设计细节等要点。最好从收集需求到高层次设计,再到讨论利弊,主动并以合乎逻辑的方式推动讨论。

·        Facebook希望应聘者在算法方面表现出色。他们寻找小错误,甚至最优解,例如遍历数组两次而不是一次。尽力做到最好,不要自满。做测试运行,讨论边缘案例,尝试优化,并快速写在白板上。从积极的方面来说,我觉得所有的问题都有一个非常简单的解决方案,既不难提出,也不难编码。

图源:Facebook London

第二次机会

我和招聘人员表达了自己的困惑。几乎可以肯定自己会得到一份工作,但反馈却出人意料。我从未想过系统设计会有这么大的价值。

幸运的是,我又被安排了两次面试,一次是系统设计,一次是编码。再次飞往伦敦接受另一家公司的面试,同时安排了Facebook的面试。老实说,在过去的五个月里,接受了这么多的面试,我已经筋疲力尽了。

这两次面试是我求职阶段的最后一次机会,我只是希望这一阶段结束。这一次,我对系统设计有了新的认识,对流程有了更清晰的了解。先进行了编码面试,面试进行得很顺利。关于系统设计,问题陈述与流行的移动应用程序的功能相关。

这次更详细地讨论了设计,进行了定量分析,比如服务器所需的系统数量、数据库大小等。这次我付出了100%的努力,我们进行了很好的讨论。

提示:系统设计面试的重要实践部分是:收集需求、定义协议、高级设计、数据库模式、数据大小估计、组件设计和权衡。

两周后得到反馈,这次是正面的。我得到了一个Facebook工程的E4职位。或许系统设计之所以如此重要,是因为E4工程师除了编程之外,还应该了解设计。

图源:unsplash

我从来没想到换工作这么难,那些正在挣扎的人的沮丧我完全能够感同身受。事情并不总是按计划进行,面试过程中有机会或运气的作用。祝你好运!

推荐阅读专题

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:苏韫琦、元艺博

相关链接:

https://medium.com/better-programming/facebook-interview-experience-and-insights-51e383f3c70d

如转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

科技公司面试经:我是如何获得Facebook工作机会的?相关推荐

  1. 四川诚自科技公司面试总结

    人生第一次面试找工作啊,必须记录一波.之前受朋友邀请,答应在开学第三周的周一去到四川诚自科技公司面试,先介绍下我们都是软件工程大三在校生,主要是面试春招实习岗,我面试java后端研发,他面试前端,由于 ...

  2. 终于,富途网络科技公司---面试

    富途网络科技公司-面试 4.7-5.24 笔试之后一个多月终于收到了面试通知 面试的是一个小姐姐,我提前十分钟就进面试界面等了,离3点越来越近,心也是越跳越快.但是面试开始不那么紧张了,氛围很轻松,小 ...

  3. mac上将视频变小_14+电话面试技巧实际上将为您赢得工作机会

    mac上将视频变小 这些行之有效的技巧已帮助像您这样的人将采访转变为Google,Facebook,Amazon等的优惠. (These proven tips have helped people ...

  4. 硅谷的万圣节,看科技公司如何玩出新花样?

    专栏 | 九章算法 网址 | www.jiuzhang.com 一年一度的万圣节到了.作为每年赛逼格的重大节日,硅谷各大IT公司门也不甘示弱,玩起各种新花样. 那么,硅谷科技公司的万圣节都是怎么过的呢 ...

  5. 科技公司最常用的50款开源工具,提升你的逼格~

    点击关注上方"视学算法",设为"置顶或星标",第一时间送达技术干货. 本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品 ...

  6. 科技公司最爱的 50 款开源工具,你都用过吗?

    来源 | GitHubDaily 本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品. 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自 ...

  7. 科技公司钟爱的50款开源工具

    过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的IT基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开 ...

  8. 不用找了,这300家公司面试不考算法

    关于程序员面试要不要考算法的讨论,几乎已经是各大求职论坛的月经帖.而苦于刷题量越来越多的同学不禁要问:有没有不面算法的公司? 答案当然是有的,Github上就有一个star 15k的项目,名叫hiri ...

  9. 科技公司钟爱的50款开源工具--转载

    本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品. 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提 ...

最新文章

  1. 优秀程序员都会关注的公众号
  2. Python+selenium自动化:页面加载慢、超时加载情况下内容已经加载完毕的快速执行脚本解决方案,页面加载时间过长优化方案
  3. 信息系统项目管理案例3
  4. linux中ps aux和ps -ef下显示的意义
  5. arquillian_使用Arquillian测试安全的EJB
  6. 构建官方CoreOS COSA 镜像并构建 CoreOS
  7. C语言单元测试框架-cmocka示例
  8. 打开慢_苹果手机聊天回复特别慢?打开这个开关,1分钟打200字都没问题
  9. java request获取域,Java Web - Servlet(13)HttpServletRequest详解(获取请求数据、请求分派、请求域)(二)...
  10. PowerShell定时记录操作系统行为
  11. 使用php-fpm状态页观察当前的php-fpm状态
  12. c++中的explicit关键字及隐式类型转换
  13. (转)如何看待美国监管机构要求文艺复兴基金提交源码?
  14. 红米k20pro短接9008,红米k20pro短接9008_小米、红米全系列短接点拆机进入9008模式刷机图解方法...
  15. 【一文读懂】Contours Hierarchy ——opencv边界的继承结构,表格的提取,表格孔洞处理,空心形状结构的提取
  16. R 包 rgl 安装失败, 报错 X11 not found but required, configure aborted 及解决方法
  17. .计算机自动关机或重启,电脑自动关机或重启怎么治
  18. 计算机组成原理A原是什么,计算机组成原理(A).doc
  19. 为啥互联网都使用缓存
  20. nginx的安装以及简单代理域名

热门文章

  1. HttpClient的使用
  2. mysql 密码文件改成密文_需求:实现数据库密码通过密文的方式存储在配置文件中 | 学步园...
  3. cesium中添加高程terrain地形
  4. Linux—教你如何高效的批量网络装机
  5. 定出公式对应的c语言表达式,代数式到c语言表达式和常用的c语言数学库函数_pow_sqrt_exp_fabs_abs...
  6. MINI LED 驱动IC
  7. Python一看就懂系列(零)
  8. 打开virt-manager ,界面显示方格乱码
  9. 程序员面试,必要的注意事项
  10. el-date-picker 时间选择器 自定义年月日格式