面经:我是如何拿到蚂蚁 offer 的?
面试
我凭借记忆大概捋一下关于这次面试的过程,每个候选者的面试都有所不同,仅做参考,大家就当故事来看即可。
1、一面
在临近春节放假前,我接到一位大佬的面试邀请,当时我的情况是不准备面试的,原因是之前经历很曲折,我需要有一个沉淀阶段。但是当时了解过这个团队所做的事情之后,我还是决定要试一下,于是就约了面试。
自我介绍完后,面试官首先就跟我讲述他们团队做的事情,以及团队负责的项目公司架构中所处的位置情况一一跟我介绍了一遍,我觉得阿里的面试官这点做得非常棒,点个赞。
接着面试官问了我所做的项目情况,我把在中通做过的项目详细地跟面试官介绍了一遍,内容包括项目背景、项目架构设计、技术实现细节、遇到的挑战如何解决的,接着面试官就项目的某一个技术点进行深挖,目的是为了从项目中寻找你的技术深度和广度,如果你对技术的理解不够深度,或者是提前背的,面试官会很容易发现。因此,在日常工作中,你需要对项目所用到的技术进行融会贯通。
在项目中穿插着问完问题之后,会给你出一些场景设计题,这些场景设计题一般是所在团队所遇到的实际问题出发的,这一点非常考验一个人在平时工作的累积,在这部分内容中,还会夹杂着一些通用的解决方案让你去思考,比如分布式锁、分布式事务、幂等处理、缓存失效策略、流量削峰等等,从这部分内容面试官就可以看出你的技术壁垒有多深了,而且这部分对于一面的评价占比非常高,因为阿里的面试是非常注重从实际场景中去解决问题的能力。
最后就会考察你的知识点,Java 的 JUC 并发包的知识点尤为重要,因此这部分内容需要重点去梳理,比如 CAS 和 AQS 原理、基于 AQS 实现的各种锁机制(公平、非公平)、线程、线程池运行原理等等;JVM 方面会问比较实际的调优场景,以及会问常用的垃圾回收器的机制以及优缺点等等;还有一些数据库、Spring 等等后端通用框架的原理需要熟悉。这部分内容主要考察你的基础知识掌握得是否牢固。
从以上面试内容来看,阿里的面试官非常注重从实际出发考察一个人的能力,而且考察范围非常广,每个候选人的侧重点或许都有所不同,从我的面试经历给大家一个参考。
2、二面
面完一面后不久,就接到一面通过的消息,流程非常快,然后和面试官的二面约在了第二天。二面前一个晚上失眠了,因为太紧张了,梦想的征程中每走一步都会触动我的神经。
中午早早准备好,在面试前深深吸了几口气,让自己沉着冷静不慌张,不久之后接到了面试官的视频面试,自我介绍完之后,面试官让我从职业生涯开始介绍自己在每一家公司的学习和工作情况,因为我生涯前期的经历非常坎坷与曲折,经历过几家小公司。我跟面试官详细地描述了我当前整个职业生涯的历程,其中我重点突出了我在每家公司得到的成长情况,其中包括工作内容,遇到过的挑战并且是如何解决的,在技术上的沉淀如何,由于我的职业生涯都在不断地学习,因此这部分内容很好回答,把自己的经历说一遍即可。这部分内容面试官主要是考察经历的每家公司有没有得到成长,面试官虽然很在意频繁跳槽,但他们更在意的是你在这个过程中有没有得到技术上的累积。
接着面试官重点问了我一个比较拿手的项目,他会从整个项目的背景、项目架构设计方面进行深挖,这部分内容相比一面会更加广,会抓住项目每个细节进行盘问,当时由于项目是由我从 0 到 1 进行设计的,因此这部分的内容我还是能够给到面试官想要的答案。这部分内容需要对自己拿手的项目同时拥有宏观架构与微观技术细节方面足够的熟悉。
接着面试官给我出了一些高并发的场景解决题,这部分跟一面稍微有些不同,这些场景一般来说会比较广,通常业界已经有相关的解决方案了,这部分会重点考察你对技术方面的广度、深度以及临场解决问题的能力,同时也能看出你平时对技术的研究情况。
3、三面
二面完过了不久,就收到了二面过了的通知(我这个流程相对来说比较快)。
三面前即将面试时,我已经在家里,我在房间里面不断进行深呼吸,我知道一旦这一面过了,我离阿里就非常非常近了,离梦想越近,就越紧张。
自我介绍完之后,面试官就简单问了我个人的一些基本情况,包括学校、专业情况,因为我学校是一间民办独立学院,面试官可能没听过,而且我是非科班出身的,因此面试官需要对这方面稍作一番了解。
接着还是问了我在每家公司的经历以及成长情况,这也就更加印证了一个观点,阿里面试官非常在意你的过往经历,但同样很注重你在过往经历中的成长情况。这方面我的回答大体和二面时差不多。由于我的过往经历稍微多些,因此面试官还补充了如果我进入阿里,我想要得到的收获,以及以后会遇到什么原因离开阿里,这个每个人的情况不同都会有不同的答案。
接着问了我之前几次面试阿里没过的原因是什么,以及后面你是如何克服这些问题的。在这个问题上,如果你之前有面试过阿里,过往的面试评价也体现在内部招聘系统中,由于我很早之前面试过了,因此面试官主要是想知道我没过之后的这段日子里,我做了哪些方面的提升。
接着还是会问到我的项目,大体上也会跟二面差不多,但会站在更高更广的角度去考察你,比如你的项目类型,开源项目也有很多类似的解决方案,为什么还要自己重新写一个?又比如通过什么指标去衡量你这个项目是否成功?项目在推广过程中会遇到什么问题,你是如何解决的?在跨部门合作过程中,你怎么去协调沟通?在这方面内容上,面试官更多地想要看到你在项目推进过程中的软实力。
最后面试官会问下自己的不足以及优缺点,从这问题出发点去了解你是一个怎样的人。
三面时我已经在家里了,当天晚上收到了三面过了的消息,当时刚好要吃晚饭,得知三面通过后,我把自己关在房间里,忍不住激动地哭了。
4、HR 面
HR 面是春节过后了,同样地,HR 面之前我也不断进行深呼吸,我知道只要通过这一面,我就几乎双脚踏进阿里了,我努力让自己保持镇定,但当时还是有些紧张。
在自我介绍完之后,HR 会同样问了我过往经历的一些情况,这方面的内容大体跟前几面差不多。
由于我之前参与过 Seata 开源社区相关建设工作,HR 问了我参加开源项目的情况,具体是如何参与到开源项目中,以及在参与过程中得到了哪方面的成长等等。这方面内容 HR 主要是想要了解下你简历比较出彩的一些经历情况。
接着 HR 还会跟你聊聊项目方面的问题,对,你没看错,HR 小姐姐会跟我聊项目,他主要问了我在这个项目中所处的位置,有没有带人,在过程中有没有觉得非常难的地方,我就从项目立项开始讲起,把自己一路上遇到的一些困难以及解决方案都详细地说了一遍,同时还讲到自己是如何跨部门协作让项目更顺利进行。虽然都是问项目详情,但是和技术面问到的问题所站在的角度是不同的,HR 主要是通过你对项目的描述来考察你对问题的思考能力、沟通与协作能力,以及遇到问题的解决方式等等。
5、关于阿里笔试题
我的面试流程稍微有些特殊,通常来说笔试题会安排在一面或者二面,这次面试我没有做笔试题,因此我在 HR 面完之后补了一轮笔试题,题目是从阿里内部题库出的,大体上会出两道题目,一道是实现一个功能,一道是算法题,具体是什么题目就不方便透露了,通过这次笔试的体验,我觉得阿里的笔试会比较注重实际场景,而不是从 leetcode 原题搬一道给你做。
以上就是我本次面试的大体内容了,也许会有些遗忘的点,但大体上就是以上的内容了。
阿里的面试内容非常注重实际,因此想要在面试阿里过程中机会更大,就需要在平时的工作和学习中不断地沉淀,靠临时抱佛脚很容易被面试官看穿。
感想
关于这次面试的体验,我得出了以下的一些个人感想。
1、注重基础、深挖项目
阿里的面试非常注重实际以及基础,从一面就能够看出来,所以在平时中需要注意知识点的总结与沉淀,要学会记录,同时在做项目的过程中,多一些思考,同时要站在宏观架构与微观技术实现去看待每一个功能背后的逻辑。
2、每天保持学习
昨天最好的表现是今天最低的要求,这也是我从职业生涯开始就对自己的要求,时刻提醒自己要每天都有所进步。
3、表达能力很重要
表达能力在面试过程中实在是太重要了,假如你的能力不错,但你如何在短短的 1 个小时内,把自己最好的一面展示出来?我见过很多人能力很不错,但是表达能力欠缺,这会在面试中很吃亏。
4、向优秀的人看齐
在我的职业生涯中,我遇到过很多优秀的人,他们都是我的学习榜样,我会不断学习他们的优点。
5、保持热爱
从我大学开始到现在,你们是能够看出来,我对编程是热爱的,也是因为这份热爱,我才能一直坚持到现在。
6、当你觉得难的时候,就是成长的时候
到目前为止,我在职业生涯过程中遇到过非常多的挑战,不要退缩,要学会如何解决它,当你解决它之后,你会得到巨大的成长。
7、过程永远是最美好的,特别是实现目标的那一瞬间弥足珍贵
奋斗的过程往往是最美好的,其中最难忘的就是离梦想越来越近的过程,要珍惜实现目标那一瞬间的兴奋,因为这一瞬间总是短暂的。人的一生有很多阶段性的目标,比如中考、高考,每当实现一个目标的那一瞬间,相信大家都会很兴奋,兴奋之余更多的是要思考下一个阶段所面临的挑战,因为人生的道路总是充满崎岖与挑战,当你实现了某个目标之后,你不能原地踏步自我满足,你需要比以前付出更多的努力去迎接未来新的挑战。
往期推荐