【斩获7枚offer,入职阿里平台事业部】横扫阿里、美团、京东、 去哪儿之后,写下了这篇面经!
The following article is from 石杉的架构笔记 Author 即将拥有人鱼线
点击上方“Java后端技术”,选择“置顶或者星标”
你关注的就是我关心的!
作者:即将拥有人鱼线
微信公众号:石杉的架构笔记(ID:shishan100)
自身情况
跳槽之前,楼主在一个小型互联网公司,主要是做互联网彩票。
其中做过面向用户的APP,也有o2o模式的,也有b2b模式的的项目,用的技术比较杂,没有指定的规范,只要能完成任务就可以,技术挑战也不是很大。
然后我只能把我所做的东西做好,推动一些新技术更是难上加难,主要都是业务为主,对于高并发、高可用等技术方案犹如天上月亮一样,只可远观,而不可亵玩焉。
然而去年10月,国家发布新的法律条文,互联网彩票属于非法彩票,这个公司业务全部下架,所以开始着手打算找寻新的工作,冲刺大厂的机会终于来啦。
面试准备
我面试准备时间大概有2个月左右,主要还是两块,一是基础技术、二是项目。我大概花了一个月的时间,快速复习了一遍之前学习过的知识以及写在简历上的技能。
对于项目,重点是项目和技术的融合,因为我本身对整个项目的业务非常熟悉,这个时间花费的不算多,但是通过面试之后,感觉这个环节非常重要。这个在下文中会说明。
还有就是自己最好关注一下新的技术之类的(ServiceMesh等),面试的时候也会问。
投递简历建议
如果想去大公司面试,建议提前一周投简历,或者到周三之后投递简历,(大公司投递人很多,可能这周的面试都约满了,所以HR都是周三之后看招聘信息再约下周面试)。
这样的话,在第一周你可以投递一些小公司来练手,如果成功,可以拿一个offer来保底。
ps:我个人就是第一周投递大公司几乎没有人看,第二周就有HR打电话约
面试建议
如果HR约你面试,你自己特别想去这个公司,我建议约在下午。(上午大概也就是10:00左右开始,到12:00点,中午需要吃饭的,你自己需要等到下午面试,最好是一次性把技术都面完,HRBP可以通过电话面试的)
大公司面试如果顺利的话,估计大概至少3-4个小时(要有心理准备),所以我感觉约在下午比较好
还有就是我建议预留出2-3天下午的时间,有可能突然大公司HR给你打电话,这样不至于约满了,没有时间给大公司来面试。
技术一面:
大多数情况,都是你面的职位同级别的同学来面(也有可能是你部门的leader)
大部分都是基础,画图、手写个简单的算法。一般都是变种的简单的算法,不会直接让你写快速排序,而是给你出一个类似的场景。
我个人认为算法不要准备那么深,一般都是二分查找、排序之类的、链表、队列等等。
ps:如果手写算法的时候自己写不出来,也要写,因为他不一定看。
技术二面:
应该是你部门leader,主要就是说你的项目,画架构图,机器部署,qps、tps都是多少。
然后也可能问一些其他基础的,还有就是给你场景,让你设计(这个可能会问很多,这个只能看自己的情况啦)
ps:可能有的朋友会问,怎么引导面试官到我们最擅长的技术上去?我个人建议嗅探机制
我举个例子,如果你研究过Spring Cloud注册中心Eureka的源码,假如问你CAP理论,你说了一堆。。。然后你可以尝试着问问面试官:eureka是类似于AP思想,我可以大概给你画个原理图吗?
你去询问,如果面试官同意了,这个时候你要简单的画,不要太复杂
如果面试官对这个感兴趣,他会继续问你的(我们就等着他问的,对不)。
为什么这么说呢?因为不同的面试官倾向点不同。
有的认为,我问你什么,你直接说主题就好(要在单位时间内问更多问题)
如果你说的多啦,有的面试官可能认为你的表达或者理解能力有问题,你说的不是重点。
所以这就是我说的你先去嗅探,看看面试官是偏向哪方面的。
这就好比一场重要的NBA季后赛,刚开场的时候,双方球员都会用不同强度的防守动作,试探一下这个夜晚裁判的判罚尺度,好为后面做打算。这个类比,感觉蛮贴切,ps:NBA铁杆球迷 ^_^
技术三面:
一般都是交叉面试(其他部门leader)。这个和技术二面差不多,就不多说了。
ps:我个人建议,一面的时候回答差不多就可以,不要太深入。一定把精力和体力都放在技术二面和技术三面上。(后面的都是leader啊)
HRBP:
就是问为什么离职、换工作想法、期望薪资,银行流水截图,定级别,谈薪资,发offer。
面试复盘
在这里我不想和其他面经一样,甩出来一大堆面试题。个人觉得列出这些题目也没有太大意义,我们面试同一个公司同一个部门的概率很低。
也就是说,面试的题目不可能完全一样,但是你细心一点就会发现大部分公司都是大同小异,就那些基础翻来覆去的问。
如果你面了几家公司之后,你真的会感觉再问这些东西,你都会有点恶心的感觉。
美团我面了两个部门,下午2点到10点半,可能面的有点蒙蔽啦,最后面试官问了个问题:
三点一刻的时候,时针和分针的夹角是多少度,我想了一会说1/4度,然后面试官拍拍我肩膀说是不是忘记乘什么了,然后就走了,最后也过了。
我说这个的意思,也就是说面试题,我们不可能在这之前都能见过,10道题,你能把7-8到题答的很好,我感觉就可以了。
基础面试的话,我个人认为不要投入太多精力和体力,要把体力和精力都放在后面的面试(后面面试是leader啊)。
技术二面和三面的时候,几乎都问的项目相关技术。我个人认为,why how what 这样的回答方式,非常适用在leader面试的时候。
举个例子:问你redis干嘛用的,你可以回答存储一些变动不频繁的类似商品的数据。但是面试官就会问你为什么用redis,给你来一个redis几连炮。
我认为如果是问到项目里的技术,比如redis,一定要把why how what这套思想全部说出来。
我们项目为什么用redis(这个很重要),我怎么用的,我们做了什么。我认为技术 2 面可能主要考察的就是你的思考能力和思维能力。
在我看来问你项目里的技术这个是送分题,你必须要回答的很好,把why how what整个阶段思考的过程全都说出来,这个就要看你对自己的项目的理解啦
当然你们项目里的技术方案可能有问题,你也可以根据你的项目大小和公司规模来说存在的问题。
个人认为没有最好的技术,只有最合适的。面试官可能会问你,存在的问题你怎么去解决?这个就是附加题。这就要看你对自己项目技术理解和宏观架构的理解啦。
所以我建议各位朋友对自己公司平时做的项目的各种细节,一定都要cover住,这个非常非常重要!
比如面试管问你让你设计一个秒杀的系统,你要根据自己的技术面和对秒杀系统的理解去说自己的想法。
在我看来,不同场景用到的方案可能都不会相同,开放题,考察的大概就是你思考和思维能力,思考的过程可能比结果更重要
美团面试(外卖、金融部门):
其中一天面试了美团的外卖部门和金融部门,我不建议同时面两个部门,如果想这么面的话,准备点干粮。下午2:00到10:30,八个半小时,有点吃不消。
只拿到了到店部门和金融部门的offer,外卖部门没有拿下offer,我个人认为HRBP的面试的时候出了问题。
问我期望薪资时候,问你为什么要这个薪资这个问题?因为外卖部门是第一次接受HRBP面试,所以没有做什么准备。我随口说了一句:我值这个钱!
说完之后就感觉有点二啦。(之后遇到这个问题都是委婉的说了一下别的)。
阿里面试:
技术一面就是部门leader,问了两个多小时,这个是我感觉最难面的。只问了半个小时的基础知识和算法,其他都是他给你个场景:
看电影,选电影院场次和座位的表结构
你现在的系统如何提升100倍的请求,架构怎么演化
EurekaServer集群现在是5W台,怎么在毫秒的时间内同步成功等等,让你去设计和思考
我一直站着在白板上画图之类的,一直到面试结束。
技术二面(leader的leader),这个还好,就是问了项目里的技术,算过啦。
技术三面(不清楚职级,应该交叉部门leader),挂了。
本来以为已经失之交臂了,没想到被第一次面试的部门leader推荐到了另一个平台部门。第二次面试因为是其他部门leader推荐,比较顺利的拿到了offer。
关于学习
我个人认为要给自己定一个目标比较好,比如跳槽涨薪、学习成果要达到什么程度,有句话说的好再好的大学也有坏学生,在烂的学校也有好学生
我觉得要进大厂,就要假想大厂都是很厉害的人物,才能促进你自己学习动力,我自己的惰性很强,要促进自己学习的动力这个对我来说很重要。
如果你认为很多人都一般般啦,你自己学会点新的东西,就会有点膨胀,惰性就会变强。
对于我个人而言假想敌对我来说很重要。你要假象别人都很强,我要自己多学习。当然,这是我自身的情况。每个人不一样,所以仅供参考。
关于谈薪资
因为每个公司的薪资涨幅是有要求比例的,比如最高就是20%或者30%,但是不是绝对的。
我就是拿着去哪儿的offer薪资和别的公司谈的,效果还是很好的。(拿你最高薪资的offer去谈)
作者:中华石杉,十余年BAT架构经验倾囊相授。个人微信公众号:石杉的架构笔记(ID:shishan100)
热门内容:
3、中国首个个人主导的Apache孵化项目SkyWalking成功毕业!