人生当中成功只是一时的,失败却是主旋律,但是如何面对失败,却把人分成了不同的样子。有的人会被失败击垮,有的人能够不断地爬起来继续向前。——贺炜 这两天下班路上,听到抖音上贺炜曾经说过的话,我突然觉得还是蛮有感慨的。看着已经漆黑的夜晚,坐着车里的我不禁想起,那也是才刚过去一个月的支付宝面试经历。
曾经
我来自杭州一所普普通通的二本,没有十分出色的背景,没有十分过人的天赋,好像就跟大多数人一样普普通通。毕业之后,呆过外包公司,呆过创业公司,也呆过传统公司。在这次进支付宝之前,我也曾面试了5次(印象中接到过的电话面试),但是每次都是一轮就结束了。可以说,我比大多数人都陷入了一种十分困难的地步,或者说是已经手握了一副烂牌,而且开局还乱打了几张。
你要问我,那都已经这样了,还怎么进的支付宝。大多数人都会告诉你原因123,但是要我真的细说开来,我却还真的不知道该怎么说。听到贺炜说过的话,或者说,这一切都是源于我的不甘心。
当你身边一个个小伙伴都进了阿里的时候,你的内心会不会也会越发的着急,而当你焦躁地去面试但是又一次失败的时候,我想这种滋味一定不好受吧。没错,我就是在这样内心的煎熬中,跟自己纠结的针扎——是放弃还是继续。
放弃?甘心?
很早之前就知道,“放弃是最舒服的”,这仿佛就跟如今的躺平也有异曲同工的意思。是呀,如果那个时候选择了放弃,那么就可以在一家传统公司继续躺平,每天做着CURD,顺便还可以沾沾自喜做个井底之蛙。但是,这样的生活,是我想要的吗?真的,就愿意这样下去嘛?甘心嘛?
那万一赢了呢
我想每个人的青春里,一定有一部动漫的身影,那就是《灌篮高手》。它之所以成为大家的共识之作,有着热血,运动,情义,还有坚持与梦想。诚如安西教练说的那句“直到最后一刻也不能放弃希望,一旦死心的话,比赛就结束了”,对于我而言,生命还没有到终点,阿里的大门也没有彻底关闭,我为什么不再试试呢?我还有什么可以丢失的?我还能再差到什么地步?即便是又一次失败了,我也不至于会有多惨,不过就是多了一次失败的经历,那又怎么了?那万一赢了呢?
可能大家觉得这不过是事后的言辞,可我想告诉大家,这个就是我当时真实的独白,我也是这样给自己做的鼓励——那万一赢了呢?每个人都希望奇迹的发生,但是你不去行动,你怎么知道,自己不就是那个奇迹呢!大不了,从头再来!
不一样的面经
其实我真的不是很想说什么面经,因为我想关于阿里,或者其他大厂的面经,网上的文章太多太多了,详细得多了我觉得我在这里的表述也不会很好,在这里,只是讲述一下我的真实感受,与君共勉。
一面
正如大家知道的那样,阿里的一面更多的侧重基础以及一些基本的项目经历。我知道很多面试的人都为一面准备很多的八股文。其实我很不喜欢八股文这种说法,因为在这些八股文的教条中,明明都是真实工作中的经验,却成了为面试而包装成的教材,不免有点令人嘘唏。关于基础部分,我也不会多提什么,因为这远不如各位观众自行去背八股文来的实在,只是在这里我作为一个曾经的面试官和面试者,提出几个建议:
- 知之为知之,不知为不知:这个意思也很明白,面试的时候,你知道的知无不言,不知道的,不要强行装作知道,在那里扯淡。如果是项目还可以糊弄,但是基础的东西,真没有必要。很多人会觉得,我要是答不上来会不会扣分之类的,其实真不必这样顾虑,首选基础的东西多如牛毛,每一个人的知识面有限,不会全部都知道,对于不太了解的部分,直接说“没有接触过不太清楚,也不好多做回答”之类即可。因为每个人都有自己擅长的,有些人擅长Java基础,有些人擅长Spring,有些人擅长MQ等等,把自己知道的回答即可。当然,要是面试官问什么你什么都回答不上,那就不好意思了。
- 回答的时候有条理:每一个面试官在提问的时候,最希望听到的答案就是清楚、有条理。例如Spring是如何解决循环依赖的,如何设计一个缓存中间件等等问题,这些都不是一点两点就可以回答清楚的,都是需要分布作答,回答出123等要点。
这是针对基础部分,现在的阿里一面,有些面试官也知道大家都会准备八股文,就不再提问这些东西,但是这并不意味着我们可以不准备,毕竟成功都是给有准备的人的。那么针对项目方面,由于每个人的项目经历不一样,我只能给出几点建议,这也是我曾经作为面试官比较看重的一些要点:
- 项目的表述清楚:我曾经遇到过很多候选人,在描述自己的项目的时候都描述不清楚,也无法让人理解。在表述的时候,要重点突出,“运用了什么技术去实现了什么功能达到了什么价值”。另外,在面试之前可以自己尝试表述项目,并且可以进行录音,看看自己那些地方说的不流畅、不完整之类的。我在面试之前,准备的几个项目至少自己私下里讲了30遍以上,每次都是录音(虽然十分羞耻),并且不断修正。
- 你的责任:这里我觉得各位围绕着SMART原则也是很应该的。其实我觉得,更重要的是,你做了什么。你在这个项目中做的工作,可以是你真实的工作,也可以是别人的工作(毕竟面试官又不知道),你的工作要突出你的重要性。阿里PUA里面经常有一句话——这个事情为什么是你做,如果换了别人做有什么不一样?我想,各位可以好好想想怎么回答这个问题。
- 技术的拔高:不管怎么样,我们都不能忘记自己是一个技术人的身份。所以在项目中需要体现出自己的技术。我之前所在的传统公司,技术实在有点咋舌(当然技术这个点,其实无关好坏先进,能服务到当下业务便是最好的技术,但是对于面试来说,确实有点遗憾)。所以如果你的项目不够“先进”,那么肯定需要自己进行包装,关于包装,很明显的一点就是技术的拔高,这个是最明显的。但是这里就会涉及到一个重要的点:技术选型。例如我当初面试的时候就会被提问:为什么选择RocketMQ而不是Kafka?这个时候,你所背的八股文就有点用了,当然,你需要有一定的真实性,必须结合着你的项目背景来描述,而不是按部就班的背八股文,因为这里还需要考察你的思考深度!
- 项目的管理:对于阿里p6及以上,对于项目的管理也是需要一定的能力的,所以最好是希望你有带团队的经验,这个是加分项目。当然,没有你可以稍微吹一下,但是希望你能自圆其说。围绕着项目,你需要做好以下的思考:
- 人员的管理:你是如何管理你的人员?一个项目你是如何分配给你下面的伙伴的?如果有人完成不了,或者存在风险,你是如何应对的?
- 项目的管理:这里其实很多是针对微服务体系的。你是如何进行服务治理的?你们的监控是怎么做的?QPS?如何做容灾的?这里甚至也有提到如果MQ消息积压怎么处理等等?
- 项目架构设计:这个地方很重要!这个地方很重要!这个地方很重要! 重要的话说三遍!在我其中一次失败的经历里面,就提到了这个,由于没有准备这一块,所以那次面试很尴尬。项目的架构要分为两块——业务架构+技术架构。这两个是不一样的!各位千万不要混为一谈!
笔试
不知道从什么时候开始,蚂蚁金服这边就开始有笔试这一环节。笔试嘛,主要考察的还是代码功底和设计功底,这里我就把题目放一下,各位可以试着做一下:
- 基于JDK的类设计一个使用LRU的缓存策略
- 基于JDK的类设计一个阻塞队列
二面、三面
这里为什么放在一起讲呢?因为从面试的情况来看,其实和一面当中的项目表述基本差不多,可能会有一些简单的设计情况。例如二面的时候,二面的面试官会提问说,“如果我有这样一个场景,你会怎么设计……”。当然这个也是结合着你的项目情况来说的。这里的设计其实无关对错合理,其实二面的面试官更关注的是你对于一个问题的剖析能力以及基本的设计能力,这个还是比较看个人能力发挥的,实在不会的,就从八股文里面找吧,例如“那如果我要保证订单MQ的顺序性呢”等等问题。
HR面
说到阿里的HR面,额,其实还是有点敏感的吧,我能给到大家的建议:
- 新六脉神剑
- 真实不装
- 你为什么想来阿里?你想成为什么样的人?
那天下午
在结束现场面之后,一直帮我联系的HR同学跟我说,已经通过了。我那个时候就蹲在Z空间对面,傻傻地看着,内心的感受真的不知道该怎么说。那天下午是一个大太阳的日子,路面很烫,我竟然也会舍不得离开那里。瞅着那个Z空间,我想想这4年来,一次又一次的失败,就好像是一个个轮回,仿佛就成为大家经常说的那句——不忘初心。我打开手机备忘录,整个5月,一共面了10家公司,累计面试36场(含所有笔试、技术面试、HR面),是会心一笑,是如释重负,是真的感谢那个不甘心不放弃的自己!
努力
写到这里,可能大家好像都没有见到我背后做了什么。好像只是空谈了一番,以及讲了一些建议。确实,其实每个人的努力也许不尽相同,这些建议也只是建议。如今我能说出这些建议,这些对我来说,都是一个坑一个坑走过来的。我只是一个普通人,一个没啥天赋的人,一直在走弯路,但是,能够前进那不就够了嘛!
- 做不到每天都看源码,但是也要经常看源码,要有这个意识!
- 学会写属于自己的博客文章。不要网上人云亦云的,那没有意思。我也是通过在这里写博客,才会意识到,原来我也有我自己的思考,这个真的是难能可贵的。我不敢说我的文章写的多好,或者是百分之一百的正确,但是这里都是有我自己的思考,对我来说,这就是成长,也谢谢大家一起见证我的成长,我也希望我以往,以及将来的文章都能带给大家成长。
- 每次工作需求,都能够想象背后的抓手,以及试着进行拓展点的设计。一定要有这样的意识,这样对自己、对团队都是十分有价值的!这种意识会锻炼你对项目思考的深度
- 坚持的心态!健康的心态!
未来
未来属于未知,我也不知道进了支付宝会发生什么。也许会不适应,表现差劲,甚至会被开除劝退,但至少,我这次终于进了,我能告诉自己,4年的时间,我也可以做到!我也可以进阿里!感谢曾经努力的自己,支撑着我走到了今天,那么也相信未来,只要好好做,只要还有机会,不愿服输的自己也能做到好多好多的事情!
加油!致敬!