自身情况
跳槽之前,楼主在一个小型互联网公司,主要是做互联网彩票。
其中做过面向用户的 APP,也有o2o模式的,也有b2b模式的的项目,用的技术比较杂,没有指定的规范,只要能完成任务就可以,技术挑战也不是很大。
然后我只能把我所做的东西做好,推动一些新技术更是难上加难,主要都是业务为主,对于高并发、高可用等技术 方案犹如天上月亮一样,只可远观,而不可亵玩焉。
然而去年10月,国家发布 新的法律条文,互联网彩票属于非法彩票,这个公司业务全部下架,所以开始着手打算找寻新的工作,冲刺大厂的机会终于来啦。
面试准备
我面试准备时间大 概有2个月左右,主要还是两块,一是基础技术、二是项目。我大概花了一个月的时间,快速复习了一遍之前学习过的知识以及写在简历上的技能。
对于项目,重点是项目和技术的融合,因为我本身对整个项目的业务非常熟悉,这个时间花费的不算多,但是通过面试之后,感觉这个环节非常重要。这个在下文中会说明。
还有就是自己 最好关注一下新的技术之类的,面试的时候也会问。
投递简历建议
如果想去大公司面试,建议提前一周投简历,或者到周三之后投递简历,(大 公司投递人很多,可能这周的面试都约满了,所以HR都是周三之后看招聘信息再约下周面试)。
这样的话,在第一周你可以投递一些小公司来练手,如果成功,可以拿一个 offer来保底。
ps :我个人就是第一周投递大公司几乎没有人看,第二周就有HR打电话约
面试建议
如果HR约你面试,你自己特别想去这个公司,我建议约在下午。(上午大概 也就是10:00左右开始,到12:00点,中午需要吃饭的,你自己需要等到下午面试,最好是一次性把技术都面完,HRBP可以通过电话面试的)
大公司面试如果顺利的话,估计大概至少3-4个小时(要有心理准备),所以 我感觉约在下午比较好
还有就是我建议预留出2-3天下午的时间,有可能突然大公司HR给你打电话, 这样不至于约满了,没有时间给大公司来面试。
技术一面:
大多数情况,都是你面的职位同级别的同学来面(也有可能是你部门的 leader)
大部分都是基础,画图、手写个简单的算法。一般都是变种的简单的算法,不会直接让你写快速排序,而是给你出一个类似的场景。
我个人认为算法不要准备那么深,一般都是二分查找、排序之类的、链表、队列等等。
ps :如果手写算法的时候自己写不出来,也要写,因为他不一定看。
技术二面:
应该是你部门leader,主要就是说你的项目。
然后也可能问一些其他基础的,还有就是给你场景,让你设计(这 个可能会问很多,这个只能看自己的情况啦)
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几连炮。
我认为如果是问到项 目里的技术,一定要把 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去谈)
关于这些面试题的详解,以及更多不同水平阶段,不同专题的面试题加答案,我这里都有整理分类的文档。并且还有系统的进阶学习视频资料,免费分享给大家。希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。有需求的可以直接加入我们Android进阶交流群:818520403期待你的加入