面经:历时一个半月,终于拿到了阿里、字节、拼多多、美团offer,到底该选那家?
The following article is from 安琪拉的博客 Author 安琪拉的博客
大家好,我是D哥
点击关注下方公众号,Java面试资料 都在这里
作者:安琪拉
〇. 战况
蚂蚁:一轮笔试+五轮技术+一轮HR
饿了么:三轮技术面 + 一轮HR 面
抖音:三轮技术面 + 一轮HR 面
拼多多:三轮技术面 + 一轮HR 面
美团:三轮技术面 + 一轮HR 面
比心:三轮技术面 + 一轮HR 面
得物(毒):一轮技术面
eBay:三轮技术面
总体耗时基本在一个月左右,除了蚂蚁流程比较慢,体检背调就花了二周,大体在一个半月定下来,期间安琪拉发生了很多有趣的事情,后面慢慢跟大家说。下面按着这样的节奏来介绍:
安琪拉的个人介绍;
写一份不被扔垃圾桶的简历;
关于简历投递,为什么安琪拉推荐找猎头或内推?
准备面试
彩蛋
内推
叙事文写的比较随意,大家挑着看。
# 个人介绍
教育情况:某老牌985软件工程本科
跳槽前一份工作:上海某家头部互金公司,我后面叫他老J(取自我领导姓的首字母)
来老J 前一份工作:面向金融B端企业的创业公司,我后面叫他老 H;
之前面试经过:17年底面蚂蚁、美团都悲剧了,拿到猩便利、老J 的offer,19年7月拿到美团、挖财、声网offer,20年4月就是这次上面已经列出来了。
# 写一份不被扔垃圾桶的简历
这个标题很安琪拉,草丛婊的自嘲,关于写简历,知道的并不全面,只是根据自己做面试官做简历筛选和自己投的简历来讲。
先说下什么样子的简历容易拿高分,之前在老H公司参与过简历筛选,也看了百十来份简历,总结好的简历几个特点:
简约清晰 技术人的简历可以简约一点,简约不等于简单,你的项目经历和技术深度可以很深,但是体现在简历上一定高度概括,简历上不适合长篇大论的写记叙文,议论文,看过有些简历写成了日记风格的,和谁一起做了哪些事,市场反响怎么样,公司融资多少钱,发展的多么好或者不好,面试官只能当《故事会》来看了,找不到求职者个人的部分。
突出重点 一份简历如果全文都是做了**系统,参与了** 功能, 面试官要自己找重点,所以最好简历直接开门见山,我在项目中扮演什么角色,搞了什么大事情,拿到什么结果,最好是带数据作为支撑的,有个词叫可量化,比如你如果项目访问量大,可以写项目的QPS、PV、UV等,如果就是访问量小但流程复杂度高,你可以总结怎么做模块化开发、流程灵活性配置、效率提升等等,写到JVM 内存调优你可以写新生代/老年代内存回收时间提升了 ** ms,写到并发,你可以写程序调优压测可支持TPS 从1000涨到5000等等,这都是参考,可以辅助一些图或表在简历中,直观来说一图二表三文字,当然前提是你图表确实有亮点。
细节 细节决定成败,有几个细节要关注:
错别字 写完一定要review 一下简历,别留错别字,会给人留下做事不仔细的印象,简历有错字,代码谁知道 ?
逻辑 前后逻辑一致,数据不要自相矛盾,有逻辑漏洞,大厂面试官一般会根据你简历的总体内容大致做一个判断,逻辑有错误会对面试者诚实度打折,这在很多公司是大忌,相信大家都听过阿里的价值观;
发简历 简历不要压缩、不要群发、邮件带正文介绍自己。大部分HR或面试官这个时候都背了很重的招聘指标,真的很忙,尽量帮他们节省时间,简明扼要在邮件正文告诉他们你的情况,简历用PDF格式,不要压缩,如果你压缩的格式面试官没有相应的解压工具,还得专门花时间去下载解压工具,另外不要群发,见过简历内容中有意向职位写的别的公司的,这种很容易过不了HR 那关。
排版 其实这个就是干净清爽就好,比如文字要对齐、字体大小一致、主标题和内容协调、工作经历和项目经历建议合并,篇幅不宜过长,技术的简历颜色不超过三种,不要五颜六色(除非专门做了设计),不要非主流、网上找的模板记得去掉原作者的页眉页脚。
写完简历要像写代码一样走读一下,把自己当做面试官,如果看到面前这份简历,是否会怦然心动。
# 关于简历投递,为什么安琪拉推荐找猎头或内推?
你有没有过这样的感受,网上投了一堆简历,获得面试邀约的寥寥无几,或者压根就收不到几个电话。
传统行业的不了解,只说互联网行业,一般像51job、前程无忧、猎聘我刚毕业那会还用过,现在基本简历投进去,接到很多都是推销电话或中介。现在招人成本高,大厂面试流程长,在安琪拉所在的部门,基本都是优先从阿里内部转岗招人,在钉钉上一个个问,有没有兴趣来支付宝一起搞事情。为什么?招人指标压力大,这样做最快,时间成本最低,另外就是走猎头和部门内部推荐。
安琪拉总结简历投递顺序:
猎头 > 内推 > 官网 > 脉脉 > Boss直聘 > 海投
先说为什么找猎头,理由有以下几点:
猎头拿到的岗位肯定是真实招人需求,不会是为了完成KPI拉人头,有很多反馈简历过了等很久都没回应的可能就是为了刷招聘KPI,这种一般在猎头这不会发生;
能走猎头渠道,或者说付得起猎头费的公司往往是处于上升期的公司,不差钱的主,现在行情这么差,都知道互联网工资高,猎头费也不便宜,找猎头推荐公司就相当于变相通过猎头帮你筛选了一波好公司,当然,前提是你找的是优质猎头,很多都是职业中介,这个后面聊。
负责的猎头会帮你做职业规划,帮你梳理你的亮点、短板,并分析目前市场行情,未来一些方向和市场信号,结合你的情况做选择,有时候偏听则信,兼听则明,多从猎头获取一些市场的数据对做正确的决定有很大帮助的。
面试节奏的把控、面试的安排、准备、面试结果的获取、HR 谈薪这些环节有猎头在中间能帮我安排好,如果你面试时本职工作很多,这些事情猎头很多都能帮你代办了,比如谈薪环节,你可能不好意思开口找HR要,要高了怕人家直接给拒掉,觉得你心气高,要低了怕吃亏,靠谱的猎头基本会告诉你这个职业市场价,你也能直接了当的跟猎头说,他来斡旋。
# 准备面试
首先说通用的策略和面试三阶段,然后针对每个公司的情况具体说。
安琪拉总结的有以下几点策略:
心仪的公司面试顺序往后放: 刚出来面试,先拿一些不太在意的公司练练手,先攒一波经验再打打怪,不然技能都不熟悉,上来打大龙肯定GG,可能不太厚道,但是招聘者和求职者本来就是互相当备胎的关系。
记录面试过程,不断复盘总结: 面试过程可以录音,但是要征求面试官的同意,如果不行,面试结束立即复盘,记录认为需要提高的地方,回答有欠缺,有遗漏,知识点有盲区的地方。
做好准备,可以找技术的朋友做一轮模拟面试:凡事预则立,不预则废;不做准备,直接就上的都是猛人,当然大牛当我没说。
面试前:
梳理回顾自己的项目,挑1~2个项目找出亮点,面试时可以主动告诉面试官自己认为做的好的部分。
简历上的细节自己一定要熟悉,可以多确认几次,好的面试官一般都会基于你的简历发问;如果一个面试官不是基于你简历提问,而问些偏门问题,比如他自己熟悉的技术,你直接可以转身离开了。
对项目中的技术栈,以及通用的技术栈可以做个梳理
面试中:
自我介绍简短,突出重点。大厂面试官很忙又很累,喜欢主动又会总结的人。
主动把控面试节奏,引导面试流程。一般在面心仪的公司时,你应该是有面试经验了的,通常的面试流程和问题你应该了然于胸;
例如你可以上来就直接告诉面试官,你认为做的不错的项目,熟悉的技术栈,节省面试官从简历上找亮点的时间。
认真听问题,不着急回答,可以多和面试官确认问题场景和边界。面试官会认为你考虑周全细致;
自信,不懂的问题大方承认;不知道的问题不要强上,不懂可以大方承认,说自己项目不涉及到这块技术,只是了解,原理性的确实没有做过研究,一般面试官也就问下一个问题了,否则不知道的瞎说,或者猜着回答给面试官印象会非常差,有时候还会很尴尬,面试官在那静静看你表演。
面试尾声面试官会问你有什么问题要问他?你可以把面试过程中不懂的问题请教他,一方面可以补齐知识短板,另一方面面试官会认为你对技术有追求,对你印象比较好,还有一个面试官拿来问你的问题肯定是他自己很自信的问题,他肯定知道答案。当然很多时候面试官可能不会作答,让你自己去找答案,安琪拉遇到过很多这样的,一般是面试官不希望泄题。
面试后:
主动询问面试结果,招聘者会认为你对他们意向度很高,企业也喜欢积极主动的人。一般让你等消息的基本不用等了,有比你更合适的候选人,你成了备胎;
面试后可以加个面试官微信或钉钉,后面找机会请教他觉得自己面试欠缺的地方,别人眼中的自己和自己眼里的自己还是会有差异的,可以多聊一聊,当然,注意用词,不要交浅言深。
前面讲了面试三阶段的注意事项,下面把每个公司拉出来说下:
阿里
最重视项目经验,安琪拉的五论面试中大概有四轮都是基于项目的技术在问实现机制、改进技术方案、做的认为不足的地方,技术栈的实现原理,有没有其他替代方案,涉及中间件的原理等等。
重视技术原理,对自己做的项目实现机制不能只是了解,一定要知道实现的机制,所以平常要下功夫深入了解项目的技术栈,例如Spring、消息队列、数据库、缓存要做到原理级别的了解,临时抱佛脚安琪拉觉得用处不大,还是在日常开发中要多思考多总结。
笔试部分很重要,一些公司技术管理者可能不需要写代码,临时上来让实现个业务需求,可能会抓瞎,所以平常要多动手实践,一般代码也没代码提示的,需要熟悉常规的函数,变量命名也要注意,平常养成好的命名习惯,推荐看下阿里的《Java研发规约》。
重视每一次面试机会,阿里挂了一个部门还可以换部门面,但是会有面试记录,如果面试记录较差,后面的面试官要冒一些风险让你通过,所以重视每一次面阿里的机会,听说很多人都是面了三次才进来,每次需要隔半年以上。
阿里的面试官一般都是从一个点开始,抽丝剥茧,一层层深入,直到你回答不出来,再换个问题开始继续“俄罗斯套娃”,当然问题不会脱离你简历里写的技术栈,所以还是那句话,重视每一个你写在简历上的技术点。
字节
最重视算法,不刷题基本没戏,当然除非你算法功力极强,当我没说;
每轮面试都有1~3道算法题,难易程度因人而异,一般前面项目和基础技术聊的不错,就会给道easy 或medium 难度的,如果前面聊得不太好,或者和面试官没眼缘,可能就会hard。安琪拉面试春节前后LeetCode 陆陆续续刷了一百多道题,这里分享个技巧:同类型的一起刷,一般可以分为这么几类:链表、树、图、动态规划、贪心、状态机等。刷的同时做好笔记,同时要刻意计时练习,不然面试时那么短的时间,而且有人看着你写,你会紧张,平常不训练那种氛围不一定能发挥正常的。另外一个技巧:拿到题不要立即作答,你可以写之前,和面试官先说下思路,如果你啥话不说,吭哧吭哧三下五除二洗完了,面试官觉得你背题了,大概率会立即出道hard的题,另外如果写到一半,发现卡壳,思路错了,重来的话面试官会给你减分,而且他要有耐心给你重来的机会。
提前了解业务和技术栈,一般如果你是Java的话,可能要换技术栈到Go,提前了解一些Go的知识也是加分项。所以字节有的部门不太会问具体语言相关的,而是问些公共中间件。
很有潜力,流量巨鳄,我知道的是疫情期间海外TikTok DAU每周都是百分之十几的增长。
拼多多
重视算法,我记得第一轮面试,面试官视频一句话没说,让半个小时做四道算法题,做完开始面试,顺便说下面试是晚上22:00开始的,你们品品;
看重候选人背景,拼多多倾向要985学历或大厂经历的人,猎头朋友说的,毕竟做的电商,一直定向挖阿里人;
给钱很多,下班很晚,我前同事老公平均到家都是1点多,一周只休息一天。
美团
喜欢问JVM优化,美团我面过二次,一次去年年中,一次今年年初,都拿到offer,整体感受他们很喜欢问虚拟机的问题,我知道美团是虚拟机优化这块做得不错的,另外就是MySQL数据库相关的,分库分表、索引。
重视Java基础,对你项目中涉及的Java基础知识会出对应的代码题,涉及比较多Java基础概念,重视编程基本功。
得物(毒) & eBay
得物很有意思,面试官可能面了太多人,到我这的时候有点心急,听我介绍项目说用redis list 充当了消息队列的backup,瞬间炸毛了,也不听我讲怎么做可用性的保障措施,cachecloud 的稳定性。质疑说怎么能用redis 来做呢?实话说质疑的有道理,但是才面了十几分钟,不让我把话说完就笃定我的技术选型是错误的,他直接问我还有什么问题,然后我问他正确的方案时也不肯说,然后结束了面试。整个面试过程二十多分钟,是我被拒绝的最干脆的一次,O(∩_∩)O哈哈~。
eBay 有三轮技术面,特别说三轮面试官都是女的,震惊。第一轮还有英文相关的项目介绍和问答,第三轮有线上笔试,题目面试官基于项目问的,让做些代码实现。第三轮面试的时候我主动跟他们说我好像不是你们要找的,因为他们部门想要招的是用Flink 做流式风控的变量计算,但是我主攻还是在**业务系统的后台,所以觉得匹配度不高。不过整体面试体验蛮好的,小姐姐(妹妹)们感觉就像是在外企自由人性的氛围滋润下成长的,面试都是柔声细语的,就问问mysql使用、索引、LRU缓存淘汰机制等等。我这种长期沉浸在国内民营互联网公司的老炮比较糙,感觉还是比较适合国内互联网的996,同样还有它的发展速度和薪资待遇,哎。。。怎么说呢?就是贱,一天不加班浑身不得劲。
# 彩蛋
面试大厂前可以练习一下表达能力,主要是讲话要精炼,不要冗长,要高屋建瓴,高度概括,面试流程越往后,面试官级别越高,你的视野和话术也要往上抽象,越往后关注更多的不是技术细节,而是你整体的技术视野和广度,对业务用到技术的整体把控能力,以及对未来技术变革的预见能力、创新的能力,好的面试其实是一场高质量的对话,有时候如果让旁人看,甚至分不出谁是面试官谁是求职者;
有些Boss 面会关注你的思维模式和整个技术的知识体系,平常需要做些积累总结,比如看书、看公众号、关注新技术趋势,做技术的原理性的研究,做些思考的沉淀。
不要相信脉脉上的匿名发言功能,原因不便透露,但是相信我没错。