分享一下我去年年底求职阿里的经历,Java岗5面心得分享

我求职的阿里的 Java 技术岗位一共有三轮技术面试和一轮 HR 面试,实际上 HR 面试了两次,下文会详细的讲。

因为这段时间面试了很多大厂,有一些拿到了 offer,有一些因为一些原因没有拿到,因此我个人觉得对于像求职 BATM 这样的大厂或者字节跳动、拼多多这样的独角兽公司,最后能否拿到 offer 一部分取决于你的个人技术水平和工作经验,另外一部分取决于你的运气,还有一部分取决于你面试时的策略和技巧,策略和技巧下文我会举一个具体的例子。个人的技术水平和工作经验这一块不必多说,来说说为啥有一定的运气成分呢?

举两个例子吧。

第一个例子,我这次面试了腾讯,前面三轮技术面试已经过了,第三面是主管面试,但是招聘方却要把第四轮高管面试安排在几个星期之后,对于大多数人来说,其实是没有这个时间成本来等待的,尤其是你手上已经有了几个 offer,它们可能在催你入职的情况下。所以,腾讯的面试,你不能接受等待这么长时间,或者即使你能接受,但是不能保证最终一定能拿到 offer,就不得不选择放弃。其实之前也听一位已经在腾讯入职的朋友说,大厂的社招面试周期可能真的有点长,有可能需要反复来回跑,因此要求职者自己权衡成本。

第二个例子,是我面试阿里。其实在我这次求职阿里之前的一个多星期前投递了阿里的另外一个职位,然后没过多久的一个晚上,大约七点左右进行了一次电话面试。阿里通常第一轮面试是电话面试,这次电话面试只能用"哑巴吃黄莲有苦难言"来形容。那天晚上,按照约定好的时间,我们开始了电话面试。聊了一个多小时,快结束了,我就问面试官,既然是 Java 职位的面试,为啥你不问一点 Java 相关的基础知识呢?面试官说,这些东西都是可以提前在网上寻找面经准备甚至背诵下来的,所以他面试的一贯做法是从来不问 Java 相关的基础知识,只和面试者聊之前做过的项目。好吧,我竟然无言以对。末了,面试官问我,你还有啥想问我的?我就直接说,那我这次面试到底是过了还是没过?面试官就直接说:你和我聊的并不是我想要的,我从你说的项目中也看不到任何符合我们要求的经验,所以面试当然没过。其实我当时心里其实是很不满的,为什么呢?因为我项目的工作所对应的业务,面试官并不了解,我就给面试官解释,尤其是涉及到一些结构图和流程图时,由于是电话面试,电话里面根本说不清楚。也就是说,第一面试官不了解你的业务,但是他觉得他通过你的描述懂了,第二一些特定的内容电话里面描述不清楚,再加上面试官不问相关的 Java 技术,因此最终给面试官留下的印象是你"一无是处",没有任何可取之处,因此失败了。但是大多数求职者应该和我的开始的心态是一样的,面试大厂不自信导致底气不足,不会去反驳或者回击面试官的一些不合理的要求。

我举这个例子想说的就是面试大厂中的运气成分,很多时候,并不是你不行,而是面试过程中,面试官的个人特质和喜好或者沟通中信息不对称,最终让你没有通过面试的机会。因此,对于这种情况,我们需要做好两点,第一就是自信一点,调整心态,虽然我们可能很想进眼前这个大厂,但是不是非要进这个大厂不可,对于不合理的对待要直接反击,据理力争;第二,讲究沟通策略。因此在后面的阿里其他部门的面试时,面试开始前,我就委婉的和面试官说了自己的一些建议:既然是电话面试,那么面试官提问时就不要提一些电话中不太方便或者不容易描述的问题,例如描述项目结构或者流程;如果面试官之前没做过应聘者的项目的业务,就不要深问这些业务细节,因为可能三言两语说不清楚;如果面试官实在想知道,咱们可以约着现场聊,当面沟通很多事情就容易说清楚了。

3 第一轮技术面试

====================================================================

有了这个共识后,我和面试官开始了第一轮电话面试。第一轮面试的时间是某天上午九点,电话面试,面试官简单的了解了一下我之前做的业务,在后来的交流中我才知道面试官在去阿里之前也是在交易所做金融交易系统的,因此他知道我做的项目的重难点。接下来就问了我一些 Java 的基础知识,我面试后做了一下总结和记录,贴出来给大家看下:

  • Java 的 Object 类有哪些常用的方法?

  • 哪些场景下,子类需要重写 equals 方法和 hashCode 方法?

  • 描述下 HashMap get 方法的主要执行逻辑和流程;

  • Java 异常,什么是 checked Exception 和 unchecked Exception,举几个具体的例子;是否研究过 Spring Boot 中的异常;

  • ConcurrentHashMap 的特性和实现原理;

  • 什么是分库分表,以及分库分表的具体方法和使用场景;

  • 数据库事务的 ACID;

  • 什么是分布式锁以及其实现原理和使用场景;

  • 幂等性问题。

这里需要说一下,上面的面试题其实都很基础,尤其是涉及到 Java 本身的如果你是从事 Java 开发的,但是只局限于应付公司的业务代码,从来没有主动去研读一下 jdk 的一些常用类库,无论从应付面试来说,还是就你的 Java 技术栈的提高乃至技术职业生涯都是不好的,希望从事 Java 开发的读者要意识到这一点。

网络上有很多类似于 Java 面试高频知识点总结的帖子和课程,我个人觉得这些课程你可以用它作为大纲,但是千万不能只达到这些大纲要求的深度,作为 Java 开发者,jdk 的源码,尤其是常用的 java 类的源码还是建议认真阅读一下。

第一轮技术面试结束后,我就问面试官是否通过了。面试官告诉我通过了,然后我问他下一轮的的面试会安排在什么时候。我当时告诉他希望他们尽快安排,已经有其他的公司在催我入职了。面试官说去沟通一下。

于是当天下午大概一两点左右,一面面试官问我晚上是否有时间,给我安排第二轮技术面试,于是约了当天晚上七点。

4 第二轮技术面试

====================================================================

第二轮技术面试是主管面试。原来约了晚上七点,我到了之后一面的面试官接待了我,并告知我他们主管临时有点急事,能不能把时间改到九点,或者再约。我当时想来了就来了,就不单独约时间了。于是在这之前和一面的面试官又聊了一下,一面的面试官人很 nice,我们聊了很多东西。通过聊天得知原来一面的面试官之前在某交易所做交易系统,然后我们聊到了"清算"系统,他告诉我我面试的这个岗位也会参与清算业务的开发,但是这里的清算与交易所里面的清算不太一样,交易所的清算系统更复杂一些。然后他和我说了一下后面面试的一些注意事项,告诉我二面面试官也熟悉对交易系统那一套,知道其中业务特点和技术重难点,但是后面的三面没有这方面的经验(三面是整个大的部门的领导),所以我一定要把我之前做的交易系统的重难点突出来,否则很可能被 pass 掉。最后又和我讲了一下阿里的薪酬结构和期权的一些事情,以及 HR 面试和其他公司的 HR 面试不太一样,要我认证严肃对待。

大约到了晚上九点,二面面试官终于来了。先和我介绍了一下他们所做的东西,他们是做跨境支付和结算的,通俗的说就是用户在 A 国家购买某个东西,这个东西是 B 国家的某电商出售的,整个流程下来如何针对不同国家的货币汇率把钱从 A 国家用户账户划到 B 国家电商的账户里面去。这里有个难点就是 A 国家的用户购买某产品时当时的汇率是 t1,但是结算是可能汇率变成 t2,如果保证 A 用户购买时的实际确认支付额与 B 国家电商用户确认出售额一致。大致就是这样一个场景,面试官让我描述这样一套流程下来,如何设计这样一套系统,一共有几个子系统,汇率会变,如何保证用户和商家的利益等等,以及结算频次如何控制。在和面试官讨论中我给出了自己的设计方案,当然开始的答案并不完美,后来面试官会不断给你提出新的问题,以考察你的设计能力。正常的面试结束后,面试官就我之前的项目聊了一下自己的看法。据他所说,他来阿里之前在摩根斯坦利做了十多年的金融系统开发,再后来来阿里负责支付宝中的蚂蚁森林和股票看盘那一块,后来调到阿里国际支付业务团队来。

聊了大概一个多小时后,结束了面试,我离开时,发现外面的沙发上还有一个人等待面试,汗,竞争压力真大。

第二天早上,我通过一面面试官帮我打听二面面试结果,大概中午的时候,二面面试官加我微信说面试通过了,但是三面面试官,也就是他们大部门的 leader 在深圳出差,问我是否方便视频面试,我说可以,于是就约定了第二天晚上七点的视频面试。

5 第三轮技术面试

====================================================================

前一天三面的面试官给我打了个电话,然后加了我微信。第二天晚上七点,面试官准时微信视频我,打开后发现是一个胡子没刮的中年大叔,"大叔”在阳台上坐在笔记本电脑前面,然后面试就正式开始了。先让我做个自我介绍,然后就和我聊起之前的项目,在我介绍项目的过程中,时而问一些 Java 细节的东西,如多线程同步用了哪些对象,如何编码的,时而问一下框架或者架构方面的,例如如何做热备、是否使用了分布式服务,分布式服务中多个服务之间数据如何保持一致,系统的支持的最大 QPS,缓存问题、数据库的压力问题等等。三面的技术面试并不容易,一般来说,不同公司因为业务形态,采用的技术方案不尽相同,但是不少面试官并不认同面试者公司所采用的技术方案,所以需要面试者详细的、认真的给出合理的解释,如果你对你负责的系统背后的技术方案从没进行认真的思考和反思,很容易被面试官几次连续追问弄的措手不及,或者落入面试官设置的技术圈套中。

这类面试我给读者的建议是,无论你是公司某个项目的负责人,还是你只是参与某个项目只负责其中一部分,不仅要想办法了解整个系统的结构设计,多反思你现在的结构设计,还要对关键的细节核心也要非常熟悉,把你所在的项目的一些关键细节搞清楚,千万不要只局限于自己的"一亩三分地"。

6 第四轮 HR 面试

======================================================================

第二天早上,一面的面试官告诉我第三轮技术面试已经通过了,接下来就是 HR 面试了,但是阿里的 HR 面试与一般的人事面试不太一样,HR 在阿里有点像军团的"政委",同时告诉我,阿里的薪资待遇现金部分不会给太多,更多的是期权,而且这些期权公司内部是明码标价的,在离职时公司会以制定的价格去回购。

当天,一个自称阿里的 HR 主管的女性给我打电话,与我约了下一轮的人事面试,具体日期记不得了,是后面几天的某个上午 10 点。

那天的 10 点,对方如约打来电话。在我以往的经历中,我觉得既然前面技术面试过了,到了 HR 面试时应该是简单的了解一下面试者的情况,然后就开始谈薪资了。然而事实并不是这样,这个 HR 先让我做了一下自我介绍,然后让我描述一下每段工作经历分别做了什么、每段工作经历时长和离职原因,还问了我诸如我工作中最受挫的事情以及最大的挑战的事情是什么,以及我的一些思想观念和价值观念。唉,感觉真的就像"政审"。聊了快一个多小时,我的心一直是绷着的,额头都出汗了。那天我的媳妇也在旁边旁听,我面试了一个多小时,她跟着紧张了一个多小时。

面试最后,同样的惯例,这个 HR 问我有什么想问的,我当时脑子一发热,问了一句套话:您觉得在 IT 公司,HR 应该扮演什么样的角色?唉,就是这个问题差点,让我"万劫不复”了。这个 HR 显然很老道,并没有直接回答我的问题,而是反问我怎么看待 HR 工作职责的,我当时说,人力资源部门应该为职能部门做好后勤工作。面试官听我这么说,立刻表示反对,开始给我说阿里的 HR 如何如何,作用如何如何,接着我就脑袋嗡嗡的又听了她说了一会儿。最终我们结束了这次的面试。

面试过程中,其实我一直以为会和我谈薪资待遇,然后从开始到结束并没有谈到,因为不确定我是否过了这个面试, 也没有去问。

7 第五轮 HR 面试

======================================================================

第二天早上,我再次接到这个 HR 的电话,告知我所有的面试都通过了,接下来和我谈下薪资待遇。经过他们的综合考察和评定,给我的职级是 P7(技术专家),给我价值 80 W的期权,分三年拿完,第一年给 25%,第二年再给 25%,第三年给 50%,但是现金部分最多只能给到 32k(月薪),保底薪资是 14 薪。于是我问她,我少要点期权,月薪能否加一点,她说做不到;然后我又问她每股期权如果离职公司的回收价格是明确的吗?她也说不明确。于是,我又和她说,我说你这个薪资水平和我上上家的待遇差不多。她也不接我我的话茬,说这是公司的规定,况且你来阿里也不是为了钱。我竟然无言以对。后来,我就说我拿了某独角兽公司的 offer,人家年薪都给到了七十多万,你这比人家低的太多了,她又说,这家公司给的薪水本来就比市场平均水平要高很多。

谈到这里,我其实已经没多少耐心继续谈下去了。我朝思暮想,诚惶诚恐想进的阿里,给出的待遇竟然如此。唉。大家出来工作,不是为了钱,为了啥?而且整个面试的过程也是比较磨人的,最终给出的薪资水平毫无诚意。此时,我实在不想继续谈下去了,于是我对她说,要不这样吧,我考虑一天,明天这个时候给你打电话告诉你结果,她说可以,并说第二天会打给我。

8 最终结果

=================================================================

当天我问了一下我从携程离职去阿里蚂蚁金服的同事,我却发现,他从携程离职去阿里竟然三个月都没待到就离开了。当然,这可能也有他自身的原因。但是他和我描述的是,阿里的文化并不太 **。

综合考虑下来,最终我还是决定放弃阿里的 offer。第二天当那个 HR 打来电话时,我直接开门见山的说,我选择放弃这个 offer,她听了之后说了一句尊重我的选择,然后简单的寒暄了几句就挂了电话。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。

这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。

image

请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 27
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值