印象中这似乎是 Facebook 第一次来浙大校园做交流。

前不久,也参加了 Google 的校园宣讲,G 的两大宣讲主题是 Google 介绍和模拟面试。印象最深的是无敌的一家三口每年 100w 封顶的豪华医保(配偶不限男女 LOL)。这次 Facebook 的结构类似:

Tech Talk: Ranking News Feed for 1.2 Billon People

Workshop: Crush Your Coding Interview

两位主讲人都很棒,下面是自己的简要记录。

Crush Your Coding Interview

主讲人: Frank Qixing Du。本科复旦,研究生清华、在 fb 做 mobile 开发。

Frank 主要介绍了如何针对性准备 Facebook 的面试,从中可以看得出 F 的企业文化。

面试准备:流程,资料,沟通。主要分四块:

  1. 简历
  2. 获得面试
  3. coding,过去的项目
  4. 面试之后

简历

  • 基础信息:blabla,填写 GPA 最好附上满绩比重(据说有的学校满分是 4,而 ZJU 就是 5),毕业时间(便于 hr 筛选简历)……

  • 个人的故事:展现经验、个人影响和对事物的激情。

    经验方面:包括工业界经验,兴趣经验项目,github 等等。侧重三点:

    1. 做了什么;
    2. 做的东西的影响;
    3. 具体,简短,一页之内

    一些常用表达词汇:build,optimize,improve 等。

  • 诚恳的 highlight 自己的成就~

获得面试

  1. chat with recruiter
  2. 一到两轮
  3. on site / 电面 (2015 年会有一批 facebook 员工到中国来现场面试)

面试:stay clam and think out loud

  • tackle hard problem 的能力
  • trade-offs 的权衡能力
  • 沟通能力,表达代码的思路
  • 检测 limits:知识的深度、广度。要坦诚的说自己不知道

不会考脑经急转弯,着重在 数据结构、算法实现上。

  1. 学会提问题:明确题目的条件限制等
  2. 写出能运行的代码
  3. 不断优化

现场出题感受下处理过程: 数组的 size 是 N,存 1-N 之间的数,判断是否有重复。

  • 不要立即写代码,先明确思路,再写代码。
  • Done is better than perfect

关于项目:

  • 要准备的常见问题:最近做的项目,最有挑战的项目,最喜欢的项目
  • context:一两句话交代背景,action:做了什么,result:项目带来的影响

面试之后

准备一到两个问题:

  • you are interviewing the company as well
  • Focus on what you concerned most

总结

  • think out loud
  • 问许多问题
  • 检测代码能否运行!corner case 等,debug。清晰,健壮。
  • be yourself

Ranking News Feed for 1.2 Billon People

主讲人:Meihong Wang。本科浙大,现在是 Engineering Manager,团队在做 New Feed。

Meihong 学长从项目组的动机、News Feed 架构以及企业文化三个角度做了介绍。

MOTIVATION

一些数据:

  • 550M daily user
  • 5B page loads/day
  • publish <1s
  • Fetch Rank time < 200ms
  • 2000 candidate stories per day per user -> rank them

ARCHITECTURE

Actor -logging -> user action storage <- query -> viewer

Pull model:push 耗资源太多

Feed Evaluation:机器学习,概率模型,预测

Culture

  • Make the world more open and connected
  • 6k 员工,3k 工程师。世界四个工程办公室:Menlo Park,Seattle,New York, London
  • THE HACKER WAY:在一个产品上,不断的改进迭代。
  • We move fast
  • Hackthons:一两个月有一场
  • 工作一年以上,可以跳到另一个 team 做一个月。鼓励去不同组,了解整个公司。
  • 公司的架构是扁平、网状的,工程师的 title 一样,就是 Software Engineer
  • 职业发展:为期 8 周的 Bootcamp;English 1v1 辅导;各种 camp,方便了解公司技术;免费洗衣服,免费食物等……

问题环节

只摘录了一些来得及和自己感兴趣的问题:

  • 我问道 Facebook 怎么看待“全栈工程师”,Frank 透露了他对业界流行 full-stack 的看法:“full stack is bull shit”,是一个噱头,startup 公司更需要。fb 对此没有特别的倾向性。当然,他们也有厉害的同事确实是 full-stack 的。
  • 工作强度,比国内大多数公司要清闲,币硅谷大多数公司要强。
  • 一周一次组会,一周一次 manger 半小时约谈
  • 2015 年,只要合格就招,没有人数限制。中国学生在 F 的口碑很好。
  • 工程师级别:3-8。研究生是 3,博士 4, 5 开始是 senior 级别,但是大家 title 都一样。
  • 工程师文化
  • 21 天年假

 原文地址:http://biaobiaoqi.me/blog/2014/05/22/facebook-tech-talk-and-workshop/
 版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0

Facebook学长交流分享的更多相关文章

  1. Android Facebook和Twitter分享

    1. 背景 在年初的时候,公司的项目有个新的需求,在英文版的应用中加入Facebook和Twitter分享功能. 2. 完成情况 由于这个项目比较急,所以开发这个功能从预研到接入总共耗时一周.后来,在 ...

  2. Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享

    架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第一期主题:容器实践.Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是CI/CD,DevOps,微服务的重要 ...

  3. Facebook三种分享方式

    一.去Facebook开发者中心注册APP,获取APP ID https://developers.facebook.com 二.导入 FBSDKCoreKit.Framework, FBSDKLog ...

  4. 关于2017届学长制作分享软件share(失物招领)的使用体验和需改进的内容

    使用体验 1.注册界面 注册界面提示明显,提示用户输入什么类型的密码,而且输入什么样的用户名不限,注册界面色调比较单一,注册内容比较少,而且比较简单,体验感比较好,但注册界面色调和设计全无,使用感一般 ...

  5. Java交流分享(522818473)

    今天来分享哈自己的技术交流群,记得还是刚接触Java建立的群,那时候学习Java很有动力,经常和群友谈论问题,现在都专注公司业务和技术这一块,很多后端框架都没用除了restful,其他都是封装的,不过 ...

  6. Asp.net core中Migration工具使用的交流分享

    a,ul>li,em{ color:deeppink !important; } h2>a{ text-decoration:none; } ul>li{ padding:3px; ...

  7. 网页上facebook分享功能的具体实现

    1,一个链接: 参数是要分享的页面的链接 代码如下: <a style="width:35px; height:40px; position:relative; top:10px; l ...

  8. 使用facebook和twitter进行分享经验总结

    凤凰涅槃,浴火重生. 在传说当中,凤凰是人世间幸福的使者,每五百年,它就要背负着积累于在人间的所有痛苦和恩怨情仇,投身于熊熊烈火中自焚,以生命和美丽的终结换取人世的祥和与幸福.同样在肉体经受了巨大的痛 ...

  9. Android Facebook和Twitter登录和分享完整版

    最近公司的软件需要改国际版,需要Facebook和Twitter的登录和分享. 本人先用Umeng的第三方社会化分享实现了该功能,但是后来一想问题来了,经过查证.Umeng只在中国和美国有服务器,那也 ...

随机推荐

  1. 仿招商银行载入loading效果

    在招商银行android手机app中.有例如以下图所看到的的loading载入效果: 实现这个效果还是比較简单,就是自己定义dialog,设置自己想要的布局.然后设置旋转动画. 主要步骤: 1,写布局 ...

  2. Altium Designer敷铜的规则设定

    InPolygon 这个词是铺铜对其他网络的设置,铺铜要离其他网络远点,因为腐蚀不干净会对 电路板有影响... 问题一:: 如下图所示,现在想让敷铜与板子边界也就是keepoutlayer的间距小一点 ...

  3. 杭电ACM1197——Specialized Four-Digit Numbers

    题目的意思是从2992開始的四位数.每个四位数的10.12,16进制的数的每一位加起来都相等,就输出该数. 非常easy的一道题目. 以下的是AC的代码: #include <iostream& ...

  4. PJSIP开源库详解

    PJSIP是一个包含了SIP.SDP.RTP.RTCP.STUN.ICE等协议实现的开源库.它把基于信令协议SIP的多媒体框架和NAT穿透功能整合成高层次.抽象的多媒体通信API,这套API能够很容易 ...

  5. css3-11 如何设置文字的阴影

    css3-11 如何设置文字的阴影 一.总结 一句话总结:text-shadow属性.text-shadow:3px 3px 3px #f0f; 1.text-shadow属性的参数依次是什么意思? ...

  6. JAVA中try-catch异常逃逸

    有时候一些小的细节,确实比较纠结,对于try-catch-finally代码块中代码依次执行,当try中有exception抛出时,将会有catch拦截并执行,如果没有catch区块,那么except ...

  7. 应用层协议实现系列(三)——FTPserver之设计与实现

    在实现了HTTPserver之后.本人打算再实现一个FTPserver. 因为FTP协议与HTTP一样都位于应用层,所以实现原理也类似. 在这里把实现的原理和源代码分享给大家. 首先须要明白的是FTP ...

  8. javascript中定义事件的三种方式 分类: C1_HTML/JS/JQUERY 2014-08-07 10:27 634人阅读 评论(0) 收藏

    在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...

  9. form表单上传附件的几种方法

    问题描述:在网页开发过程中,当需要上传附件(图片,音频,视频等)时,常规方法是使用form表单进行提交,这里总结一下form表单提交的几种方法. 参考地址:http://www.cnblogs.com ...

  10. DATAGUARD在做SWITCHOVER切换时遇到问题总结

    1.主库在进行物理主备库角色转换的时候遇到ORA-01093错误 SQL> select switchover_status from v$database;   SWITCHOVER_STAT ...