逗比程序媛的湾区FLAGT面试求职经验

2024-02-02 00:18

本文主要是介绍逗比程序媛的湾区FLAGT面试求职经验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

两年前写的文章,现在读来虽然有点幼稚但是还是很有价值的,希望能够帮助到大家。^_^

经过近半年的辛苦面试,总算签约dream company。整理下思路,把自己的情况写出来,只是为了给大家做个参考,希望能帮助到需要的人。

简介:

2010年国内一本本科毕业(大学排名30以外),四年左右iOS相关开发工作经验的女程序媴。有多家公司的工作经验,囧。期间做过free lancer一年,和多家公司(团队)合作过,认识了不少朋友。从2012年年底开始尝试面湾区工作,G、F及多家startup全部都是一两次电话面试就直接失败,之后开始做各种online编程比赛,看Cracking the Coding Interview,每天关注@陈利人 的微博及评论,和@待字闺中 的微信,并Crack了所有Leetcode的题(开始花了一个多月做完大部分题,等到昨晚剩下的难题一共花了3个月左右)。2013年夏天进入国内某top互联网公司,9月份只花了两个多礼拜重做Leetcode,发现自己的代码越来越简洁了。之后开始面G,11月初面完进入漫长等待,12月中去美国onsite FB,直接悲剧。回国后,焦急的等待G的结果很久都没有任何进展,觉得不能坐以待毙,14年1月底辞职飞去湾区集中精力找工作一个月,最终拿回LinkedIn,Amazon,Google,Twitter,和一个startup Tango的五个offer,因此标题简称为FLAGT。之后和各公司hr、hiring manager周旋两礼拜,总算尘埃落定。

刚回国后,感觉所有公司的反馈都是非常好,心情非常激动。好像一切都来得太容易,突然觉得自己找到了成功的方法。在和小伙伴们分享面经的时候,解释什么情况要怎么做、怎么说,好像按照自己说的去做就一定能成似的。其实现在冷静思考后,才发现,我这一路走来,有很多很多不可或缺的因素,履历、工作领域、性别、人脉、努力,还有运气,不过总体感觉确实没有我之前想象的那么遥不可及。

但是找工作的过程确实很痛苦,希望大家能找到自己的“组织”,有小伙伴们一起努力,互相分享经验、互相打气。从去年10月开始到2月,小伙伴们是越来越焦急,但是确实是很多人都在最后的时刻拿到了dream offer!貌似这趋势还是越到最后的拿得越好。毕竟从国内招过去的人最好情况都要10月份才能开始干活,所以很多公司到2月份才开始启动海外招聘。只有Google和Facebook的校园招聘是最早的,大概每年8、9月就开始启动了。所以请坚持到底,笑到最后的人笑得越好。

现在我很多面试的题目都记不太清了,面得实在太多,有时候都只是惯性的回答问题,惯性的写出代码。但是面下来看和别人分享的面经里说的内容确实没什么差别。所以我就以问答方式分享下我的一点体会吧。

1.湾区公司的面试题都很难?

我都没有碰到特别难的算法题目,印象出现很多二叉搜索树的问题。在Leetcode上难度排行的话,大部分也就中等水平。因为Leetcode上的题我都认真做了,很多题我都知道不只两种方法的解答。就算面试不一定出原题,但都是一些同样的套路。关键是简单的题,要能写出漂亮且bug free的代码,这个能力是需要花时间去锻炼的,而且一定能练出来。那些一直做题,一直找新题、难题做的朋友,也许到最后的收益就不会太多了。不如再花点时间提高其他方面的能力。

系统设计题也大部分都是我没做过的,我完全没有经验,就按自己的思路去说,也能过关。

要说难题,只有Twitter第一面碰到一个ACM拿过金牌的面试官,前面两个简单题我做得特别快,他很高兴,而且之前我们的聊天中他透露到中国区的ACM金牌在世界上算最难拿的,他很想挑战我,出了道稍微难的题。我花了几分钟努力确定我正确理解了题目意思,之后反正就那套路,brute force,或者greedy,他或许也忘记具体怎么做了,反正就是一起探讨,由于时间不多,他提示说动态规划。我立马就反应过来,然后列出状态转移方程。他看起来很享受讨论难题的过程,自己也接过来写下去,我就在旁边叫好。

所以,遇到难题并不用慌,尤其在那一面最后的时候碰到难题,时间肯定不够,面试官也是知道的,所以一般就要个思路而已,那思路就那么几个套路去想就是了。就算做错了其实影响也不会很大吧。最后这个面试官很高兴的和我握手,祝我好运!

2.前面的热身问题不重要?

有些面经说前面的热身问题不要花太多时间了,免得影响后面的面试。我看倒也不全对。确实别花太多时间,但也要重视这几分钟。Google的前几面我都非常紧张,一开始面试官想用几个热身问题让我放松,但是发现我没太多话和他们聊也就作罢。最后两面,我当时已经自我感觉很良好,面试开始进入状态了,所以开头能和面试官聊上来几句。面试官介绍自己做了哪些Google产品,我表示非常喜欢用,之后我透露了自己简历中“丰富”的项目经验和“多次跳槽经验”-_-,之后才有了strong hire,因为他们觉得我比较有眼光和系统设计答得很好。(我也不记得自己系统设计是怎么答的了,反正是cache相关的。就记得他从很小的一个case开始问,然后不断提出新的需求,然后我反应很快的给出新的解决方案,也许是因为整个流程比较顺畅吧)。

之后去湾区的面试中,就更熟练了,他们首先会介绍自己做什么的,然后我会表现很感兴趣,适当问几个问题。之后轮到我说,就说自己之前做了什么什么项目,我甚至拿了很多iOS设备去给他们做demo,有的面试官开玩笑问我到底有多少iphone。其实十分钟时间能展现很多亮点。比如startup面试我会展现我之前和startup团队合作的艰苦岁月,比如一个礼拜和CEO、CTO一起工作90个小时之类的。和twitter我会说自己特别喜欢用weibo,然后weibo和twitter不同的地方,然后weibo特别的地方,那个manager听了看起来挺惊讶的(毕竟Twitter多少年来都没什么花样嘛)。其实我主要就是做demo,因为做过很多app,不同面试官我还会换个app来介绍什么的。

3.最后问面试官的问题不如不问?

每轮面试的最后,一般面试官都会问,你有什么问题问我吗?有的面经上说最好不要问什么问题啦,因为面试官并不是真的感兴趣去回答你的问题。但我觉得不对。我第二次去湾区的时候,几乎每个面试官最后我都会问好几个问题,包括电话面试,而且他们都非常认真的回答我,一个问题都要回答好长一段,有时候我真的没大听懂,但也不好意思打断。我觉得最后这个环节,如果能问比较好的问题,或者有趣的甚至有挑战的,会让面试官喜欢你。湾区人才紧缺,他们愿意花时间来回答你感兴趣的问题表示尊重,也是给你一个更多了解公司的机会。有的面试专门是为了考察你对公司的感兴趣程度的,你如果没有任何问题问他们,也许他们会认为你没太多兴趣,会怀疑你的求职动机,很多人只是想拿个competing offer不是么?所以要表现自己的热情。哪怕是带我吃午饭的,也许都不列入最后评分的,我都会努力和他们交流,虽然其实我真的很想休息一会,节省体力。

Amazon onsite的午饭是我和一个组的hiring manager订了盒饭在面试会议室里吃的,整个午餐过程他都一直问我,还有什么问题吗?然后我挤一个,他回答。之后他吃几口饭继续问,还有什么问题吗?我又再挤一个。当时真的快崩溃了,几乎把我常备的问题都榨干了,而且我平时吃饭都不喜欢太动脑子的。

其实就抓住这个机会,侧面反应你的思考能力,求职所关心的内容,和对他们的热情程度。比如我会问code review的情况,team有多少人,有时候开玩笑问几男几女呀?What kind of people are you looking for?这些公司我都应聘的是iOS开发,所以我还会问那个iOS app团队怎么分工合作的?现在team里有多少人是熟悉整个项目的?像Twitter的app太大了,manager直接回答一个都没有,我表示失望和理解。然后LinkedIn有个面试官说,只有他一个是懂整个iOS项目的,我表示很崇拜⋯⋯还可以问,你对这个公司喜欢或者不喜欢的地方分别有哪些。或者先问你最喜欢的地方是什么,他回答完立马问那你最不喜欢的是什么呢?有时候我会针对面试官自己问一些问题,因为你对他们感兴趣,他们也会觉得开心吧。比如问他之前在哪个公司,为什么来这个公司的,来多久了,发财了没有(不要每个面试官都问这样无聊的问题,换不同问题去问)。我还问过一个L的面试官,Do you think LinkedIn is better than Facebook?他听了哈哈大笑,其实我不理解他为什么笑,也许外国人就是那么容易笑吧。他想了想觉得这个问题很大,问我具体什么样,我觉得他笑了就达到目的了,就让他介绍从engineer的角度来分析吧。然后他就说了一大堆Facebook的坏话,哈哈。其实面试官肯定是多说自己公司的好话的,至于不好的地方还是要靠自己私底下多做调查。

所以,多准备一些好的问题。

4.面试过程中需要谦虚吗?

我觉得一定要自信,态度要不卑不亢。哪怕自己回答错了也不要紧。自信真的太重要了,就算你面失败了,也并不代表真就是你能力的问题,不要看轻自己。很多面试官进来会握手问候,然后问你目前都进行得怎么样?我一般想都没想就说,I think it’s good!我猜他们也许就相当于问how are you一样,并不真的关心你怎么回答,就是礼貌问候,那么回答how are you一般都是Good how are you?那么回答目前顺利吗?也要说Good。我猜的-_-

然后就是在讨论问题的时候,也要敢于提出疑问。Facebook有一面我当时就是明知道自己对的,但是英语又解释不清楚,那面试官又很坚持自己的观点,然后我当时时差没倒好特别困,意志力一薄弱就妥协了。挂得心甘情愿。尤其是面试官刚把问题提出来,其实一开始的问题都很简单,你就得提出疑问,说什么情况怎么样。当时Amazon问我关于Goodreads的问题,类似于豆瓣读书,我当时说我非常喜欢那个app,那个在Amazon的kindle组待了8年半的女principle engineer听了深表欣慰说她自己也超级喜欢啊。她问要推荐书,所以求出一个person 2度关系以外的圈子内的星级最高的书。我当时问,有的书很popular但是评分不够高也可以推荐啊,有的书只有一个人给5 star也不一定那么好。然后她很高兴我说出这个,回答说那就求最popular的。

有个视频说,两腿打开站直,抬头挺胸,两手叉腰,然后用这种伸展的姿势保持五分钟,你就会变自信很多。我一开始紧张的时候会用,好像有点用^_^

还有个视频说,和别人交谈的时候,可以有意的去模仿别人的动作,能增加好感。当然要做得自然。比如说当他们突然把手在胸前交叉,那你也做个类似的动作,比如他们一开始是趴桌子上讨论,突然向后靠了,那你也边说话边自然的向后靠。如果一开始你们俩的姿态都比较拘禁,比如都颔首、前倾,然后慢慢他们开始变得放松、自然了,你也要跟着改变。比如他们一开始是坐着的,然后站起来走到白板前面开始写,你也站起来跟在旁边看着。如果他们开始擦白板了,你也找个刷子一起擦。如果他们在找笔,你也帮着一起找。

所以,面试的时候哪怕自己真的很紧张,也请努力催眠让自己变得无比自信吧!

5.只要能做对题就能有offer,没有offer一定是题做得不够快、狠、准。

显然不是。我认识有个朋友一面能秒杀三道题的算法大牛都被Google无视了(不点名,偷笑ing)。借我一朋友的话来说,面试不如说是种社交。借着讨论算法、设计题,来社交。要和面试官沟通,要和他一起讨论问题,要把你的思路简洁明了的解释明白,要让他们觉得你很聪明。

你拿了题就开始coding,面试官在旁边看着其实很无聊的,根本不知道你在干嘛,也不知道你是不是已经做过在背答案。我一般会简单画个图解释下我的思路,然后中途有问题就请教面试官,有时候他们高兴了会故意提示你让你别卡住的。当然如果你们确定了思路,你就开始coding,就可以一句话都不用说了,最好是一气呵成,如果你突然断了,在思考一些问题,最好think aloud,让面试官知道你在想什么。

把面试官当作朋友吧,平等对待,朋友是愿意帮你的。

6.如果自己状态不好了要继续撑下去吗?

如果是因为累的,没有办法,面试确实很消耗体力,你得自己扛着,但是我建议可以稍微透露给面试官。我非常后悔2012年Google电话的时候,前一天晚上加班到很晚,然后大清早状态很不好,却没有主动要求reschedule。还有13年底的Facebook onsite也是,时差倒得一塌糊涂,只想睡觉。但我看开了,相信一切都是上帝最好的安排,There is a purpose behind every delay。后来有经验了,Twitter onsite,一天六面,最后一面我在coding的时候,发现自己头脑出现了短暂的空白,然后我就敲了敲自己的脑袋,说OMG I am too tired…然后面试官表示理解立马说可以用一些伪代码什么的。但是我休息了会还是继续写了完整的代码。之后他就不让我写code题了,改为聊天,哈哈。

Amazon的onsite也是六面,是我onsite的最后一个公司,我学聪明了,每次面试开始之前,我都要求去上洗手间,然后在里面整理几分钟,哈哈,对自己说,上一面已经过去,把它抛到脑后,现在focus到当前这一面。

有时候我非常紧张,思路乱七八糟也不知道什么才是他们想要的答案的时候,我干脆就停下来,不说话,看着窗外思考一分钟,面试官会等你的^_^有时候灵感真的就突然出现了。

LinkedIn第一面的系统设计短url系统,我从来没接触过,一开始我给的设计他们(有两个面试官)总是给我提出新的问题,如果request很多很多怎么办?你的设计在什么什么情况下会出现什么问题?我都快崩溃了,但是我后来望着窗外思考了的那一分钟内,整理了下,就把之前的设计全部推翻,重新快速设计了一个,之后他们特别满意,主面试官还谦虚的说他刚进LinkedIn的时候都不懂这些的。

Amazon第一面也是系统设计,park车的计费machine的系统设计,写类和接口,我也没做过类似的,不知道到底答到什么程度才算对。我自己一个人在白板上写了又写,然后擦了又写,自言自语的,中途发现自己已经面红耳赤了,干脆停下来故作深思,喝口冰水(美国大冬天都喝冰的吗?!)。真的是喝了那口水,自己的心跳立马就恢复正常了,然后就想到自己要加一个和机器交互的模块。加了之后,我发现面试官们还是没有任何反应,就回过头问他们,还有什么其他需求吗?然后他们说哦,没了,你已经做了很多了。囧。

7.你之前的跳槽情况那么多,他们不反感吗?

他们不反感。有些人完全不care你之前的经历,我猜是,在国外找工作是平等关系,你干得不开心了,觉得公司不合适就走,很正常。另外我的工作经历都是一个比一个好。

但是他们确实会有顾虑,其实现在跳槽是很正常的事情,所以前面提到很多公司面试会专门考察你的热情程度和求职动机。LinkedIn的最后一面仔细问了我每家公司离职的原因。我解释清楚当时的各方面原因,有公司不好的地方,也有自己不成熟的问题。但是我强调这次我去找美国的工作是我花很多精力去认真挑选的,而且由于身份问题,我一定会把下一份工作当作长期的事业。

话说回来,由于我的工作经历丰富,所以我也许比别人多一些推荐信,每段经历都有一封。这个对我的帮助太大了,Google是我面得最差的一个公司,搞不好没有这些推荐信我就挂了。谢谢你们!不过也只有Google要了这么多东西,其他公司什么都没要,就因为我有Google的pending offer,他们就都抢着要,可见Google招聘的品牌效应之大。

问啊-定制化IT教育平台,牛人一对一服务,有问必答,开发编程社交头条 官方网站:www.wenaaa.com 下载问啊APP,参与官方悬赏,赚百元现金。
QQ群290551701 聚集很多互联网精英,技术总监,架构师,项目经理!开源技术研究,欢迎业内人士,大牛及新手有志于从事IT行业人员进入!

http://cxy.liuzhihengseo.com/515.html

这篇关于逗比程序媛的湾区FLAGT面试求职经验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668917

相关文章

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

这些心智程序你安装了吗?

原文题目:《为什么聪明人也会做蠢事(四)》 心智程序 大脑有两个特征导致人类不够理性,一个是处理信息方面的缺陷,一个是心智程序出了问题。前者可以称为“认知吝啬鬼”,前几篇文章已经讨论了。本期主要讲心智程序这个方面。 心智程序这一概念由哈佛大学认知科学家大卫•帕金斯提出,指个体可以从记忆中提取出的规则、知识、程序和策略,以辅助我们决策判断和解决问题。如果把人脑比喻成计算机,那心智程序就是人脑的

java面试常见问题之Hibernate总结

1  Hibernate的检索方式 Ø  导航对象图检索(根据已经加载的对象,导航到其他对象。) Ø  OID检索(按照对象的OID来检索对象。) Ø  HQL检索(使用面向对象的HQL查询语言。) Ø  QBC检索(使用QBC(Qurey By Criteria)API来检索对象。 QBC/QBE离线/在线) Ø  本地SQL检索(使用本地数据库的SQL查询语句。) 包括Hibern

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于