海外就业面试经验:美国Facebook公司系统设计环节面试

教育动态2023-02-23 09:32:03爱扬教育网

免费机会下载_只做懂你的交友APP:

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

同时扫码,机会多多

上一篇文章中,我们讲到了印度小哥Rahul Agarwal面试Facebook伦敦的机器学习工程师故事中的第三部分-第二轮现场编程面试。今天,我们继续分享他的下一轮面试-系统设计面试。

 

系统设计面试环节

这是我害怕的另一个面试环节。正如你所看到的,我害怕大多数面试,因为这对我来说是一种非常不自然的解决问题形式。

 

在系统设计面试中,你需要在白板上创建端到端的服务。您可以练习的一些示例问题是: 

你会如何设计Netflix? 

你会如何设计Youtube? 

你会如何设计Twitter/Facebook? 

虽然这可能看起来令人生畏,但当你为它做准备时,它实际上是开放式的。因为没有错误的答案。 

 

我偏好的这种面试的解决方式是:设计一个非常基本的系统,该系统类似于平台并具有面试官要求的基本功能。

对于大多数平台,它将涉及在白板上为服务器、客户端和数据库绘制框。创建一个我想在系统中拥有的功能列表。例如,在社交网络中的关注,或在Uber上预订出租车,以及在阅读消息时在Whatsapp中进行双击,或在Twitter或Facebook新闻源中的转发功能等。

就功能而言,数量是无限的,因为我们都看到了这些平台提供的功能,想出一个功能列表应该不难。 

在整个面试过程中为其添加功能,并扩展/更改非常基本的设计。这可能涉及添加功能以及讨论扩展、处理边缘情况、讨论所涉及的数据结构和数据库、使用缓存等。 

通过询问面试官他们想根据我提供的功能列表添加什么功能,继续添加功能并改进系统直到最后。

 

我为系统设计面试进行的准备 

互联网上有很多很好的资源来准备这类面试,但我想提两个我觉得非常有用的资源: Donne Martin的System Design Primer这是任何准备进行系统设计的人都应该至少阅读一次但老实说更应该多次阅读的资源。

这里要学习的最重要的主题是性能、可扩展性、延迟、吞吐量、可用性、一致性、CDN、数据库、缓存、负载平衡等。 

Youtube关于最受欢迎服务的各种系统设计的视频:我说的是大的——Netflix/Youtube/WhatsApp/Facebook/Gmail/Amazon等。你可以在youtube上找到很多关于所有这些服务的系统设计的视频。我想点名的YouTuber是Techdummies。对我来说,谁真正以最简单的方式解释了概念谁就是最有用的。 

我花了一周的时间从观看视频到阅读Donne Martin的资料库,来准备这次面试,我认为这是正确的方式。

此外,了解很多工程师使用的术语很有趣,因此这也是一次很好的学习经历。 

最后,在这次面试中最重要的是,你需要以最少的面试官输入来推动讨论。有时面试官可能会要求一个特定的功能,你应该实现它,但最终,它是你的系统,你需要以最合乎逻辑的方式创建和添加你想要的功能,才能在这一轮中取得成功。

 

参考文章:

https://towardsdatascience.com/how-i-cracked-my-mle-interview-at-facebook-fe55726f0096

 

相关推荐

猜你喜欢

大家正在看

换一换