`

Facebook Design Questions总结

 
阅读更多

1. 入门级的news feed
http://www.quora.com/What-are-best-practices-for-building-somet
http://www.infoq.com/presentations/Scale-at-Facebook
http://www.infoq.com/presentations/Facebook-Software-Stack
一般的followup question是估算需要多少server
另外这个帖子有讨论
http://www.mitbbs.ca/article_t/JobHunting/32463885.html
这篇文章稍微提到要怎么approach这种题,可以稍微看看
http://book.douban.com/reading/23757677/

2. facebook chat,这个也算是挺常问的
http://www.erlang-factory.com/upload/presentations/31/EugeneLet
https://www.facebook.com/note.php?note_id=14218138919
http://www.cnblogs.com/piaoger/archive/2012/08/19/2646530.html
http://essay.utwente.nl/59204/1/scriptie_J_Schipers.pdf

3. typeahead search/search suggestion,这个也常见
https://www.facebook.com/video/video.php?v=432864835468
问题在这个帖子里被讨论到,基本上每个问题,在视频里都有回答
http://www.mitbbs.com/article_t/JobHunting/32438927.html

4. Facebook Messaging System(有提到inbox search, which has been asked before)
messaging system就是一个把所有chat/sms/email之类的都结合起来的一个系统
http://www.infoq.com/presentations/HBase-at-Facebook
http://sites.computer.org/debull/A12june/facebook.pdf
http://www.slideshare.net/brizzzdotcom/facebook-messages-hbase/
https://www.youtube.com/watch?v=UaGINWPK068

5. 任给一个手机的位置信号(经纬度),需要返回附近5mile 的POI
这个这里有讨论,这题貌似nyc很爱考...
http://www.mitbbs.ca/article0/JobHunting/32476139_0.html

6. Implement second/minute/hour/day counters
这题真不觉得是system design,但万一问道,还是要有准备,貌似在总部面试会被问道....
这个帖子有讨论
http://www.mitbbs.com/article_t/JobHunting/32458451.html

7. facebook photo storage,这个不太会被问起,但是知道也不错
https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf
https://www.facebook.com/note.php?note_id=76191543919

8. facebook timeline,这个也不太是个考题,看看就行了
https://www.facebook.com/note.php?note_id=10150468255628920
http://highscalability.com/blog/2012/1/23/facebook-timeline-bro

除了这些,准备一下这些题目
implement memcache
http://www.adayinthelifeof.nl/2011/02/06/memcache-internals/

implement tinyurl(以及distribute across multiple servers)
http://stackoverflow.com/questions/742013/how-to-code-a-url-sho

determine trending topics(twitter)
http://www.americanscientist.org/issues/pub/the-britney-spears-
http://www.michael-noll.com/blog/2013/01/18/implementing-real-t

copy one file to multiple servers
http://vimeo.com/11280885

稍微知道一下dynamo key value store,以及google的gfs和big table

另外推荐一些网站
http://highscalability.com/blog/category/facebook
这个high scalability上有很多讲system design的东西,不光是facebook的,没空的
话,就光看你要面试的那家就好了..
facebook engineering blog
http://www.quora.com/Facebook-Engineering/What-is-Facebooks-arc
http://stackoverflow.com/questions/3533948/facebook-architectur

其他家的
http://www.quora.com/What-are-the-top-startup-engineering-blogs

==================================================================
在说说怎么准备这样的面试
首先如果你连availability/scalability/consistency/partition之类的都不是太有概
念的话,我建议先去wikipedia或者找一个某个大学讲这门课的网站稍微看一下,别一
点都不知道
这个链接也不错
http://www.aosabook.org/en/distsys.html

如果你这些基本的东西都还知道,那么我觉得你就和大部分毫无实际经验的人差不多一
个水平...
能做的就是一点一点去准备,如果你还有充足的时间的话,建议从你面试的那家公司的
engineering blog看起,把人家用的technology stack/product都搞清楚,然后在把能
找到的面试题都做一遍呗....我们做coding题说白了不也是题海战术...而且你如果坚
持看下去,真的会看出心得,你会发现很多地方都有相同之处,看多了就也能照葫芦画
瓢了...

再有就是面试的时候应该怎么去approach这种题,我说说我的做法
1. product spec/usage scenario 和面试者confirm这个东西到底是做什么的
可以先列出来几个major functionality,然后有时间的话,再补充一些不重要的
把你想的都写下来

2. define some major components
就是画几个圈圈框框的,每个发表一番您的高见....然后讲他们之间怎么interact

以上是question specific的东西,
这个讲完了,我们可以讲一些每道题都是用的,比如说
怎么scale/怎么partition/怎么实现consistency,这些东西,可以套用到任何题上

当然了,我们遇到的题和解题的方法可能都有些出入,不见得每道题有一个路数下来,
最重要的是,讲题的时候要有条理,画图要清楚,保持和面试官的交流,随时问一下人
家的意见。

我能想到的就这么多,欢迎大家交流,希望大家都能找到理想的工作.

 

分享到:
评论

相关推荐

    Facebook Behavior Questions大汇总 20201

    在本文中,我们将深入探讨Facebook的行为面试(Behavioral Interview),这是一种评估求职者个人素质、经历和动机的重要环节。行为面试通常结合了行为问题和编码问题,主要目标是确定候选人是否能适应Facebook的...

    Facebook 网站架构总结

    Facebook作为一个全球知名的社交网络平台,其背后的技术架构是支撑亿级用户流畅互动的关键。Facebook的网站架构设计体现了模块化、整合化和清晰化的理念,旨在实现简单、高效的系统运作。以下是对Facebook架构的深入...

    Facebook的SimpleQuestions数据集

    https://research.fb.com/downloads/babi/ https://research.fb.com/downloads/babi/ https://research.fb.com/downloads/babi/ https://research.fb.com/downloads/babi/ https://research.fb.com/downloads/babi/

    预测facebook签到位置.ipynb

    ——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!

    facebook api和facebook_jar包

    Facebook API和Facebook_JAR包是开发者用来与Facebook平台进行交互的重要工具,它们使得开发者能够创建应用程序,集成到Facebook生态系统中,实现数据交换、用户登录验证、发布内容等功能。Facebook API通常指的是...

    预测facebook签到位置

    Facebook签到位置预测是一个涉及大数据分析、地理位置服务和社交网络行为学的复杂主题。在这个问题中,我们关注的是如何利用用户在Facebook上分享的签到信息来预测他们可能的未来签到位置。以下是对这个话题的详细...

    Facebook登录分享发布信息程序

    总结来说,这个"Facebook登录分享发布信息程序"是利用C#的面向对象特性、Facebook的.NET SDK和Webview组件,实现了用户无感知的登录体验,以及方便的信息分享功能。开发者需要掌握C#编程、OAuth认证流程、Facebook ...

    facebook分享

    在IT行业中,Facebook分享是一项常见的功能,特别是在移动应用和网页开发中。Facebook分享允许用户将内容,如文本、图片或链接,快速便捷地发布到他们的Facebook时间线,从而扩大信息的传播范围。在这个"facebook...

    web版facebook登录

    总结,Web版Facebook登录结合OAuth 2.0授权和Facebook Graph API,为用户提供便捷的登录体验。开发者在实施时需关注安全性和用户隐私,确保应用符合最佳实践。通过深入理解这些概念和技术,可以有效地集成Facebook...

    Facebook-Android-sdk-4.8.2

    Facebook Android SDK 4.8.2 是Facebook提供的一款用于帮助Android开发者在其应用中集成Facebook功能的开发工具包。这个版本的SDK包含了实现Facebook登录、分享、邀请、广告以及分析等功能所需的库和资源。通过使用...

    Facebook免费WiFi

    #### 四、总结 Facebook WiFi项目不仅解决了传统Wi-Fi网络接入过程中存在的诸多问题,如密码繁琐、难以管理等,而且还为企业提供了有效的宣传手段。对于用户而言,Facebook WiFi提供了一种便捷的免费上网方式;对于...

    Unity Facebook API 官方 Demo 完整工程 代码

    Unity Facebook API 官方 Demo 是一个为游戏开发者提供的完整工程,它展示了如何在Unity引擎中集成Facebook的功能,以便实现用户登录、得分分享、排行榜展示以及头像获取等社交互动功能。这个Demo项目名为...

    facebook 的登录和统计的依赖工程

    在IT行业中,Facebook的登录和统计功能是许多开发者在构建应用程序时经常使用的工具。Facebook提供了SDK(Software Development Kit)来简化这些过程,使得开发者能够轻松地整合Facebook的登录系统和数据分析服务。...

    打造Facebook:亲历Facebook爆发的5年

    这本书的书名——《打造Facebook:亲历Facebook爆发的5年》很嚣张,谁有资格可以说这句话呢,当然,扎克伯格最有资格,但他不会亲自来告诉你,至少从目前的情况来看,近几年都不大可能。而且,这不是一个人的公司。...

    Facebook的成功秘诀是什么

    #### 总结与展望 Facebook之所以能够在全球范围内取得巨大成功,关键在于其不断创新和适应市场需求的能力。从最初的校园社交平台,到后来的开放平台战略,再到近年来对于人工智能、虚拟现实等前沿技术的应用探索,...

    FaceBook插件开发入门教程

    "FaceBook插件开发入门教程" 本文将从Facebook插件开发的角度,讲解如何创建一个简单的Facebook插件,并介绍Facebook插件开发的基本概念和流程。 一、Facebook插件开发简介 Facebook插件开发是指在Facebook平台上...

    ant-design-pro前端

    在技术栈方面,Ant Design Pro主要基于React.js,一个由Facebook维护的JavaScript库,用于构建用户界面。React的虚拟DOM技术和组件化思想使得代码结构清晰,性能优秀。同时,它还集成了Redux进行状态管理,利用dva....

    FACEBOOK FLASH 示例 教程

    Facebook Flash 示例教程旨在帮助开发者和设计师了解如何在Flash环境中与Facebook平台进行集成,创建互动性的社交媒体应用程序或游戏。本教程将深入探讨以下关键知识点: 1. **Facebook API**:Facebook 提供了一组...

    facebook-android-sdk-4.18.0.zip

    Facebook Android SDK 4.18.0 是一个用于在Android应用程序中集成Facebook功能的开发工具包。这个SDK允许开发者轻松地实现用户登录、分享、广告、分析和其他Facebook服务。2017年发布的这个版本是当时最新的,为...

Global site tag (gtag.js) - Google Analytics