如何拿下阿里巴巴 P8 的前端 Offer

程序源代码

共 8210字,需浏览 17分钟

 ·

2020-08-18 08:38


正文如下

本文是第八届 - 前端跳槽的新攻略,也是前端早早聊第 52 场,来自 1688的高级专家 — 小卡 的分享。

1. 自我介绍

先简单自我介绍一下,我叫陈映平,花名叫做小卡,2011 年校招进入腾讯,是腾讯课堂 B 侧的前端技术负责人。2015  年响应总理的号召,跟朋友一起出来创业,跟前面一位讲师的经历有点像,2018 年回到腾讯,主要负责 NOW 直播相关的业务,包括 NOW 商业化、NOW 独立版等业务。今年的三月底,因为家庭的原因来到了杭州,加入了阿里巴巴 CBU 技术部 - 前端体验技术团队,职级是 P8 ,目前负责的主要是内容和营销方向,包括采源宝、淘卖,以及现在风口上的业务 - 1688 电商直播。分享一下我是如何拿到阿里 P8 的 Offer,以及面试过程中的一些思考。分享主要会分为以下几个部分:

  1. 整体的面试流程,以及面试过程中的一些内容;
  2. 面试过程中所做的一些准备;
  3. 针对面试过程的一些建议;
  4. 在前端进阶路上的一些修炼以及思考;

2. 面试流程

面试流程,以及面试过程中可能问到的一些问题。这里大概列了一下我当时去面试阿里巴巴的流程,一共分为五面:一面是我的直属主管;二面是前端团队的负责人;三面是部门的总经理;四面是跨部门交叉面试;五面是部门的 HR 负责人。整体的面试流程其实跟前面几位讲师讲到的差不多,里面有一点小小的区别:

  1. 面试官的层级必须要高于候选人的预估层级,因此从一面开始,所有的面试官都必须是 P8 或以上;
  2. 终面面试官的层级必须大于候选人两级以上,也就是说终面的面试官需要是 P10 以上,在阿里内部叫研究员;
  3. P7 及以上的候选人需要跨 BU 的交叉面试,来保证面试的公平和客观;

面试的内容,具体的面试题目属于敏感信息,这里不是很方便透露,就简单的列举一下每一轮大概考察了哪一些内容:

  1. 直系主管面,一般会考察你的项目经历、技术深度来确认你的基本能力是过关的;
  2. 前端负责人面,一般会看你过往的作品以及个人的一些影响力。比如有没有比较成功的项目,对外的一些技术分享,以及一些开源作品等;
  3. 部门总经理和 HRG 面,一般会看你的项目经验,你对所从事的业务以及该业务所在行业的一些思考,以及你的人才调性跟匹配度。简单的说,就是看你是否是部门所需要的人才;
  4. 跨 BU 交叉面,面试官是随机的,面的问题跟前面的面试官可能会有一些差异,但整体上是类似的;

可以看到,五轮面试下来,考察的内容其实是各有侧重的,当然也有不少重合的地方,这里简单概括为四个方面:

  1. 项目经验与成果;
  2. 方案设计与实施细节;
  3. 对业务以及行业的一些思考;
  4. 人才的调性以及匹配度;

2.1 项目经验与个人成果

项目经验与个人成果,主要看的就是你在过去的几年里做了什么项目,取得了什么成绩,有没有取得一些突破,不管是技术上的还是业务上的,在取得突破的同时,是否有对外进行沉淀输出。比如输出一套标准化的解决方案,是否在公司内部的组织或者业界具有一定的影响力。

2.2 方案设计与实施细节

方案设计与实施细节,作为一个 P8,对架构能力和技术视野是有一定的要求。同样是针对项目经验进行考察,因为架构本身是为场景服务的,不存在脱离场景的架构,所以你在项目当中是如何进行选型与决策,在我们的简历里面通常呈现的是一个具体的方案,但面试官更关心的是你在这个方案背后的思考以及决策的过程。比如方案主要关心哪些点,是优先保证上线,还是重点保证后续的可维护性,方案是否闭门造车,有没有跟集团或者业界的方案做对比等。

方案很难做到完美,最后总会存在这样那样的问题,这些问题都是面试官可能挑战到的。我们的方案里面存在的问题,其实很多时候是 在有限的资源和理想的设计之间取得的一些权衡。面试官他其实也有丰富的项目经验,一般都能够理解,你只要 能够自圆其说 就可以了,最重要的是让面试官看到你在具体细节背后的一些深入的思考。

2.3 行业以及业务的思考

行业以及业务的一些思考,到了 P8,除了在技术上带头冲锋之外,也需要在业务上有更多深入的思考,体现出业务上的决策力和影响力。比如你当前所处的行业现在是什么情况,是处于上升期?还是稳定期?还是已经进入了衰退期?团队业务的现状在行业中处于什么位置?是领头羊,还是一个挑战者?当前有哪些竞争对手?主要面临哪一些挑战?要如何破局?也就是说,你要有更多的业务和全局的视角。

2.4 人才调性与匹配度

人才调性与匹配度,简单的说,就是看你是不是岗位所需要的人才,你过往的经验能力跟当前的岗位是否匹配,是否符合阿里的人才观和价值观。其中有一个非常重要的一点,也是大家经常忽略的一个点,就是个人的预期跟团队的预期是否匹配。比如你只是想专心做技术架构,但是岗位想要的其实是一个偏管理的人才,就很有可能会产生预期上的冲突。这个时候你的落地就会比较困难,哪怕部门最终给你开出来一个比较高的职级,其实也是价值不大的。

3. 面试准备

在面试之前做了哪一些准备。主要包含三个部分,其实跟大家差不多。

  1. 了解岗位,主要就是了解这个岗位是做什么的,对应聘者有什么要求,比如年限、技术栈、项目经验、部门的大致情况;
  2. 准备简历,这个大家基本上都有经验了,主要就是介绍自己的个人专长和项目经验,同时针对个人专长和项目经验进行能力的举证。也就是说,证明你所你说的是真的;
  3. 准备面试过程中可能问到的一些问题,根据岗位职级的不同,面试的问题跟侧重点也不同。通常来说,会围绕技术能力、业务理解、综合能力三个方面进行展开;

3.1 了解岗位

了解岗位 的职责要求,很多时候我们看岗位的描述就可以了,一般用人单位会发布一个招聘的 JD。如果是部门的情况,可以通过社区或者朋友来进行了解。比如我去面试的时候,对应聘的职级有要求的话,需要重点了解什么呢?主要就是了解一下,对应职级对人才的要求,以及能力模型大概是什么样子的。这里贴一下阿里巴巴对于 P8 的能力要求,有两个主要的关键特征点,第一个是 领域突破,第二个是 业务增值。怎么理解这两个关键词?

3.1.1 领域突破

领域突破,你需要在自己所擅长的领域里面,通常是技术要有所突破。比如之前在做直播的时候,在技术上通过 WebAssembly + FFmpeg 的方式实现了在 Web 端播放 H.265 编码、降低带宽,并支持更多的视频编码。

3.1.2 业务增值

业务增值,你需要通过技术突破、系统化数据体系建设等,给业务带来增量价值。举个例子,在做 1688 直播的时候,项目组当时通过数据分析发现早上开播的商家比较多,但买家比较少,晚上开播的商家较少,但是买家比较多。开播的商家跟买家的数量明显是冲突的,这个时候就可以调整一些运营策略,引导商家在晚上人流多的时候进行开播,提高业务的 DAU 以及转化率。这就是领域突破和业务增值两点的简单阐释。

3.1.3 能力要求

在岗位特征之外,下面是三点具体的能力要求。比如业务理解与实现,技术的沉淀与传承,团队的建设与发展等。归结起来其实主要就是三点:

  1. 具备较强的技术影响力以及业务影响力;
  2. 对业务有深入的思考,参与业务决策;
  3. 参与团队或者集团的人才建设;

3.2 准备简历

怎么 准备简历

  1. 充分展示自己的能力,以及自己能力跟岗位的匹配度。告诉面试官,你是他们想要的那一个人;
  2. 注意能力举证的逻辑,最好是数字说话。比如介绍首屏性能优化,你必须要告诉面试官说你通过哪一些关键的手段提升了哪一些性能。在过往的面试中经常会遇到,有些候选人在简历里面可能写了上千字,说他做了什么事情,但是他最终通过哪一些关键的步骤,取得了什么样的成果,没有体现出来。这对看简历的面试官来说,也是一个比较头大的事情;
  3. 谨慎挑选你的简历素材。简而言之,不要给自己挖坑,写进简历里面的每一句话,每一个数字都要经得起面试官的挑战。被问倒的话是其次,千万不要弄虚作假。因为弄虚作假,不管是在哪个企业里面,都是红线,不能触碰;

3.3 准备面试问题

准备面试的问题,我自己也做了挺长时间的面试官,也经常面试别人。所以在面试之前,我通常会进行自我模拟面试,主要问自己以下几个问题:

  1. 如果我是面试官我会问什么问题?
  2. 如果我是面试官,我希望听到什么样的回答?
  3. 我的优势、不足在哪里,如何扬长避短?

模拟面试的话,需要对岗位的能力模型、岗位的要求、自我的能力特长以及产出有比较清晰的认识。如果没有什么底的话,建议可以找比较有经验的朋友帮自己把把关。也可以借助搜索引擎去网上看一下需要哪些知识和能力。

4. 面试建议

具体的 面试过程中的建议,长者说过的一段话,我自己挺喜欢的,跟大家分享一下。

一个人的命运当然要靠自我的奋斗,同时也要考虑到历史的进程。

为什么这么说呢?因为面试本身是一个充满了不确定性的事情。七分看实力,三分看运气。

4.1 面试的不确定性

抛开个人的能力,以及面试的临场表现, 面试的不确定性它主要体现在哪里呢?

  1. 面试官的个人偏好。比如你自己比较擅长 Vue,面试官它是 Angular 的铁粉,并且是排他性的铁粉,大概率你们两个人是聊不到一块去的。大概在去年底,社区也发生过这么个事情。这种情况虽然比较极端,但的确是存在;
  2. 岗位人才的稀缺性。比如在 2010 年,随着 iOS 以及安卓的流行兴起的终端开发浪潮,以及 2015 年兴起的人工智能浪潮。在这个时间点里,这两个岗位的人才,他是供不应求的,做这块开发的同学比较容易拿到自己想要的 Offer 以及职级;
  3. 面试的时机。比如说现在你去面的这个团队,他只招 P6 ,但是你自己心目中的理想职级是 P7 ,那就是时机不对,跟你个人能力其实并没有太大的关系;

面试三分靠运气,听上去有点像撞大运的感觉。但事实上,通过自身硬实力的增加是可以让面试的结果变得更加确定的,这里有几点小建议。

4.2 功夫在日常

功夫在日常,提前规划、做好积累。如果你事先已经有了换工作的打算,你可以提前了解一下你要面试的岗位,你所要的职级有哪一些硬性要求,提前做好准备。因为有一些东西是没办法临时抱佛脚的,比如团队管理经验。在过去的几年时间里,我一直在做团队管理,包括一些项目管理的事情。因此在这一方面,我简历里是有东西可以写的,也不怕被面试官问到。

4.3 个人品牌建设

个人品牌的建设以及影响力的提升。面试的时间非常有限,通常会在四十五分钟到一个小时之间。坦白的讲,作为一个面试官,他很难在这么短的时间里对你做出非常全面以及准确的判断。我做过面试官,我也知道这个。因此你需要花非常多的精力,来证明理你的能力能够达到岗位的要求。

个人品牌的建立,以及影响力的建立有什么好处呢?他会让你面试的过程变得顺利很多。比如过去的这些年,我基本上每一年都会在社区做一些技术分享,同时也会持续更新我的技术博客。通过这一些,面试官在面试之前就可以对你的个人能力有一个基本的判断。加上我本身从大公司里出来的 Buff,以及阿里朋友推荐的背景,在能力举证这一块可以省掉非常多的力气。

4.4 保持平常心

面试是一个双向选择的过程。前面 堂主 在分享的时候其实也提到了,这个过程,很看缘分跟运气,要 保持平常心。面试不通过,有可能是你的能力达不到,也有可能是没有发挥好,需要认真的总结跟反思,制定规划,进一步提高自己。但反过来,如果面试通过,当然是一件非常值得开心的事情,但你也要怀着感恩的心,感谢这一路过来帮过自己的朋友,包括自己的面试官。能够成为面试官,通常他的能力上都有过人之处。这种 1V1 将近一个小时的面试,是一个非常好的学习探讨的过程。你能够在这个过程中学到非常多的东西。因此要怀着感恩的心。

5. 能力修炼

很多同学都觉得,到了 P8之 后,基本上就只是做做管理的事情,不做编码了。但事实上不是这样的。到了 P8 之后,日常工作是做哪些事情呢?其实主要就三个方面,第一个就是技术管理,第二个项目管理,第三个是团队管理。

5.1 技术管理

技术管理 , P8 属于集团的技术中坚力量,负责的技术域跟业务域会越来越大,很多时候其实并没有太多精力参与具体的编码。日常主要做的工作是参与方案的评审,技术架构的设计以及特定领域技术难点的攻坚。不是说不写代码,而是说要站在更高的视角,深入业务输出合理的方案和设计。简单的说,就是从原先的自己编码,变成带着别人去合理地编码。

5.2 项目管理

项目管理,做好项目管理主要要做好三个事情:

  1. 目标管控。当前的项目处于什么状况,想要在什么时候达成什么目标;
  2. 资源协调。资源总是稀缺的,不管是人力、时间还是经费。按照既定的目标将资源协调到位,也有可能会根据资源的限制,调整实际的项目目标;
  3. 过程的管控。确保项目按照既定规划的路线实施,并达到目标,包括进度管理、风险管控以及质量管控等;

5.3 团队管理

团队管理,主要做四个事情:

  1. 带人做事。这一个是最基本的要求,就是带着小伙伴高效、高质量地完成部门、团队安排的工作;
  2. 看方向。比如最新的技术趋势,以及未来的业务走向等;
  3. 定规划。比如团队未来半年、一年的技术规划,团队小伙伴的成长规划等;
  4. 团队建设。比如未来团队的人才梯度划分、培养计划、沟通等工作;

之所以团队管理是一个非常重要的事情,哪怕你现在没有管理者的头衔,是因为它是在为业务的未来打基础。

5.4 技术修炼

技术修炼 就简单的三句话:扎得更深、看得更远、始终编码

  1. 扎得更深。你在技术领域要有就是更深、更透彻的理解,而不是片面的随着社区去追星追潮流;
  2. 看的更远。你在技术上、业务上必须有更远的视角。你要能够看到技术、业务的远景,做好规划;
  3. 始终编码。现在其实有非常多的技术专家,已经脱离了一线的编码,他已经没办法理解现在越来越复杂的前端研发环境,以及我们的业务变化。阿里内部现在也在推一个亲码活动,所有的 P8,甚至 P9,每个月都需要提交代码,也就是要保持对代码这块的敏感度;

6. 推荐书籍

推荐一本书,这本书叫做《影响力》。从职场的角度来看,影响力能够让自己的工作开展、目标达成更加顺利。其实包括求职也是一样的,在前面的分享的各个章节里面,已经反复反复提到了影响力这个词。影响力的重要性,基本上不用怎么强调了,如何提高自己的影响力呢?包括技术影响力、团队影响力、组织影响力,甚至是业界影响力。在这一本书中你都可以找到你想要的答案。比如互惠、承诺与一致、权威、短缺、喜好等,整本书的内容还是是比较通俗易懂的,尤其建议刚刚工作一两年的同学看一下,会有非常大的帮助。

7. 团队简介

关于 CBU 技术部 - 前端体验团队 的一点简单介绍,我是今年三月份加入的体验技术团队。整个团队现在有六七十人,在集团内部也有比较大的技术影响力。我们致力于链接商业与设计,给客户提供专业的人机交互解决方案。作为B 端的业务,我们通常比较低调,但是我们的技术团队在集团内其实也拥有多个领先的技术产品。比如奇美拉搭建系统、JUST 研发平台、LightHouse 数据分析平台、柯南前端录制反馈平台等。

我们的团队技术栈以 React、Node.js 为主,此外,在 Serverless、WebIDE、跨端、工程化、智能化、搭建等领域,都有比较多的工程实践与沉淀。团队今年的重点技术方向,主要有下面几个:

8. 加入我们

晒一下我们团队的照片,这也是我加入 CBU 体验技术团队的一个非常重要的原因。最右边的就是我们腿长一米八的美女主持人, 霸天小姐姐,她也是我们团队的,现在就坐在我的隔壁,我们每天都有面对面交流的机会。

大家不用太羡慕,只要加入我们团队,你也可以获得同样的机会。这里的话是几个二维码,最右边的二维码是我们的团队跟岗位的介绍,大家感兴趣的话可以了解一下。最左边是刚刚建的阿里巴巴CBU的技术交流群,大家可以用钉钉扫码加入。我们已经把我们团队的技术专家、高级技术专家都拉了进去,大家有什么技术问题,有什么困惑都可以扫码进去交流。最后,中间是我自己的个人二维码,现在我们团队招聘大量的 P6 跟 P7,简称海量 HC,欢迎加我微信,然后一起交流。加之前最好把自己的博客跟 Github 的地址附录一下 ?

9. Q&A

Q:请问从公司层面来看,腾讯与阿里哪一个更适合上升期的前端工程师发展?

A: 这一点的话其实比较难回答,不能片面的说究竟是腾讯适合,还是阿里适合。刚好前阵子我和阿里、腾讯、拼多多的几位专家还有大佬一起面基,我们也探讨过同样的问题,该去什么样的公司或团队,是技术好的,还是说钱多的。其实答案都不对,重要的是加入成长性比较强的团队。比如我们部门做的是 B 侧的电商,然后风口上的 1688 电商直播,这个就是属于公司、部门今年重点布局与规划的业务,属于成长性,爆发性比较强的业务。我们在看应该加入哪个公司、团队的时候,主要看的是这个部门、业务它的成长性,而不是说是阿里巴巴或者说腾讯哪个更适合。不管是腾讯还是阿里巴巴,在众多的领域都有它的布局和规划,也有很多具备成长性的一些业务,大家如果经常在社区逛,其实都会看到。也就是说,主要看的是业务的成长性以及行业的成长性,公司倒是其次,基本上在大公司你都可以找到一些成长性强的业务和团队。比如我们团队,欢迎扫码加入 CBU 技术交流群,然后一起来探讨这个问题。

Q:大厂对候选人的要求,或者候选人面试准备,阅读源码是否是重要的一项?

A: 对于有源码阅读经验的同学,其实我们是非常欢迎的,比如读过 React 源码、Vue的源码、Webpack源码的同学,我们基本可以判断,这个小伙伴他对这一块的技术有比较浓厚的兴趣,以及有比较深入的钻研。在不同的阶段,对人才的要求不是特别一样。举个例子,比如在 2014 年,我当时去面阿里的时候,当时我主要讲的是我在工程化以及模块化的一些积累。当时我的面试官 石破 当场问了我这个问题,就是有没有看过某某的源码这一块。因为对于 P6 的同学来说,他更重要的是执行、对方案研究的深入程度,以及标准化方案的输出。如果你阅读过源码,说明你对这块有比较深入的研究。对于比如 P7、P8 以上的话,可能对于你的比如说团队管理能力,你的技术视野等会有更高的要求。不同的阶段它的要求不一样。但如果你读过源码这一块,我们都是非常欢迎的。

Q:你在前端中是否有遇到过瓶颈期,你是怎么突破的呢?

A: 我分享一下当时我在创业时候的一些经历和历程。我是在 2015 年跟着朋友一起出去创业,当时做的是期权,做市交易系统。整一个团队其实做的是金融类的业务,并且是以后台技术为主导的。我当时作为一个前端,其实就孤零零的带着两三个前端同学就比较孤独。技术上,在前端那块要求并不是特别的高,也没有太多人跟我一起交流。我在创业公司一共待了三年,如果按照当时的那个现状下去的话,可能我就废了,也不可能说今年来到阿里拿到 P8。我当时是怎么做的呢?第一个,就是始终要关注业界的动态,知道当时最流行的技术趋势是什么,我们的业务可能会需要什么。比如我之前提到的 Node.js 学习笔记,那一本书就是在创业的那个期间写出来的。当时创业其实是非常累、非常辛苦的,可能创过业的同学都知道,我当时写这本书的时候,基本上都是在晚上十一二点,下了班回家之后在那里翻源码,看博客,自己总结输出。第二个,就是当时团队的重心是在后台的金融交易系统,前端的东西比较薄。这个时候,其实就是按照像阿里对人才的要求一样,不要给自己设限,大胆突破自己的边界。比如当时我的本职工作是前端,但我还做了非常多的事情,比如项目管理、团队管理的事情。在技术上当时就是在 Node.js 的那一块做的相对比较深,我们金融系统里面的一块,我把它用 Node.js 接过来。团队需要我做什么,我基本就去学什么。比如当时做的最杂的时候,前端、PHP、Node.js,甚至连 C++、iOS 都会去接触。遇到瓶颈的时候,可能就是问自己,第一,我想要往哪一方面去发展。第二,当前业务团队部门、甚至集团需要你去做什么。思考这两个问题之后,基本上你就会得到你想要的答案。

扫码关注公众号,订阅更多精彩内容。


给个[在看],是对达达最大的支持!
浏览 69
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报