Facebook Production Engender Intern

原帖地址:一亩三分地

今天收到的offer,很开心,但其实并不意外,因为我确实有认真准备。暂时还没在地里看到其他通过面试的分享,我还是有些经验教训可以说一说。

先介绍一下这个岗位。FB的PE相当于Google的SRE,做运维工作,需要有三方面的知识——coding、OS和network。面的人不多,但也不容易面,毕竟考的东西太杂。我觉得这个岗位的坏处在于不是SWE这样general的码农工种,比较小众,不是垒砖块的那个人,没有特别显著的效益输出;而好处在于,给你一个体验大规模服务所依赖的系统的机会,你既能在宏观上学习scalability、reliability、availability这些要怎么在生产环境中得到保证,又能在微观上对Linux、debug有深入的学习。这个机会很可贵,首先是门槛比较高,不是刷刷题就能搞定的;其次是拥有这个规模的公司少,机会难得;还有就是,我能预想到,相比SWE,我会学到更多以前我不知道的东西,即使我以后还是会去当码农,这份经历所培养的能力仍然会是一个很好的补充,可能会成为我的一个优势。PE intern需要电面三轮,没有onsite。
第一轮是HR问你10来个简答题,包括Linux命令、网络基础、OS等。第二轮是coding,或者叫scripting更合适,因为很简单,没有什么算法。类型貌似就两类:一类是字符串操作;另一类是文件读写,而且基本上这个文件就是csv。。我这轮面得比较好,因为Python用得比较6,面试官也是主要用Python,夸我用得好,小哥人也特别好,跟我聊好多,说他喜欢这个工作。第三轮是system,通知你面试时间的邮件里会给你一些参考书目。Linux troubleshooting我之前没啥经验,所以看了邮件里的一本书,知道了些tool的用法,复习了下Linux,这个是面试的重头戏,我的速成效果还是不错的;RAID会被考,毕竟邮件里告诉你了会考的= =,但我没有认真看,面试时没有表现好;OS的基础知识必须熟啊,指不定哪个问题就会涉及到,即兴问你;网络的话,我就好好复习了一个问题,也就是著名的“www.google.com按回车后发生了啥?”,其实这个问题能把整个协议栈给串起来,相当于是把网络都稍微复习了遍,可惜没问我,不然我必能大显身手;还稍微看了下分布式系统和系统设计的东西,没被问到,一般也确实不会问到,但我还挺希望被问到分布式的,因为刚学。。

return offer好拿,福利好,技术好:应该就签了。

补充内容 (2016-1-7 15:09):
coding那轮,我讲完基本思路后,总是会想着要优化。小哥一直跟我说别考虑优化。。囧。感觉他的意思就是,快点写出来,快点用上去才是关键。可以理解,毕竟PE是要救火的。

补充内容 (2016-1-7 15:10):
不好意思,题目里的engineer拼错了。已经1点了,脑子有点糊涂了,我要去睡觉了。