本人开发六年多,从一个中游的公司跳槽的阿里P7,其实这六轮的面试下来整体感觉还是不错的,在这之前我其实面试的其他公司的时候很烂。
第一轮:团队面试
第一轮基本上是你的团队成员面试你,是和你同级或者高你一个P的师兄来面你,我的话基本没问什么特别的,主要还是讲自己简历上的做的项目,这里需要你很熟悉自己的项目才行,我个人觉得这里你要把项目里你的角色做了什么没做什么讲清楚,然后最好能把自己做的那部分重点展开来讲,然后面试官会从你讲的内容里挑一些具体来问你,这部分就因人而异了,知道的说不知道的别瞎说。最后还会问你一些什么TCP/UDP啊、网络模型啊之类的基础知识。我是觉得这一面只要你项目靠谱、不吹牛逼、底子扎实,过一面应该都不是问题。
第二轮:主管面试
这一面其实跟第一面差不多,就是你的师兄们筛完简历了,然后到你的主管来面试你了而已。这一面我的面试官还是让我主要介绍简历(可能因为我是社招,有项目经历他们比较感兴趣吧),然后我就又讲了一遍,因为我一面完了之后有思考过,所以这一次基本上上次没有讲到或者讲得不好的地方这次我都有注意,基本讲的还行。然后接下来依旧是根据你讲的东西来挑重点的来问,这部分真的没有什么固定套路,都是他们听见啥感兴趣的就会问你是“怎么实现的,为什么这么实现,有没有更好的实现方式”这三个问题,这一回除了你要对自己项目足够熟悉之外,还要求你对你做过的东西要有思考才行,你要是现想,那肯定是不靠谱的。这一轮对面最少都是P8级别的人了,千万可别不懂装懂的乱说呀。还是那句话,知之为知之,不知为不知,是知也。
第三轮:交叉面试
这一面基本是找个其他部门和你将来的主管平级的leader来面你一遍,防止前面自己部门面试作弊嘛,基本套路和二面差不多,但是会多问你一些基础知识和编程能力上的事,主要还是以考核你为目的,肯定不是为了难为你的,所以,好好加油表现出你自己就行。
第四轮:代码面试
这一面据我后来的师兄讲本来是二面,是想省了的,但是后面由于流程规定,又给我加回来了,所以我就经历了一次在线笔试的面试。这一面的面试是给你一个在线网站,然后你和你的面试官一起登陆上去,共享web页面,然后他给你出题,你来现场写代码,伪代码就行,然后你再给他讲一遍你的逻辑就ok了。这一面没什么好讲的,写代码嘛,是骡子是马拉出来溜溜咯。出的题不会很难,我答的是两道,一道给我半小时,第一道是给你一个shell命令,执行的功能大概就是读取一个日志文件,然后根据日志里的某一字段排序,然后取前五,输出。大概考点就是:1.你得读懂这个有cat、有awk、有sort等等猛地一看还挺长的shell命令;2.实现它;3.时空间复杂度/效率;4.讲清楚。第二道题目是反转字符串,大概就是把字符串“123456789”从中间分开,然后分别反转,然后输出,输出结果是“432159876”。大概考点就是:1.实现它;2.时空间复杂度/效率;3.讲清楚;4.尝试给出优化方案;大概就是这种类型的题,肯定不会重复的,师兄说很可能就是他们最近写代码遇到的问题,就直接拿来问你了,所以也没什么固定套路,你也不用临时抱佛脚的刷题,随缘就好。
第五轮:boss面试
到这一面的时候基本就稳了,当然我也见过挂的。这一面就是你的主管的主管来面你了,我当时还是先讲项目,然后挑重点的问,不过和二三面明显的区别就是他会问你更高层次的解决方案,不在拘泥于你做的那一点东西,会让你从整体上或者部分整体上讲清楚你项目的解决方案以及你自己的思考(上面的那三个问题),会让你尝试给出更好的解决方案,并解释原因。我个人感觉这一面更多的是考验你的全局观,你要是一直拘泥于自己的小天地,那估计会吃亏的。当然,面试分人的,有的非技术出身的主管就是和你聊聊天谈谈人生理想什么的,你要是不match也会被淘汰。
第六轮:HRG面试
谈人生谈理想谈三观谈薪资,只要你不反人类不扯淡,就ok。
**下面分享一下在准备面试阿里的这段时间里我自己准备的面试题的总结(其实大家大部分面试中遇到的问题,在这套面试题中都是涵盖的)
MyBatis面试题
MyBatis这一部分我是27道题,可能这一部分的面试题稍微偏基础一些,甚至有些面试根本不会用到。
ZooKeeper面试题
ZK总共28道题,ZK问的有基础,也有比较难的。
Dubbo面试题
Dubbo这一部分总共30道题,面试提问笔记多的就是Dubbo和Dubbox、SpringCloud进行对比和分析,当然这些面试题我也整理了很多
Elasticsearch面试题
24道题,这一部分和下一部分可能面试的比较少,所以相关的面试题也相对少一些,但是有一道题很有意思,是让你介绍你们的电商搜索的整体技术架构。
Memcached面试题
23道题
Redis面试题
40道Redis面试题,Redis底层运行原理、分布式锁、缓存、限流、秒杀等等这些部分问的还是比较多的,也需要你自己有一个完整的调优思路才可以。
MySQL面试题
50道题,MySQL调优这一方面的问题基本面试必问,所以需要大家有一个相对完整的调优思路,通过刷这50道题中相信大家可以从中找到一些新大陆。
Java并发编程(一)
并发编程第一部分75道题,并发编程这一部分就不用多说了吧,必考题。
Java并发编程(二)
第二部分是48道题。
Java面试题(一)
Java基础部分,基本面试中一面的大部分题都涵盖在里面(我还特意细分了2大部分,我细心吧!)这第一部分是95道面试题
Java面试题(二)
第二部分是133道题
Spring面试题(一)
Spring基础73道题
Spring面试题(二)
第二部分是67道题,其中还有一部分MVC的面试题。
微服务面试题
微服务面试题50问答。
Linux面试题
这一部分总共是整理出来了45道题。
Spring Boot面试题
22道题