likes
comments
collection
share

干货|Facebook集合一起开黑!

作者站长头像
站长
· 阅读数 3

“亚麻加班,谷歌养老、Facebook集合开黑。”work life balance的神仙码农生活,真的还存在吗?

如果在北美给大家做一个加班大厂的排行榜,被推向第一的一定是亚麻,亚麻员工表示:日常加班已经忙惨了,如果轮到自己on call,更是雪上加霜。日常状态:加班到凌晨,天亮才睡,四周一轮on call周末好不容约到妹子却要背个电脑。除了很赶的项目之外,凌晨三点被on call起来改bug都是在正常不过的事情了。

还记得之前我经常和在亚麻工作的朋友开玩笑:“你的BB机,今儿没响吗?”这其实是15年时,为了方便on call,亚麻还曾给员工发放了bb机,同时也成了我们的聊天时的梗,多数员工对此行为表示真的体(sang)贴(xin)温(bing)暖(kuang)。

干货|Facebook集合一起开黑!

反之G家,真的是妥妥的work life balance的神仙码农生活,按照加班排名的话必定会是最后一名,曾经和我两个朋友一起约下午茶,刚好一个在Google一个在亚麻,接下来的对话建议咽下嘴巴里的食物或者是水在看下去:

Q(亚麻):在G家最满意的地方?

A(Google):内部工具好、技术好,work life balance好。

Q(亚麻):那你近期有什么新的规划吗?

A(Google):希望去Google比较忙和累的组。

听完我和亚麻朋友:那我走??

相对亚麻和Google来讲,Facebook相对可选,最近风声也一直比较大,今天给大家搞个干货|Facebook全套面经。

干货|Facebook集合一起开黑!

Jasper的水平处于中等偏上,碰到一些企业真题的时候就容易慌神,毕业后留在北美的一个家民企,但是却一直饱受打压,白漂加班,工资每月也就720刀,终于在一次方案讨论会上,翻脸直接走掉。

干货|Facebook集合一起开黑!

出来后一向想要冲击大厂,回国太浪费时间对国内目前的情况不是很了解,在北美可选的大厂就那么几家,期间Microsoft、G家也都试过了,直接over没有后续。也是由此抱着试试的心态向Justin老师咨询,得知Justin老师回国Jasper心里一沉以为没有任何希望了。没想到Justin老师居然主动要简历并直接提出:缺少大的项目经验以及数据结构了解的不够深等多种分析。

Jasper自传:

先加固的是数据结构, 数据结构可以说是算法的基石,如果没有扎实的数据结构基础,想要把算法学好甚至融会贯通是非常困难的,而优秀的算法又往往取决于你采用哪种数据结构。

我是能理解链表,队列和栈等数据结构,因为它们在逻辑上都有起点和终点,但是学习树和图时,总觉得它是很混乱。因为它的存储方式不是线性的,它们都有自己特定的方式存储数据。后面Justin拿把树类比为我的家谱(苦笑),带着我慢慢理解树,告诉我树这个结构的来历,对比线性的数据结构,树的优点,我才慢慢理解。

干货|Facebook集合一起开黑!

而后提升的算法我的算法非常差(捂脸),这次把Justin搞的也差点崩溃,我可以理解那个算法,但是就是自己不会用,后面Justin又举例(平平无奇de举例小天才),算法就像是句法,例如反问句,疑问句之类的,语言呢就像是文字,句法可以把文字表达的意思更清晰,算法是可以让程序运行更高效,就像小学学语文,不会用反问句,能听懂就多练习,后面自己多练习了几遍,确实来感觉了(吼吼),就像回溯算法实际上就是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

用回溯算法解决问题的一般步骤:

  1. 针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。
  2. 确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间 。
  3. 以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。

我觉得对我帮助最大就是真题(项目内容)

我做了几个项目,不但加深了自己对算法和数据结构的理解,也让自己明白真正开发一个项目的流程,需要的工作,软件开发的规范。有一个是人脸识别的项目,其中有一部分是用模糊识别的算法,出了很多bug,Justin带我一个一个找出来,虽然过程很苦逼,但是当看到项目成功运行成功,感觉所有的一切都值得了,成就感爆棚!感觉此生为码农不悔(捂脸)。

目前对我吸引最大就是Facebook,我也尝试投递,没想到就收到 Facebook HR 的邮件,收到邮件后我们就约电话沟通,HR 在电话里先简单介绍了一下 Facebook 现在的情况并告知我这是 Menlo Park 总部的岗位,让我确定如果面试顺利会不会愿意到距离公司近一点的地方住,因为Facebook总部在美国的西部,距离我现在的位置还是有点远的。

干货|Facebook集合一起开黑!

接着 HR 问了我两个很基础的 CSS 问题:

1、display block 和 inline 有什么区别?

2、position 有哪些取值?

我也是很惊讶,难道现在的HR都要具备工程师的一些基础了吗?不过这样也确实让后面的工程师很爽了,起码能证明我不是一个小白。

随后HR又继续问我:你为什么想选择Facebook?我看你之前没有过大公司的经验?虽然你有过相关的工作经验但是你的项目经验也不是很丰富?(其实我内心当时慌的一批,但是回想Justin老师待着我学了那么久我应该有自信的)实话实说,想选择Facebook的原因就是想要到更大的平台实现自己的价值提升自己的价值其次没有大型的项目经验但是最近一直都有在学习和提升,水平和之前相比也有很大的提升。

干货|Facebook集合一起开黑!

回答完以后HR就把我介绍一位中年男人,因为距离的原因我们最终商榷后是视频面试,这也算是第一轮正式的面试。其实我没想到,之前在G家面试都是45分钟左右结束,第一次电面就90分钟我心里不仅犯嘀咕。

这个中年男人挺帅的,戴着长框眼镜虽然镜片不厚,但看起来十分有气场像是有一定职级的人,也没什么废话,直接告诉我不用自我介绍了简历以及看过了,需要问我一些基础的理论也需要做两道题。

Searches

Columns:. check 1point3acres for more.

date STRING date of the search,

search_id INT the unique identifier of each search,

user_id INT the unique identifier of the searcher,

age_group STRING ('<30', '30-50', '50+'),

search_query STRING the text of the search query

Sample Rows:

date | search_id | user_id | age_group | search_query


'2020-01-01' | 101 | 9991 | '<30' | 'justin bieber'

'2020-01-01' | 102 | 9991 | '<30' | 'menlo park'

'2020-01-01' | 103 | 5555 | '30-50' | 'john'

'2020-01-01' | 104 | 1234 | '50+' | 'funny cats'

Table:

search_results

Columns:

date STRING date of the search action,

search_id INT the unique identifier of each search,

result_id INT the unique identifier of the result,

result_type STRING (page, event, group, person, post, etc.),

clicked BOOLEAN did the user click on the result?

Sample Rows:

date | search_id | result_id | result_type | clicked


'2020-01-01' | 101 | 1001 | 'page' | TRUE

'2020-01-01' | 101 | 1002 | 'event' | FALSE

'2020-01-01' | 101 | 1003 | 'event' | FALSE

'2020-01-01' | 101 | 1004 | 'group' | FALSE

  1. Over the last 7 days, how many users made more than 10 searches?

  2. what percentage of users have conducted searching with more than 100 search result?  

干货|Facebook集合一起开黑!

大概第二轮面试的市场是一小时三十分钟左右,紧接着第二天就收到了HR的邮件,邀请我

onsite,我想着这个中间应该要间隔一两天才算正常,没想到所有的流程都这么快。因为我离得比较远,加上美国郊区的因为害怕迟到,又因为美国郊区的公交是一小时一班的,所以面试当天我约的是下午的时间。

到了以后是HR接待的我,在micro-kitchen给我拿了点吃的,还跟我说了一嘴,Facebook 允许每天报销最多 $75 的餐饮开支。让我稍坐一会儿,他去请面试官。先面试了2 轮面试,时间比较晚了,带着我去 Facebook 餐厅吃了点东西。随后没有休息直接带我进了会议室。

干货|Facebook集合一起开黑!

这也是最后一场面试了,这个男人有点奇怪:先问了一个很古怪的 CSS 问题,然后又跟我讨论了一个跟前端不相关的编程问题。还有第二题也像极了是他突发奇想,因为他自己也不知道最优解是什么,就是想跟我讨论一下能够如何优化,我就跟他讨论了几种可能的优化方式。所有他又说如果把常数 k 改为可以变成任意大的 n 怎么办?我就说 n 的问题能够分解为 n/2 的问题,因此能够通过二分法来优化。

终于漫长的买那是结束了,最后HR她向我介绍 Facebook 墙上的涂鸦,带我去天桥上看 Hacker Square 全貌,并且告诉我每次 hackathon 开始时大家就会聚集到 Hacker Square 上来。除了 HR 以外,前面有一些面试官也会提及他们喜欢的 Facebook 特色。下意识也让我体会到Facebook 里面还是有不少员工挺喜欢这家公司的。

干货|Facebook集合一起开黑!

走的时候HR也大概跟我聊了一下,如果真的能顺利拿到offer所需要准备的资料又哪些,balabala。回去后中间赶上了周六日,周一下午四点多我的邮箱就收到了Facebook的offer,首先是没想到这个效率能这么快,毕竟我面试完也都该下班了,周一下午就给我发了offer,这速度把我给惊住了。

其次就是总体感觉Facebook对公司候选人的关怀还是做的比较好的,进入FB以后也是觉得大家相处的也比较融洽,虽然会有加班的情况存在,但是相对来说是可以接受的,各方面的福利也是跟的上的,唯一的缺点就是:公司的会议太少了。缺乏沟通,程序和软件是需要进行讨论和辩论的,不能只是简单去写代码。而以极快的速度去写和运送代码是一件疯狂的事情。因为会议太少,公司内部甚至存在“星期三没有会议”这样的文化基因。

干货|Facebook集合一起开黑!

但是基本处于半躺平的状态吧,其实我也没有想到我能这么快就拿到北美大厂的offer,只想说现在FB附近租的房子才算是一个正常人住的房子,生活一切越来越好,最近稳定下来也想找时间谈个女朋友。与此特别感谢Justin老师和另外几个导师带领我冲刺上岸,没有那些日夜陪伴我review真题项目,现在我还距离上岸早着呢。