纯刷题行不通了! Facebook 评级定薪全靠它

2020-04-20 15:28:04 +08:00
 hakunamatata11

最近刷知乎看到这么个热门问题:

只靠刷题,能不能进国外大厂实习?

下方有在美国从事 CS 的网友回答:

也就是说:勤奋刷题有可能帮你面试出线!

但是纯刷题在工作中行不行得通呢?

显然不行!

侥幸进去,可啥都不会,return offer 都拿不到

同样,在该问题下还有人说了

FLAG 喜欢考 System Design (系统设计)

谷歌 intern 也面系统设计

没错,原本 SDE2 常考的系统设计

现在甚至 intern 和 new grad 面试也有

下面我举例一道 Facebook 系统设计真题

“ Design a photo reference counting system at FB scale ”

令狐冲老师解答

这个题是我们在《系统设计班》第一节 twitter 的那节课讲过的内容。

首先,你先不要曲解题目,你直接把题目翻译为:设计 distributed counting system,就已经走偏了。

从这道题的题面来看,面试官只是要对每个 photo 有一个 counter 。这个 counter 干嘛的呢?你可以理解为某个 photo 被 like 的数目。这个和我们在《系统设计班》第一节 twitter 课上说的,某个 post 被 like,是一样的。

在这道题中,面试官主要考核你以下几个层面的东西:

[第一层]

你首先要知道是用 denormailze 的方法,和 photo 一起存在一起,这样不用去数据库里数 like 。所以可能考察的就是,数据库的存放方法,服务器端用 memcached 或者任何 cache 去存储,访问都是找 cache,实在是太大的数据量,才会考虑分布式。

+1 分

[第二层]

你知道这玩意儿不能每次去数据库查,得 cache 。

+0.5 分

[第三层]

这玩意儿一直在更新,被写很多次,你知道必须一直保持这个数据在 cache 里,不能 invalidate 。

+0.5 分

[第四层]

你知道怎么让数据库和 cache 保持一致性

+2 分

[第五层]

你知道 cache 里如果没有了,怎么避免数据库被冲垮( memcache lease get)

+2 分

[第六层]

一个小的优化,如果这个数据很 hot,可以在 server 内部开一个小 cache,只存及其 hot 的数据。

+2 分

自学事倍功半,我到底该咋办?

系统设计这套东西太广了

无数人经历了从自学到放弃的惨痛过程

自学太痛苦,哭求高人指点

推荐九章算法的

系统设计班 :https://www.jiuzhang.com/course/28/?utm_source=sc-v2ex-fks

互动课、随时学,戳上面链接即可免费报名试听

同时还能获得 LintCode 题库访问权限

边刷题边学

从 [事倍功半] 到 [事半功倍]

874 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/664304

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX