图片来自 Pexels
今年大环境不好,但还是毅然决然的出去试了试,而我这次口试的目标期待,是找一个有名互联网公司的技能专家的职位。下面跟大家分享一下我的口试经历。
拼多多

首先说说我口试上海拼多多的经历,我是朋友内推过去的,口试的是拼多多的商品中央部门,内推人说是拼多多技能哀求高的几个部门之一。自己之前做过商品干系业务,业务上有些对口。
一壁口试官首先让我写一下不雅观察者模式代码(设计模式有专门准备),然后跟技能官聊技能业务,聊分布式锁的实现,Redis 用的什么命令,问 Redis 集群缓存数据不屈衡怎么做。
我就说打算机领域有一句名言:打算机科学领域的任何问题都可以通过增加一个间接的中间层来办理,我觉得在客户端和 Redis 做事之间加一层就能办理了,问我详细怎么做,我说了我的思路。
接着口试官问我们公司的一些缓存架构,我们公司一样平常都是利用的堆内缓存+Redis 缓存(二层缓存架构方案)。
然后环绕着这个,问了数据同等性怎么做的?有没有做过干系压测?指标是多少?熔断降级有没有做过?
然后说说 Sentinel 和 Hystrix 的差异?我知道拼多多这两个框架都有利用,限流的一些参数怎么设置,依据是什么?
这个是真的磨练有没有在生产上玩过了。然后让我设计一个高并发系统,从哪些方面考虑。
末了口试官问我有什么问题想问他,这一块我是精心准备过的,我就问他之前我在设计商品域的时候走的弯路。
比如商品快照问题怎么办理的,由于当时我们做这一块的时候,所有涉及到商品域属性变更都会天生快照,造成数据量暴增。
然后口试官说他们也是这么做的,以是他说他们的一些操作日志表有的表已经有分库分表上万张了。
我问口试官的第二个问题是详情页的设计,怎么做的缓存设计?(比如从不同的业务纬度拆分 Key,更新频率拆分 Key)
由于我一贯想理解一下大公司在库存和价格这块有没有运用缓存这种形式,由于我们之前由于 QPS 都不算高,价格,库存都是直接实时查询数据的,结合兜底方案来办理。
以是这两个问题一提,一壁口试官以为我之前有过思考,就让我进入了二面。二面是 HR,聊了薪水,加班,补助等。
问我有没有买房,有没有在上海买房的打算?如果有的话,两年拼多多就可以凑足首付了。(拼多多二面都是 HR,这个是槽点)。
三面商品部的老大来口试,也是聊设计技能方案为主,由于之前我做过订单,然后他问我下单要建几张表?我说订单主表,订单条款表(有的场景下,订单条款会创建很多条)。
口试官问我怎么优化?(针对创建的订单条款太多的问题)首先我说订单表可以分库分表来办理单 DB 的写入瓶颈。
口试官不满意,我说可以先创建订单主表,如果订单条款表是瓶颈那么梳理一下业务,看看订单条款是否可以异步创建,走 MQ,然后口试官还是不满意,我说我只能这么优化了,暂时没想到更多的方案。
然后又聊了下分布式事务,可靠终极同等性的方案讲了一下,讲解了我们目前若何利用这套架构来采集上游数据,洗濯数据,然后消费落到业务数据库的。
又聊了一些其他的方案设计,细节的技能点聊的少,大多数都是系统设计方面。
我实在 Care 到他的核心思路,由于拼多多商品运用的流量特殊大,更多的时候在设计可以避免一些性能问题,而不是大略的堆机器。
整体下来,我觉得有些高并发的优化履历欠缺,整体技能二面还可以(自我觉得)。
面完,HR 让我回去等,解释天下午 4 点给回答,我很愉快,以为该当差不多了,怀着加班都是浮云,买房才是紧张道理的生理,开愉快心的回家了。
第二天 HR 见告我说,我挂了,挂在终极面的技能面上,我泪崩,很无奈。
阿里
再说说口试阿里,先是面的蚂蚁金服。一壁是电话口试,聊了 40 分钟的业务,当时我正在坐地铁,然后在一站下车就直接在地铁站聊了 40 分钟。
口试官问了我在上家公司做的订单模块,正向下单流程业务是若何的,系统流转若何的,涉及到哪些域。
我的回答是下单流程根据不同的业务涉及到的流转都不一样,一样平常涉及到库存,订单,营销。订单完成之后涉及到调度域,积分域,用户等等。
然后又问我详细的订单模型是若何设计的,拆单的依据是什么?我把订单的模型说了一下,一样平常都是订单主表和订单条款表,根据供应商的维度进行订单拆分。
接着问了正向下单流程中,优惠劵,库存,订单三者的事务如何担保的?
我们做的很 Low,没有用分布式事务,直接在订单这边 Catch,Catch 里面做一些非常反向流程,比如说开释存储,变动优惠券状态等。
口试官紧接着问这样做的问题在哪里?问题肯定非常明显了,便是 Catch 中失落败如何去做。
当时我们只是记录了干系接口调用日志,会有 1 分钟的 Job 会去轮询这些状态记录,并告警关照的。我们也考虑过调研过一些分布式事务框架,目前也在调研中。
然后就一贯聊的是业务和方案设计,聊完我自己以为一壁该当是过了。过几天接到电话约二面。
二面是现场面试,两个口试官,问我为什么从阿里出来,为什么想回阿里。这个问题我之前没有准备过,就临场发挥了一下。
接着便是持续串连环炮:
现在公司用户中央怎么设计的?为什么这么设计?为什么用 Redis?更新策略是什么?下单的链路怎么样的?怎么办理正向下单流程中库存,订单,积分的分布式事务问题?如约的过程?如约的后续流程?画出系统架构图(觉得每个口试官都会问)。平时架构设计中要画哪些图?我说一样平常会画一些数据库 ER 模型,主要的流程时序图,逻辑架构图,物理架构图等等。
问我哪些中间件理解的特殊深入,我说 ES,Redis,聊了聊利用场景,若何同步 MySQL 数据到 ES 的,这样的架构有没有碰着问题,Redis 的一些性能优化等等。
二面结束了,下楼的时候我问二个技能官什么时候有结果,他们说一周吧,然后等了三周才有结果,全体到接到三面关照大概靠近了二个月,在这期间我已经选了另一家在线教诲公司。
当时新公司已经入职二周了,周五接到蚂蚁金服 HR 的电话约三面,当时刚入职新公司一段韶光,由于太忙了,于是就没去,放弃了三面。
又过了一段韶光,阿里的一个口试官又打我电话,当时我不才班的路上,大概晚上 9 点 40 旁边,说他是阿里的其余一个部门,在系统上看到我的口试结果超时了,问我要不要口试这个杭州的职位。
我就试试跟口试官聊了聊,聊到了最近做的一个面向 B 真个招聘项目利用的技能栈,数据的采集来源,怎么洗濯数据,怎么掩护数据池,口试官说很符合他们现在做的业务,一壁过了。
我说平时太忙了,没啥韶光去杭州二面,口试官讲周六在盒马生鲜他们部门会来上海有个口试专场,这次周末韶光,再去学习学习。
二面的口试官该当是个 P7,技能大牛,聊了一个多小时,Java 技能栈最磨练候选人功底的便是 Java 并发和 JVM。
口试官问我若何写一个程序,快速打满方法区;让你设计一下可达性剖析,思路大概是什么;可重复读有用到锁等等。
三面的口试官是部门主管(大概 P8,P9 职位),聊聊 DDD 的理解;3 点 15 时针分针的角度是多少;最理解的中间件是什么,说说你的理解;理解 Hive 吗,等等。
第四面,HR 面,为什么之前离开阿里;事情中学到哪些,若何以为跳出到其余一个环境发展会更多;到新公司之后创造发展环境并不是自己期望,怎么办?
然后问了我之前口试蚂蚁金服什么情形,由于 HR 只能在系统看到我今年口试超时,问缘故原由,我说口试周期太长了,三面没韶光。
这边我也犯傻了,问了一个问题,说我口试如果过了能在阿里评级是什么,她反问我,你以为呢。
口试结束的时候,我问 HR 大概多久口试结果出来,HR 说月尾之前关照。
然后在月尾接到了阿里 HR 的电话,关照我口试过了,薪水大概和我现在这家在线教诲差不多,问职级,给了 P6+。
终极做了一些比拟,还是以为去阿里做 P6 或者 P6+ 并不是我现阶段的意愿,在中等公司做技能专家或容许以能做更多的事情,因此谢绝了阿里的 Offer。
某在线教诲公司
第一家公司是一家在线教诲公司,Boss 上投的,整体面试的还不错。
一壁的问题都是一些根本知识点的稽核,口试官紧张问了 Java 内存模型,ReentractLock 与 Synchronized 之间的差异,HashMap 1.7 和 1.8 之间的差异,分库分表怎么做的,MQ 若何做到的可靠性,顺利通过。
二面的时候,和口试官聊了一些业务知识,交易干系的一些设计思路见地,由于我对自己做过的项目的业务很熟习,聊的也比较顺利,口试也顺利通过。
三面口试官便是我入职的直接领导,问了对共享业务(大中台)的理解,做事边界怎么划分的,微做事的管理一样平常包括哪些,监控一样平常监控哪些等等,口试的都还不错。
然后 HR 来了谈了薪水,聊了换事情的缘故原由,下一份事情的期望等等,加了微信,路上说让我发给他之前公司流水,然后 HR 又详细聊了一下薪资期望,当天晚上 23 点发了 Offer(汗,当时就以为这公司加班挺狠的,HR 都如此)。
终极我选择了这家 Offer,给的职级是技能专家的岗位,平台和发展个人都比较看好,也有不少技能寻衅。
喜马拉雅
喜马拉雅是朋友内推的,技能经理职位,在浦东。之前这一家的公司口试成功,让我喜马拉雅的口试很有自傲。
一壁面了一个多小时,整体面试的还不错,大概 2,3 个回答的不好,比如说双亲委任机制和 SPI,线程池实行的时候若何在做事停滞的时候优雅关闭线程池。不过我也在口试过程中给了对方很多思路。
末了结束的时候口试官让我手写一个行列步队,我以为是一个比较大略的口试题,就口述了下思路,然后口试官坚持问了我第二遍,要不要手写出来,我说还是不要了。
然后口试官走了,我以为进入二面了,由于我自己也一贯做口试官,也有一些口试履历,以为这个一壁差不多过了。
但是过了 5 分钟,一壁口试官说本日就到这边,让我回去了,很是惊异。灰溜溜的走了,由于是内推,自己坚持要了没过的答案,是不是一壁末了不手写代码的缘故原由,打听了一些,大意如此,汗......
其他公司
上面便是一些口试的紧张公司,除此之外,还面了比如上海本土的一家生鲜平台公司,口试通过了,HR 问我有没有 Offer,我承认有,末了也谈了 Offer。
不过后来我谢绝了,一是由于首先这家公司不是 Java 技能栈(PHP,口试的时候说要重构平台,Java 在分布式架构中的生态上风),二是 HR 给我考虑的韶光太短了。
还口试了上海的一家出行公司,这家公司须要我降薪,给期权,末了谢绝了,由于职位没给到期望,薪水方面觉得也没受到尊重。
我有之前的不少同事在这家公司,之前印象还不错,但是 HR 真的给我太差的印象了,口试第二天说打电话跟我聊薪水,拖到下周二的晚上给我打电话。
然后我谢绝大幅度降薪(4K),说帮我谈降薪 2K,第二天给回答,然后第二天又没给回答,也推到周五,反正后来 HR 加我微信,跟 HR 吵了一架。
其余一个关于这家公司的槽点是,我面的是技能专家岗,终极技能面第四面,不知道什么职位的大佬过来问我 Synchronize 和 Lock 的差异,Volatile 关键字的浸染。
问完了 2 个问题然后就走了,前后不到 5 分钟,觉得口试太不专业了,这个也是我谢毫不去这家公司的缘故原由。