`

Facebook系统设计准备

 
阅读更多

转自:http://www.mitbbs.com/article_t1/JobHunting/32741713_0_1.html

提供内推,社招校招皆可,天朝美帝皆可,如有兴趣,请发简历到fbrefer@163.com
申请码工职位的,请至少保证刷完一遍leetcode,或同等水平
最近一年申请过的,由于公司政策,请不要再申请

关于面试流程
社招的话
电面1-2轮,一般就是coding
onsite一般是4轮,2轮coding,1轮design,1轮behavior+coding
校招的话,那轮design也变成coding了

关于准备
1) algo/coding
建议大家刷一下leetcode,基本上cover到了大多数常见面试题,而且有可能碰到原题
。需要注意的是,仅仅解出来,做到bug free可能是不够的。代码的质量和速度也非常
重要。网上有一些别人给出的答案可以参考,尽量做到代码简洁清晰。速度上leetcode
上所有题都做到10分钟以内写完。

2) design
解这种题是个*交流*的过程,或者说是给出方案然后获取反馈的不断循环的过程。
一般的流程:
首先你要问清楚requirement;
然后可以讲一下high level architecture,就是分成哪几个component,互相之间如果
interact,在白板上画一画;
之后面试官可能会让你深入某个component detail讨论;
也有可能变换requirement让你重新设计

另外,f家还喜欢让你估算机器之类的,做一些back-of-envelopme calculation。所以
最好对一些计算机相关的基本常数,fb的用户量等等有个大概的了解。

准备的时候建议看看fb的design高频题。一方面有可能面试的时候刚好碰到这几个
topic,另一方面其实很多design都是相通的。
之前有个帖子讲这个,原帖已经被删了,这儿有个备份http://blog.csdn.net/sigh1988/article/details/9790337

另外补充一点我收集的材料

a) 首先你可以从整体上了解一下facebook的architecture
http://www.quora.com/Facebook-Engineering/What-is-Facebooks-arc
http://www.ece.lsu.edu/hpca-18/files/HPCA2012_Facebook_Keynote.
http://www.quora.com/Facebook-Engineering/What-have-been-Facebo
除了下面给出的一些资料,fb engineering page里还有很多不错的内容
https://www.facebook.com/Engineering

b) news feed
这里有个talk
http://www.infoq.com/presentations/Facebook-News-Feed
对应的slides
http://readme.skplanet.com/wp-content/uploads/2012/11/0-3_Faceb
还有一些quora上的讨论
http://www.quora.com/Activity-Streams/What-are-the-scaling-issu
http://www.quora.com/What-are-best-practices-for-building-somet
http://www.quora.com/What-is-the-best-storage-solution-for-buil

c) facebook chat
这里有两个notes,其中第二个里面还有相应的tech talk links
https://www.facebook.com/notes/facebook-engineering/facebook-chat/14218138919
https://www.facebook.com/notes/facebook-engineering/chat-stability-and-scalability/51412338919

d) typeahead search & graph search
关于typeahead search的tech talk和notes
https://www.facebook.com/video/video.php?v=432864835468
https://www.facebook.com/note.php?note_id=365915113919
https://www.facebook.com/note.php?note_id=389105248919

关于graph search的paper, tech talk, notes。其中paper很值得一看。
http://db.disi.unitn.eu/pages/VLDBProgram/pdf/industry/p871-cur
https://newsroom.fb.com/Photos-and-B-Roll/4362/Graph-Search-Whiteboard
https://www.facebook.com/note.php?note_id=10151240856103920
https://www.facebook.com/note.php?note_id=10151347573598920
https://www.facebook.com/note.php?note_id=10151361720763920
https://www.facebook.com/note.php?note_id=10151432733048920
https://www.facebook.com/note.php?note_id=10151755593228920

e) facebook messages
两个tech talks
http://www.youtube.com/watch?v=XAuwAHWpzPc
http://www.infoq.com/presentations/HBase-at-Facebook
以及eng notes
https://www.facebook.com/note.php?note_id=10150148835363920
https://www.facebook.com/note.php?note_id=10150162742108920

f) photo storage
相关的papers和notes
https://www.usenix.org/conference/osdi10/finding-needle-haystack-facebooks-photo-storage
https://www.usenix.org/legacy/events/osdi10/tech/full_papers/Beaver.pdf
https://www.usenix.org/legacy/events/osdi10/tech/slides/beaver.pdf
https://www.facebook.com/note.php?note_id=76191543919

g) social graph data store
相关的note, video, paper
https://www.facebook.com/notes/facebook-engineering/tao-the-power-of-the-graph/10151525983993920
https://www.usenix.org/conference/atc13/technical-sessions/presentation/bronson
http://www.cs.cmu.edu/~pavlo/courses/fall2013/static/papers/117

h) tiny URL
这里有一些讨论
http://n00tc0d3r.blogspot.com/2013/09/big-data-tinyurl.html
http://stackoverflow.com/questions/742013/how-to-code-a-url-sho
http://stackoverflow.com/questions/3376163/what-are-the-things-

i) POI
参考这里
http://www.slideshare.net/mmalone/scaling-gis-data-in-nonrelati
http://www.mitbbs.ca/article_t/JobHunting/32476139.html

3) behavior,建议大家了解一下fb的culture,准备一下常见的behavior questions,
面试之前rehearsal一下。

最后面试临近的时候,可以再刷刷面经,找找感觉。像glassdoor, mitbbs/jobhunting

, careercup,这些上面就有很多。 

分享到:
评论

相关推荐

    Facebook最新面经

    从面经中可以看出,Facebook的面试题目覆盖了数据结构、算法、系统设计以及特定问题解决能力等多个方面: 1. SQL查询:考察应聘者对数据库和SQL语言的掌握,例如关于用户行为数据的查询分析。 2. 大数据处理:例如...

    Facebook API Developers Guide

    - 介绍了 Facebook 权限系统的工作原理,包括不同类型的权限及其作用范围。 - 讲解了如何在应用中请求特定权限的方法。 #### 三、基础知识:Facebook 平台的核心概念(第三章) 本章深入探讨了 Facebook 平台的...

    facebook api

    #### 二、准备工作:Facebook 应用程序开发准备(第二章) 此章节将引导开发者完成构建 Facebook 应用程序所需的前期工作,包括注册、设置应用程序以及理解必要的技术概念。 1. **注册成为开发者**: - 创建 ...

    facebook 手机开发icon资源包

    "Facebook 手机开发icon资源包"是一个专门为开发者或设计师准备的集合,包含了一系列与Facebook相关的图标,适用于iOS(iPhone)设备的开发。 这些图标通常包括应用图标、设置图标、通知图标、分享图标等多种类型,...

    Z-Blog 仿Facebook主题(无留言版) v1.0

    此主题的设计灵感来源于Facebook,它采用了Facebook标志性的蓝色调和简洁的布局,旨在提供一个熟悉且直观的用户体验。用户可以在页面上看到类似Facebook的时间线、好友列表、信息推送等功能,尽管没有评论功能,但...

    Beginning.Facebook.Game.apps.development

    随着用户基数的增长(目前月访问量超过8.45亿),Facebook工程师们不断解决技术难题,如系统扩展性、用户体验优化、开发者接入机制以及保护用户隐私等问题。 #### 二、主要内容概览 - **第1章:First Steps**:...

    Go-Facebook出品的go平滑重启工具grace

    `Go-Facebook出品的go平滑重启工具grace`是一款专为Go语言开发者设计的工具,它使得在程序升级或者重启过程中能够保持服务的连续性,避免因为程序中断而造成的业务影响。这款工具源于Facebook,是其对Go语言生态的...

    Beginning.iOS.Apps.with.Facebook.and.Twitter.APIs

    总之,《初学者指南:使用Facebook与Twitter API开发iOS应用》是一本全面而实用的手册,它不仅教会了开发者如何将社交功能集成到iOS应用中,而且还深入探讨了相关的技术和设计问题。对于希望利用Facebook和Twitter的...

    Facebook 职级与package参考1

    - 系统设计:在面试中,可能会被要求设计大规模系统的解决方案,这需要了解分布式系统、微服务架构等概念。 - 人工智能集训:随着AI在Facebook业务中的广泛应用,熟悉机器学习和深度学习的知识会增加你的竞争力。 - ...

    使用Rails开发Facebook平台应用

    - **平台策略**:接着介绍如何制定有效的平台策略,包括理解Facebook生态系统的工作原理。 - **构建应用**:详细讲解如何使用Rails框架快速搭建应用的基础结构。 ##### 2. 技术实现:深入Rails框架 - **基础概念**...

    Python-Facebook开源语音识别工具包wav2letter

    Facebook AI Research(FAIR)推出的开源项目`wav2letter`是一款高效、实时的语音识别工具包,它基于深度学习技术,专为快速构建和实验端到端的语音识别系统而设计。`wav2letter`采用纯C++编写,同时提供了Python...

    system_design:系统设计问题的准备链接和资源

    系统设计准备 如何准备和回答系统设计问题 客观的 学习和实施大规模分布式系统并不容易。 我不想给人一种可以在一个月内学到的东西的印象。 该存储库旨在实现的目标是,让软件工程师和学生大致了解设计大规模设计的...

    基于web的博客系统的设计与实现

    #### 四、系统设计 ##### 1. 架构设计 采用典型的MVC(Model-View-Controller)模式进行架构设计: - **Model**:定义数据模型,与数据库交互。 - **View**:负责显示逻辑,即前端展示部分。 - **Controller**:...

    获Facebook神助攻 英特尔开发首款AI芯片.pdf

    英特尔作为全球知名的芯片制造企业,在人工智能(AI)领域发力,准备推出其首款专门针对人工智能应用优化的处理器——神经网络处理器(NNP)。此举显示出英特尔在AI硬件领域的野心,同时也暴露了其在人工智能领域...

    基于Facebook-Prophet对于股票价格进行线性预测+迭代策略(源码+项目说明).zip

    项目包含详细的数据准备、模型训练、预测及可视化过程,适合作为计算机、数学、电子信息等专业的课程设计、期末大作业或毕设项目参考学习。通过本项目,用户将掌握时间序列预测的基本方法和技巧,提升数据分析与建模...

    Grokking-the-System-Design-Interview.pdf

    ### Grokking the System Design Interview #### 知识点概览 - **系统设计面试流程** - **设计URL缩短服务(如...这对于准备系统设计面试的人来说非常有帮助,同时也为实际工作中遇到的问题提供了解决思路和方法。

    faang-system-design:该项目将具有系统设计资源

    在IT行业中,系统设计是软件工程师面试和工作中的一项核心技能,尤其是在FAANG(Facebook, Amazon, Apple, Netflix, Google)等顶级科技公司。本项目"faang-system-design"旨在为学习者提供一系列与FAANG公司面试...

    Facebook, Google, Microsoft 程序员面试 150 题

    - **系统设计与内存限制**:系统架构设计、内存管理等方面的知识。 #### 三、编程语言与数据库 - **C++**:C++编程语言的基础语法和高级特性。 - **Java**:Java编程语言的特点和常用库的使用。 - **数据库**:SQL...

    Grokking the System Design Interview by Design Gurus (z-lib.org).pdf

    系统设计面试是软件工程师面试中的一项重要环节,尤其是在一些顶级科技公司如谷歌、Facebook、亚马逊、微软等。这一面试环节让很多工程师感到头痛,其主要原因有三个:首先是系统设计面试题目开放性很高,没有标准...

Global site tag (gtag.js) - Google Analytics