关于java:被-P8-大佬面试的-2-小时面试全过程记录

38次阅读

共计 8118 个字符,预计需要花费 21 分钟才能阅读完成。

起源:https://www.cnblogs.com/Tianc…

一、背景

题目很嚣张,但事实的确就是如此。这次面试流程足足横跨三个部门,其中既有偏重业务的部门,也有偏重技术的部门。在省略三次面试的前提下,理论面试轮次有七次。

整个过程的心理压力还是比拟大的,毕竟每多一次面试轮次,就多一份落选的可能。尤其转战三个部门还都是因为公司方面的起因。。。

面试范围广。因为波及多个部门、多个面试官,所以面试内容波及方方面面。技术、治理、业务、集体布局等等均有所波及。其中技术也波及根底、中间件、架构,以及利用等。

这里非常感谢我的原二级主管,在我面试过程中提供的帮忙。他屡次帮我梳理业务、梳理思考逻辑等。

原打算是一篇文章写完,内容上只是对面试问题的记录,以及大量的思考。但在写作过程中,还是忍不住写具体了,并给出了许多对面试的总结。所以最终决定以多篇文章,进行论述。

二、A 部门

应聘形式:原二级主管,内推。
应聘岗位:技术专家 -Java- 批发 Saas

本来不想放进去岗位的。然而看到有人比拟质疑前一篇文章的真实性,这个岗位最终也没去,所以就放进去了。岗位放出工夫,与我之前二方的到职工夫,是统一的。

1.P7 面

按情理来说,应该会有一轮 P7 面试,进行技术根底的沟通。然而这边公司间接从流程上给我跳过了。猜想是因为之前在团队的技术体现失去了二级主管的认可,所以就给我省略了这一轮次面试。

然而在后续其余部门的面试中,还是没逃过 Java 根底面试。囧

2.P8 面

a. 简介

面试时长:两个小时左右
面试模式:线下(因为原二级主管示意,我线下表现力强很多,后果也证实的确如此)
面试地点:阿里西溪园区 B 区
面试外围:55% 业务(新批发)、35% 技术、10% 人生

b. 面试内容

1. 介绍一下门店数字化作业我的项目(简历我的项目)

面试筹备中,肯定要有一个外围我的项目,能够用于展示本身价值的理论例子,而且肯定要足够硬。大厂 P6 及以上,个别都是须要的。

简略来说,就是说分明我的项目背景、我的项目价值、而后再到本身奉献,以及最初的成果 & 复盘。能够参考 STAR 法令。

  • 我的项目背景,要说分明这个我的项目从何而来。比方作业这个概念是批发行业始终存在的。而之所以数字化,是因为盒马撑持线上业务,所以数字化是必要的。而数字化作业系统,能够实现信息流转、提高效率等等。这其中比拟善于的点,就多说两句。甚至能够疏导面试官去询问。
  • 我的项目价值,要从商业价值,到业务价值,最初到实现的价值指标。比方价值流中,如何拉新、减少用户粘性。再到如何进步业务流转效率,最初到开发成本节俭等。凡是我的项目,必然是有价值的,否则过不了商业论证的。
  • 本身奉献,肯定要体现本人在我的项目中的价值。即便我的项目再大,本人没有参加其中也是白搭。比方负责整个我的项目的项目管理、整个零碎的技术方案设计、外围模块的编写等。这个过程,能够先强调工作的难点,让面试官切实认同难点,再提出解决方案。这样比拟容易取得面试官对本身价值的认可。比方,你和面试官说,这个零碎要求 10W 的 TPS。面试官立马就有趣味了。如果,你能提供一个切实可行的解决方案。那么面试官对你价值,就非常认同了。
  • 成果 & 复盘,成果要体现我的项目完成度,而复盘则体现了自我反思晋升的能力。很多人对大厂说的后劲,不太明确。而自我反思晋升的能力,就是后劲的一种体现。比方我实现了一个 10WTPS 的零碎,依据最初的落地成果。你认为哪里还有晋升的空间,比方优化某处的技术选型,能够降低成本等。又比方,如何设计架构,能够无效撑持业务后续的疾速倒退。

PS:面试中的我的项目不是最重要的,最重要的是通过我的项目,展示本身的价值。所以我的项目不是越大越好,而是越能体现本身价值越好。不要混同目标和指标。
面试过程中,面试官会通过一些问题,确认我的项目是否是实在的。

2. 零碎的整体架构

面试我的项目,肯定要会画它的架构图。现场想,容易犯错,即使你很相熟它。

这个局部就是上述本身奉献的进一步深挖了。简略来说,就是面试官想理解你设计能力。大厂社招,根本都是 p6 起步。套用大佬的话,编码是根本要求。囧
那么从技术上拉开差距的第一块儿,就是设计能力。

这里说一些集体的浅显意识,后续有机会,会开展的。
编码 -> 外围编码 -> 模块设计 -> 利用设计 -> 零碎设计(多利用简单零碎)
模块设计 -> 利用设计 -> 零碎设计,其实都是方案设计,只是解决的复杂度是不同的。软件工程的架构设计,实质上是为了解决,软件工程日益增高的复杂度。从这个角度,架构设计能够分为时空两个维度。空间上则相似于架构组成派,比方架构图。而工夫上则相似于架构演变的布局。架构的时空维度是果,而架构决策派则是因。

这块儿还是比拟容易拉开程度差距的。最间接就是我的项目的复杂程度嘛。不过这个是咱们本身难以决定的。所以我从集体解决问题的角度来谈谈。

  1. 最根本要说分明多个关键点的决策理由,如这块儿的设计重难点是什么、为什么采纳策略模式、怎么实现策略模式等。
  2. 进一步要对整个计划的设计思路,有全局思考的整体观念。比方秒杀零碎的难点就是读写峰值高,还要保障用户体验。那么解决的要点是缓存、一致性等等。辨认问题外围 -> 解决思路 -> 具体计划。
  3. 再进一步就是本身的计划要有方法论撑持。要从方法论中找到理论问题解决,再从理论问题回归到方法论中。比方大到利用 DDD 解决业务畛域划分、辨认外围畛域模型等,小到二八准则落地到缓存计划中。
  4. 再往后,要么向上,思考到业务,甚至商业模式等。比方撑持业务的疾速扩张,以及商业模式的疾速转变等。要么向下,精细化每块的设计方案,比方精准估算利用水位等。

筹备面试的小伙伴,能够就下面的四条清单,提前准备啦。

3. 次要的业务场景

面试我的项目中,须要分明我的项目最终产品侧表白,进而理解业务场景

这里面试官一方面想要获取对你我的项目的理性认知,进而发现趣味点(这个小伙子这个点,和咱们团队 xxx 相近,能够深入探讨一下)。另一方面,也是看看你对业务的意识。毕竟产研的开发,都须要对业务有足够的意识,并且有足够的敏感度。
这个局部的答复,次要分为三块儿:

  1. 如何精炼地形容业务场景。倡议能够参照 5W1H 分析法。这样有利于在筹备阶段就理清业务场景。理论面试往往因为临场发挥等问题,体现还会缩水一些。比方门店效期治理平台是面向经营同学,用于治理商品效期限 balabala。
  2. 明确“次要”的由来。可能说分明真正次要的业务场景。并领导为什么它是次要业务场景。比方是归属业务价值流的生产链路。比方是间接关联资金的业务等。
  3. 串联各个业务场景。可能将业务场景串联起来,使之不再是一个个孤立的点。这须要小伙伴对关联业务有足够高的意识,有的还须要小伙伴理解公司相干战斗的始末。

这部分,作为面试我的项目的业务局部,须要提前准备。如果有大佬帮忙梳理,就超赞了。比方之前的二级主管破费了不少工夫帮我整顿业务,真的是非常感谢。

4. 技术重构

在面试过程中,适当展示本人的主观能动性,是有必要的。

在大厂中,大部分主管还是比拟喜爱有自我驱动力的同学的,更不会回绝那些积极主动,热衷思考并实际的同学。然而,如何展现出这一点呢?尤其一些小伙伴平时就有这样的习惯,然而却不晓得如何展示。
我之前的工作中,每一个我的项目,我都会有文档。文档中蕴含项目管理、技术计划、总结、关联内容等局部。并且,作为 PM,我也有足够的推动力。
当然,这都比不上,自主的技术重构来得间接。毕竟,实现技术重构,须要包含思考、总结、自我驱动、业务等多方面内容。而且,技术重构也很容易展示本身技术深度,思考深度。

因为在之前的工作中,我有被动推动过作业系统重构,并布局了决策零碎的重构。所以,我就向面试官论述了痛点、日常思考、解决方案、团队沟通、最终落地,以及最终的反思。

无关技术重构局部,我前面应该会有专门的文档进行阐明。
这里只说一点,肯定要有明确的重构起因(进步开发效率,升高开发成本等),切不可为了重构而重构。

5. 技术上的难点,以及解决方案

即便是偏差业务的开发岗位,也须要一些技术上的硬菜。

如果你的面试我的项目体现不出技术高段位水准,或者面试官没有从你的表述中听进去我的项目的高技术书准的体现。那么面试官大概率会有两类问题:

  • 自主零碎设计:简略点的,将面试我的项目中的某个需要改一改,比方并发量从 100,到 100W。难一点的,间接让你从零思考某个场景。比方让你设计一个秒杀零碎,或者设计一个火车订票零碎。
  • 自问自答:面试官让被面试者谈谈我的项目中遇到的难题,以及解决方案。

前者,须要大家理解架构设计,并对架构设计中的最佳实际(如秒杀零碎、会员零碎、搜寻零碎等)比拟相熟。
后者,则须要大家的面试我的项目中的确有存在技术难点,并有过思考与解决。就算是虚构,也须要有可能进行技术嫁接的中央。囧

纯技术上的技术难点与解决,能够参照我之前的零碎品质治理。起码常见的性能、扩展性问题都有分类与根本解决思路。囧

我在这个局部,次要探讨了异步。先是简略探讨异步的概念,而后论述了 Java 的 FutureTask 框架 & 实现原理,最初就是利用了。这所有都丝滑度过,后果 P8 大佬感觉没有压迫出我的极限,就能够玩花活了。简略来说,就是定量分析。在给出上游各个接口的提早、并发量、以及各个接口间的依赖关系,要求我尝试计算以后接口的最大并发量、最小提早等具体数值。后续还增加了 CPU 外围数、网络提早、外部异样等各种条件,还各种批改前提条件。最初因为两个白板都写满了,条件都有些混同了。差不多二三十分钟的狂轰滥炸,我也开始有些晕晕乎乎了。只好示意有点晕乎,记不住前提条件了,P8 大佬才收手。末了,我问 P8 大佬,最初问题的最优解是什么?P8 大佬示意他也不晓得,他就想看看我的思路。看着他乐呵乐呵的,我也不好说什么。。。囧

6. 项目管理

大厂的技术也须要懂项目管理。而且项目管理也是接触治理的最佳入口。

大厂中,各种需要都是依照我的项目的形式进行推动的,而技术侧是须要有人负责技术 PM 的。而且负责技术 PM 是熟悉业务十分好的形式(个人成长小窍门)。所以技术开发须要对项目管理有肯定的意识,尤其是大厂开发。

如果能够,我举荐大家学习一下 PMP,至多能够买一本 pmbok 看一看。

而在落地过程中,最重要的反而不是什么项目管理的十大常识体系,而是裁剪这个只呈现在 pmbok 开篇的概念。如果每个我的项目都依照残缺项目管理流程走,那么破费在项目管理上的资源,将远超过破费在我的项目成绩上的资源。所以这就须要 PM 依据理论状况,对项目管理流程 & 工具进行适当的裁剪。说白了,谋求项目管理落地的 ROI。

比方,我的项目管理文档,个别分为:

  • 我的项目背景:简略介绍业务背景,以及我的项目外围干系人(业务、PD、PM)等。
  • 我的项目基线:次要就是范畴、资源(多指人力资源)、进度三条基线。其中大厂的进度,并不需要甘特图,里程碑就能够了。
  • 项目风险:次要针对可能存在的危险,以及对应解决方案。比方某个我的项目团队成员是新人,可能存在工时判断谬误。那就须要判断他负责的我的项目内容是否在我的项目要害门路上,我的项目流动工夫是多少,是否须要额定的帮忙。比方额定资源投入。并且能够通过每日确定进度,确保其集体偏差在承受范畴内,不会扩充影响面。
  • 我的项目验收:这部分根据具体情况,能够收录测试、产品、业务的验收状况。并补充作为 PM,对我的项目上线的后续追踪。
  • 我的项目总结:对该我的项目过程中,遇到对问题、思考、总结都收录在这儿。
  • 附录:其中参考,则是整顿我的项目相干的所有材料,如 PRD、技术设计方案等。

面试过程中,面试官往往会提出一些理论可能遇到的问题。比方我的项目资源有余、我的项目进度很赶、PD 频繁批改需要等。而这就须要各位就本人对项目管理的意识,给出本人的答案。这其中没有标准答案。答复的过程,就是展示你对项目管理的意识。
比方我的项目资源有余(我的面试问题)。你能够有这些抉择:

  • 通过对 PD、业务、TL 施压,或者利用自身的 PY 能力影响力,尝试获取更多资源。这个局部能够简略开展。比方集体影响力怎么来的(平时就有帮忙别的团队)。
  • 通过与 PD、业务沟通,获取更多的开发时长。这个就须要 PM 有较好的沟通能力了。沟通不好,打起来都可能。
  • 通过关联团队协调,替换我的项目资源,获取在该我的项目更有教训的开发。这里波及到我的项目组合治理。有点超纲了。但的确是解决思路。
  • 通过与 PD、业务沟通,缩减我的项目范畴。这个对 PM 要求比拟高。不过就算不胜利,也能够为下一条铺路(起因看《劣势会谈》)。
  • 通过与 PD、业务沟通,对我的项目范畴内的需要进行优先级拆分。进而将整个我的项目拆分为多个阶段进行。这个事儿,我在效期我的项目上就这么做过。

如果大家真的对项目管理不太熟悉,就间接面试官婉言,也算是一种解决方案。毕竟不是每个人都有这方面的积攒。

7. 团队治理

大厂的团队治理占管理者考核的一半。

一般来说,大厂的 P7,以及及 P7+ 的面试,都会问到团队治理。如果你只是面试一个 P6,却被问到这个问题,那么不排除面试官把你看作预备役 P7。/doge

我目前没有承受团队治理的专项学习 & 培训。所以存在有余,心愿大家多多包涵。也欢送大家对我的想法提出意见。

我认为,治理是整合资源(人、工夫、钱等),进步整体效率的方法论 / 学科。而团队治理,则是利用团队,通过一系列事务,达成特定组织指标。这其中会波及团队人员治理、指标拆解、团队战斗力晋升等一系列模块。

这里简略就人员、事务、指标三者进行简略论述。

  • 指标:无论是政府、企业、团队,还是集体,都会有指标。这里再次重申,有别于于目标,指标是实现目标的伎俩。在组织构造中,指标会层层拆解下来,最终落地到执行层面。身为 TL,肯定须要明确本人的指标。如果指标整错了,即便前面做得再好,对于公司而言,这个 TL 也是失败的。然而,指标是为了目标而服务。如果对下层的指标拆解存在疑难,则须要踊跃进行沟通。指标确定前踊跃沟通,指标确定后踊跃执行。
  • 事务:排除团队战斗力,为什么团队间的产出仍旧存在较大差距,就是因为指标拆解存在问题。类比而言,就是简单零碎在进行功能域拆解时,能够有多种拆解形式。能够依照组织构造,能够依照价值流、甚至能够依照字母程序(开个玩笑)。然而正当的拆解形式天然是谋求高内聚、低耦合,这样能够使得不同功能域外部更加自治、缩小与其余域不必要沟通,进而升高协同老本等。另外,指标拆解还须要思考到团队成员成长。比方我在安顿事件的时候,并不是齐全依照实现事件去进行指标拆解。而是花更多的心理,思考到团队每个成员的以后能力、将来成长等。这是为了团队久远战斗力晋升。
  • 团队:有别于项目管理,项目管理的外围是事、而团队治理的外围是人。所谓“兵熊熊一个,将熊熊一窝”,团队的战斗力,很大水平上受 TL 的格调影响。团队成员的成长、定位、虔诚都是须要 TL 去关注的。我之前带过几次团队。核心理念就是真诚待人,懂得换位思考。这间接使得团队文化就是大家比拟真挚,懂得了解彼此,进而更好地进行团队合作。优良的团队合作,意味着团队的高效产出。

小结一下:优良的团队能够进步外部沟通效率,优良的指标拆解能够升高外部沟通的总量,两者联合就是团队实现目标的高效。而正确的指标则能够进步团队价值转换率,配合前者则能够取得团队的高效价值产出(有别于高效产出)。

身为 TL,不要用战术上的怠惰,去拆穿策略上的偷懒。 我的工作经验比拟。。。嗯,丰富多彩。身为 TL,常常因为思维与口头的差距,造成两种状况:眼高手低与无用致力。前者多体现为终日谈各种高端概念、名词,然而不足落地,多呈现在公司中上层治理。这类 TL,我“有幸”接触过,只能说挺心累的。真的下面拍个脑袋,上面跑断腿,末了发现无奈落地。后续有机会谈谈这个经验,并给出解决办法。后者多体现为终日吭哧吭哧在忙,年底感觉忙了不少货色。但一拧,发现整年都是散弹枪,没有聚焦点,或者聚焦点不够强。这种状况多呈现在公司中下层治理。这类 TL,我也“有幸”遇到过。年底看看本人这一年做的,如果无奈凝聚为无限的几大块儿,那阐明就是这样的状况。

8. 闲聊人生

闲聊是沟通者三观的碰撞,也是对面试者集体素质(如后劲等)的重要考量。

说实话,面试聊人生始终是我最放松的环节。一方面是之前的经验中,常常和公司 Boss、团队一二级主管沟通,另一方面是本人素日里对本人是有不少反思 & 总结 & 布局的。

更重要的,我能够通过这个环节,去理解 & 借鉴那些大佬如何沟通、总结、布局,并失去那些大佬对我思考 & 布局的倡议。这都是难得的学习机会,只能说很多人没有充分利用上。

这个环节,我根本都是临场发挥。惟一须要留神的是谈话要过脑子,明确什么话能够说,什么话不能够说,什么话要婉转说。
所以,各位能够对标我的体现,去筹备面试的这个环节。/doge。开个玩笑而已。
简略就面试而言,你须要体现出以下三点:

  • 态度踊跃 & 乐观:很多人简历上写着踊跃、乐观、开朗,却没有任何无力支撑点。你能够在闲聊中示意喜爱和敌人爬山,素日里有在健身、遇到某些人生问题放弃乐观态度等。
  • 微小能力 & 后劲:有些深层次能力,可能某些面试官没有开掘到,还有隐性的后劲等。这都须要你来被动展示(展示价值,才能够取得更好认可)。比方你能够示意本人在解决某个问题时体现了解决问题能力,本人的体系化意识(业余、认知等)、本人的日常思考(业务、技术等)等
  • 渴望公司 & 团队:面试官有千万个应聘者抉择,你也同样有千万个公司抉择。你须要体现出你对该公司 & 团队的向往。文化的偏向,意味着你在团队的稳定性、以及适应性等,并不是无用的。比方你能够被动征询指标公司 & 团队的愿景、业务等,并进行沟通与认同等。

而这其中,又能够开展很多。不过因为闲聊人生环节而被回绝的小伙伴比拟少,这里就不再赘述。

c. 面试后果

过了两天,就收到原二级主管的电话。告诉面试通过,面试官很是认可,并让我筹备后续的 P9 面。

d. 小结

尽管只是一轮面试,然而足足两个小时的狂轰滥炸,也算是干货满满。

3.P9 面

其实面试前,我曾经晓得了大略的面试方向和问题。是的,有一位大佬真心带你,就是这么爽。囧
不过,P9 面因为 HC 问题,始终卡着。我直到最初也没有真正接触与这位 P9 进行沟通,挺遗憾的。
这位 P9 大佬算是这些面试中最关怀业务的 P9 大佬,所以我还是谈谈他的面试方向和问题,供大家参考。

过后的面试会有两个方向,一个是新批发业务(因为过后指标团队有这个痛点),另一个是业务稳定性。这里就谈谈后者。
其实聊到稳定性,大家都或多或少晓得一些,比方最根本的高可用三剑客(限流、降级、熔断)。然而如果强调技术之外呢?或者说只是技术侧会不会太狭窄了?
这里简略谈一下,后续有机会,再专门整一个文档。
抛开技术,业务自身也有稳定性需要,信息技术在这里只是实现伎俩。咱们能够通过工夫线来剖析:

  • 事先:外围是预防。业务 & 产品上的预防伎俩,能够是在规定公布窗口增加影响面校验。技术上能够是高可用三剑客(波及依赖剖析,能够深刻开展,体现技术造诣)。
  • 事中:外围是监控。业务 & 产品上的监控伎俩,能够是现场数据大屏、业务指标监控等。技术上能够是各类根底监控等。技术设计上能够有幂等 & 重试,以及超时。甚至能够是冗余(数据库挂了,通过缓存提供持续查问能力)、N 版本程序设计等。
  • 预先:外围是兜底。业务 & 产品上的兜底伎俩,能够是人工兜底计划、业务斗争计划等。技术上能够是资源隔离,进而升高影响面。

至于故障产生后的预先复盘,那是必须的,这里不再提及。
PS:业务优先级 = 影响面 x 产生概率

三、总结

这次面试次要是 P8 面,问的粒度也比拟大,使得施展也比拟残缺。所以,我通过整顿,间接依照面试外围模块进行拆分,进行了总结。

而大家比较关心的技术问题细节与 HRG 面试,在前面的两个部门面试,体现得比拟多,到时候会管饱的。尤其到时候,就能够展示我面试横着走的 JVM 了。

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿(2022 最新版)

2. 劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4. 别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0