阅读 11319

阿里巴巴前端面试经验分享

前言

各位同学,大家好,我是老邬。今天我会以一个候选人的视角,分享阿里巴巴前端面试的经验。

自我介绍

我是2015年本科毕业,学校既不是211也不是985,我也没有一毕业就进入大厂工作的经历。我的职业生涯里一共有10多次面试经历,阿里我面试了5次,失败了4次,屡战屡败,屡败屡战。每当我听到别人传奇的经历,会羡慕别人开挂的人生,也会有小失落,感叹自己当初没有做太多的努力,甚至自我怀疑和自我否定。人生中主动裸辞,被动裁员的经历,曾经让我在无数的黑夜里,真的以为人生就这样了。


在第四次面试阿里失败后,我开启了为期2年的自我重塑计划,梳理体系化的知识结构、刻意练习知识结构化表达,学习参考了吸引力法则完善自己的简历人设。最后在2020.1入职阿里巴巴,成为AE国际体验技术团队的P6前端工程师。


在这一段经历中,我梳理了当时自己的几个问题,大家看看是否有跟我相似的处境呢?


image.png


  • 性格:天生的内向性格,以及原始家庭在你童年成长过程中带来的自卑、不自信,会让你在面试时言行举止都表现的心虚、紧张、害怕、焦虑。
  • 沟通:程序员缺乏表达自我的能力,不会引导面试官,把握面试节奏;说话缺乏结构性表达,不会在面试中阐明关键信息,从而错过面试最佳机会。
  • 技术:工作中大部分时间写业务,在技术上得不到提升;碎片化学习,知识零散,没有构建体系化的知识结构
  • 心态:简历没有吸引力,在投递后头沉大海,自我否定;在一次次的失败后,自我放弃,拒绝大厂面试。

自我重塑


自我重塑的前提是自我觉醒,意识到自己存在问题,再让自己走出舒适区,不断地打碎自己,然后在这个过程中把碎掉的东西重新收拾起来,变成身体的一部分。这个过程会让你很痛苦,但如果你克服了,你就蜕变了。薛兆丰教授说过一句话,“生活不会在你都准备好了以后才开始”。面试也一样,面试考验的不是那几轮的面试表现,而是你在长期生活、工作中积累的硬技能和软技能,这些包括:你的专业能力,框架能力,思维能力,性格和心态,沟通能力,价值观等等。你只是刚好在这几轮的面试里表现出了你的这些积累,吸引到了对方,最后拿到了Offer。如果临时抱佛脚,光背概念和知识点,没有结合项目深入思考,那么面试的时候会表现的很空洞,给人的印象只是在堆砌一些关键词,这样面试挂掉的可能性就很高。


自我重塑第一步:认识自己

image.png


传说有人问泰勒斯:“何事最难为?” 泰勒斯回答说:“认识你自己。” 随着年龄的增长,阅历的丰富,你会渐渐发现,无论是生活还是工作,很多的事情本质是与自己相处,了解自己的性格,发现自己的优缺点,知道自己从哪来,到哪去,最后想成为一个什么样的人。


1.1 自我剖析


image.png


举个例子,我了解自己的性格是内向性格,而且原生家庭在我童年成长的过程中,让我有些自卑,甚至我一度怀疑内向是一种性格缺陷。直到我看了一本书,书名叫《内向性格的竞争力》,开始渐渐明白我自卑的点,来源于我根本不了解自己是什么。我也不了解外向性格、内向性格的优势。外向性格的优势在于它性格非常开朗,很容易给人一种亲和力,自来熟。内向的性格优势在于它的敏感度,洞察他人情绪,感知他人情绪的能力。内向性格的人都有一个共同的特点,叫做你需要提前充电。比如我们去参加一个面试,内向性格的人像一块电池,需要提前充电,然后呢,这块电池只能维持大概1个小时,但是一旦过了1个小时,电池电量用完,你就受不了,你在后半程的面试会感受不太舒服,因为你的性格里就是不太喜欢这样的环境。


如果你意识到这一点,在面试的时候你可以更好的去利用。

  • 面试前自我心理暗示:告诉自己,我很享受这个状态,而且我做了充足的准备,我可以做的更好
  • 面试时感知他人情绪:通过对方的面部表情,肢体动作,判断他对你的说的内容是不是感兴趣。如果对方不感兴趣,你就要考虑换个话题了


胆怯的心态,这个是最难克服的。我曾经是胆怯的人,我会把自己包裹起来,裹上一层坚硬的外壳。

  • 在社交上的表现是:社交恐惧,害怕跟人交流
  • 在工作中的表现是:职场小透明,不敢发声给自己争取机会
  • 在面试中的表现是:谨言慎行,小心翼翼


这些会直接影响你在他人心中的形象,像阿里P6前端工程师,是一个独挡一面的角色。如果自己性格胆怯,表现出畏缩畏尾的样子,那么即使进阿里了,你在推进项目的时候,会遇到很大的阻碍。这个阻碍一方面来自于你内心的胆怯,另一方面来自于外部压力。所以这个是必须要克服的。


我克服胆怯的方法很粗暴。利用周末的时间刷了杭州城20多个恐怖密室(漆黑的密室环境,而且有NPC出来吓人),慢慢把胆子练起来。后来我胆子大到什么程度呢,我一个人跑到临安挑战极限,坐上飞机从10000英尺的高度自由降落,高空跳伞。


所以性格它不是一成不变的,你发现了,克服了,最后你的心态会越来越好,这个就是我想分享的。


1.2 学习“学习”的方法


这个是最核心的一个能力,同时也是可以让你快速进入一门新领域的方法。以我现在的认知水平,知识可以分为三层:知识点、理论、体系。我们需要可以通过学习知识点 -> 整理理论 -> 形成体系。


image.png


怎么构建知识体系?


输入:我们平时信息输入的渠道,可以是通过看源码、看书、他人分享的得到关键词,通过关键词搜索可以让我们更广泛地获取信息。在搜索关键词的过程中,我们往往会得到更多的关键词,它可以是A、是B、是C。


构建:我们需要这些ABC进行分类,构建我们的思维导图。如果你没有自己的思维导图,网上有很多前端的知识图谱,可以照着学习和搜索,理解每一个知识节点承载的内容,慢慢去构建属于你自己的思维导图。前期构建脑图的过程挺痛苦的,意味你要把每一个知识点去摸清楚,但是一旦你建立好了,往后只需要在现有的脑图里添加你新的知识节点,学习会越来越轻松。


解释:思维导图构建好了以后,就是输出,如何向别人解释一个知识。

  • 记忆知识点:尽可能的记住脑图里的关键词以及和关键词有联系的知识
  • 复述知识点:假想你要跟别人讲一遍,遇到不会的知识点后,回到思维导图里,再去看一遍,再回来继续将把它讲的特别的顺畅。
  • 用自己话说出来:把那些枯燥,晦涩的专业术语,用最通俗的语言去表达,用一些其他的案例来说明,方法可以是打比方,举例子。


以上学习的方法,是我对费曼技巧的个人实践,费曼技巧也被称作是终极的学习方法。简单说它是「以教为学」,在学习的知识的时候,以别人听得懂为目标,用最简单的话把自己的意思表达出来。


关于学习的方法,我还要分享的是,在构建脑图知识点的时候,我们不妨问自己5个问题?


image.png


理清楚了这5个问题,相信你会对这块知识了解的很全面了。往往在面试的时候,面试官不会这么一板一眼的提问,有时候会问一些开放式的题目,或者一些刁钻的技术问题,不要慌,他有可能是考察是否能用学到的知识来解释一下新的例子。所以我们学习还要做最后一步,把所学的知识都忘掉,剩下的思维能力才是你的。


1.3 梳理 “关键” 的信息


掌握学习的方法还不够,我们还要常常做一些阶段性回顾,以一个项目为周期或者以半年为周期(周期时间可以自己把握),把人生当中的关键节点梳理出来,这不只是为了面试时快速反应,也是为了更加帮助你认识自己。

image.png

  1. 梳理2-3个亮点项目,并能通过STAR法则描述,让面试官了解做这个项目,我们不仅仅是完成KPI/需求,你在项目里是有思考,有主动求变的行为的,这种意识叫做owner精神,阿里很看重这个。
  2. 梳理人生的失败经历。
  • 正面例子是:通过失败的经历,传递你面对失败时的态度,反求诸己,并加以改变,最后获得了成长。
  • 反面例子:遇到失败就放弃,逃避,抱怨,对方会觉得你内心的复原力,逆商不够。
  1. 梳理人生的高光时刻,传递你的价值观和需求层次。这件事情为什么会让你觉得是人生的高光时刻,你当前处在马斯洛需求层次的哪个层次
  2. 梳理自身性格优缺点,放大优点,缩小缺点
  3. 梳理职业规划方向,思考未来想成为一个什么样的人


自我重塑第二步:认识面试

image.png

我们投递简历失败,有一部分原因在于,我们对自己定位不够清晰。当前 P6 水平投递 P7 岗位,那么挂掉的概率就更高了。我们需要了解阿里岗位职级是怎么样的。阿里巴巴社招一般层级是从P6开始,往往工作经验3年是一个分界点。


2.1 岗位职级


  • P5 独立执行既定的任务,极强的学习能力,培养潜力巨大
  • P6 独挡一面,能负责多个业务模块,能团队协同做项目
  • P7 专家,一杆到底,系统性思考,创新技术可被复制


中间的区别是什么呢?


  • P5 基本上属于那种学习能力很强,培养潜力是很大的,他可以负责项目里模块的工作。也可以作为一个独立的项目成员,但是他还没有到那种,可以独挡一面去带一个项目。
  • P6 第一能够独当一面,做一个较复杂的或者几个业务的一个开发;第二能够带领一个项目,也就意味着,你不再是个项目成员。你可以做个项目经理 PM,去做一个跨团队或者团队内的一个项目,然后还能辅助团队。不只是自己独当一面,还能够具备带徒弟的能力,这就是P6。
  • 从P7开始,我们叫专家。专家核心能力是用一杆到底,系统性的思维来解决当前的问题。面对问题的时候,我们马上能看到,通过某一机制或者某一流程,就是来解决类似于这样的问题,就不再是点对点的去解决问题。P7的第二个能力是创新,到了P7,你一定要有创新,而且你的创新一定是可复制的。怎么样复制?第一,你分享,你能总结还能分享。第二个,你能带人。


了解岗位职级,可以帮助我们认清当前水平处在哪一个层次,知道通往一下层次需要掌握哪些技能。比如我是P6,那么我在写简历或者面试的时候,尽可能在展示当前层次水平之外,会额外展示掌握的P7的一些能力,让面试官看到你的潜力和亮点,你是具备快速通往下一层次的能力的。



2.2 面试流程


image.png


阿里的面试按流程来的,你开始面试就会进入流程,在流程里的简历,除了面试官其他人是看不到。每个流程通常有5轮面试,4轮技术面和1轮HR面,面试官会根据你的水平层级和个人情况,决定要不要安排笔试和交叉面。面试的前两轮是电话面试,后几轮是现场面试。在投递的简历的时候,尽量找人内推,内推的优势在于内推人可以给你做信用背书,查看你的面试进度。如果不是走内推渠道,是阿里员工主动采蜜打电话邀请你面试,说明你的简历或者过去的历史评价,是具有一定吸引力的,不然也不会打电话给你。接到电话后,可以跟面试官确认电话面试的时间,你可以在这段时间内,开始面试前的准备。


面试前需要做哪些准备呢?


image.png


2.2.1 形象建设


形象建设分为声音形象、外在形象、内在形象


声音形象:为什么我要讲声音形象呢?因为前几轮的面试都是电话面试,面试官看不到你,你的语速、语调、语气,都会影响电话那头对你的判断。


声音影响面试的问题有哪些呢?

  • 语速过快:面试官听不清你的回答,跟不上你的节奏
  • 语速过慢:面试官失去了耐心。
  • 语调太高,语气上扬:让人觉得轻浮
  • 语调太低,语气微弱:让人觉得胆怯


那我们要做的是尽可能的让我们的语速保持匀速的水平,一分钟200字左右,然后用胸腔偏下的位置发声,用气息推动喉咙,这样的发出的声音雄浑有力,不会显得沉闷,反而有些磁性。


外在形象:针对现场面试的,简单、干练、不邋遢就好。


内在形象:声音形象,外在形象都是浅层的吸引,最致命的吸引是人格吸引,是你的内在形象。我们在自我认识的环节,梳理过了“关键”信息,在面试的时候,就派上用场了,把那些能够呈现你内在形象的案例展示给面试官,通过例子证明自己,你就是这样的一个人,简单说就是:“我不要我觉得,我要你觉得”。内在形象有哪些呢?自信、踏实、皮实、乐观等等


2.2.2 简历准备


简历为避免排版混乱,使用PDF格式。书写原则:可以适度包装,但是不要造假。造假涉及到诚信问题,你在技术面混过去了,后面第三方背景调查的时候,会验证你说的情况,一旦打上不诚信的标签,你就永远进不了阿里了。在写简历的时候,多关注一下对方招聘岗位的JD,岗位职责和需要的技术栈是什么。了解这些后,尽可能在书写简历的时候,展示你和招聘岗位所需重合的技能。如果当前掌握的技能和目标岗位有一定差距,那需要花时间提升不足,补齐这块差距。不同公司的前端岗位的职责或技术方向不同,往往要准备多份简历去匹配不同公司岗位的情况。


我的简历的内容排版很简洁,写了基本信息,专业技能、项目经历,最后才是教育背景。对于社招来说,你在大学期间发生的事情已经不是那么重要了。重要的是你目前掌握的技能和项目经历,这两块是要重点描写的。专业技能按掌握、熟悉、了解程度依次罗列。亮点项目是之前你梳理过的,详细写,附带数据描述成果更具说服力。其他不重要的项目可以简单描述技术栈,一笔带过。这么做的目的就是一眼让面试官看到你的优势和核心竞争力。推荐一些好的简历模板,比如 WonderCV、五百丁。简历不用太花里胡哨,简单明了,能够清晰的表达你的内容即可。


2.2.3 面试模拟


面试前自我模拟面试可以增加你的自信心,自我介绍、面试的一些的话术都可以提前准备好,然后可以讲给别人听、讲给自己听。或者找一个水平在你之上的前辈对你进行一次模拟面试,收集面试反馈,针对模拟面试时卡顿、忘词的知识点,重新记忆和解释,然后不断的重复上面步骤,直到你能可以用自己的话说出知识点的核心内容。


2.2.4 沟通技巧


image.png

沟通的原则:客观描述事实,不做主观臆断。具体有哪些情况呢?三说和三不说。


  • 三说:你知道的知识自信说出来;问到模糊的知识,不太确定的知识,假设分情况讨论说;没有接触过陌生的知识,诚实说“我的知识还没触达这一块,但是……”,这个“但是”很关键,“但是我知道xxx”,“但是我可以跟你聊聊xxx”,“但是我知道和这块知识相关的xxx”,这样你就把握主动权了,把刚好你不擅长的话题往你擅长的话题带。
  • 三不说:不要说谎、不要抱怨的话,不是轻浮的话。


面试的时候,可以尝试引导面试官。每个面试官的喜好,出题的角度都不一样,这个我们是无法预测的,但是我们可以去引导对方问一些问题。比如他问到某一个知识点A的时候,我们在回答A的同时,引申出和A有联系的知识点B或C。回答的重心放在知识点A上,B或C是你在回答A的时候顺带那么一提,它就像一个鱼钩,来引导面试官来问我们擅长的、准备好的知识。


渲染情绪,在面试的时候多感知对方的情绪,在适当的时候,用一些你准备好的事迹,引发对方共情。之前我们梳理过一些“关键信息”,有一些失败经历或高光时刻是很容易让人产生共鸣的。


反问阶段如果你不知道问些什么,有保守一点的问法是,去问问对方团队的情况,团队在组织定位是怎么样的、技术栈是什么、有哪些人员梯度,当前遇到什么痛点问题等等。这些问题你传递出来的信息是,我对当前岗位所处的团队,所做的事情非常感兴趣。之前我在一家公司现场面试的时候,就主动提出带我在公司转转,了解公司的产品形态。这也是一个向对方表达兴趣的技巧。


2.2.5 面试考察

image.png


面试的时候考察什么?技术一面,重点考察基础和知识广度,上探你的技术天花板,下探计算机底层原理。一面常见的考察点有哪些呢?


  • 计算机基础:算法、数据结构(算法偏弱的同学,有事没事可以刷一刷leetcode,leetcode有一个面试的版块,里面有阿里巴巴的算法模拟题库,稍微花点钱就能练习了。)
  • 前端基础:JS/CSS、前端框架(主流框架 React、Vue)、Node( Node是阿里面试时的强加分项,阿里有开源的 Node 框架 egg.js, 有时间学习一下然后做一些项目对你有好处的)、浏览器原理、网络、安全、跨端能力(后端或客户端)
  • 编码能力:逻辑是否清晰、边界是否考虑到、思维是否活跃
  • 技术视野:在反问阶段前,面试官通常会问你一个问题,你最近在关注什么新技术吗?平时多关注行业的技术现状、了解新技术,多做一些实践


技术一面专业能力占了80%,软素质占了20%。如果过了技术一面,说明你的基础各方面是很不错的。接下来技术二面会重点考察你的工程能力、设计能力、规划能力。二面通常会从你的项目开始问,这个时候你梳理的亮点项目就派上用场了。二面常见的考察点有哪些呢?


  • 工程能力:效率、质量、性能、定义标准、产出规范
  • 设计能力:抽象能力、拆解能力、健壮性、扩展性
  • 规划能力:做事的思路是什么
  • 沟通和推动能力:是否有一套自己的项目推动方法和成功case
  • 产品意识:事情的目标是什么?存在哪些问题?如何解决?价值体现在哪里?规范?共建
  • 其他软实力:聪明程度、学习能力、责任心、价值观等。


这些都是考察范围,技术二面专业占了60%,软素质占了40%。到了技术三面的时候,会聊一聊技术格局、视野、人生规划、软技能考察,这部分多展示你的大局观,比如业务上的大图,技术上的大图,你长期或短期的人生规划等等。


2.2.6 描述项目STAR法则)


我分享一个描述的、项目的方法,叫做STAR法则,他有五个要素,情境(situation)、目标(target)、行动(action)、结果(result),我把他扩展了一下,技术面或者hr面的时候描述项目的时候,可以按这个套路来。


image.png


2.2.6 面试复盘


面试后记得主动添加面试官的微信,这是免费的性价比很高的人脉。加完微信能做哪些事?


  1. 夸一夸对方的专业性,然后给到你一些优化的建议
  2. 长期关注对方的朋友圈招聘信息。比如我们这一次面试失败了,对方部门招聘岗位的最低下限是P7,那么下一次面试的时候,刚好这个部门开始招P6了,我们的机会就来了。联系上次的面试官帮你内推,他能为你这一次的面试做信用背书。


面试后还需要复盘,复盘结果和情绪。拿一张白纸记录你在面试中答好的/不好的知识点,还有你的在情绪占比,紧张、开心、严肃是不是占了面试中大部分情绪。每一次面试都像一面镜子,照出你的短板,然后你把短板改掉,就离目标越来越近了。拥有这种面试意识,面试的次数多了,你会从害怕面试变得爱上面试。


书籍分享

image.png

分享一本软件能的书《金字塔原理》,是麦肯锡咨询公司第一位女性顾问:芭芭拉·明托,写的一本关于逻辑思路的书。里面介绍了一些方法,帮助我们怎么去自下而上的构建逻辑金字塔,或者是自上而下的表达金字塔

书的内容介绍我不做具体的描述了,感兴趣的同学可以自行搜索。


我们在提升硬技能的同时,也要注重提升软技能。技术很重要,但是它是我们实现想法的语言工具。在这之上,使用工具的方法,比工具本身更关键,我们要清楚真正的修炼是什么? 永远都是内在的东西,软性的东西。比如说你的思维能力,耐心,聪明,情商,遇到挫折时的内心复原力。这些技能是可以伴随你漫长的一生的,终身受用的,那么我们就应该为此投资。

个人感悟

image.png

我在工作前2年是处于一个迷茫的状态,没有自己的规划。真正让我发生改变的是,突然有一天我回家,父母的头发都白了,那一刻我意识到自己该学会长大,该为未来做点什么了。从那以后,我每天的状态就是,白天公司工作谋生存,晚上自我提升谋发展。在工作第3年的时候,自我感觉准备差不多了,开始去阿里面试,所以才有了那段裸辞的经历。当然我摔的很惨,也重新认识了自己。


我们做一个时间切片,把过去的自己和现在的自己对比,你会我发现当时所经历的,觉得很困难的事,现在看来都不是事。给自己的人生列个目标,知道自己想成为什么样的人,实现目标,自己的差距就会越来越小。


你们都比我聪明,我相信你们可以的。


我是老邬,我在国际化体验技术团队等你。