进大厂连载 4/15:如何拿下政采云 P6 前端 Offer

5,900 阅读11分钟

前端早早聊大会,前端成长的新起点,与掘金联合举办。 加微信 codingdreamer 进大会专属内推群,赢在新的起跑线。


第十四届|前端成长晋升专场,8-29 即将直播,9 位讲师(蚂蚁金服/税友等),点我上车👉 (报名地址):


正文如下

本文是前端早早聊的第 44 位讲师,也是第八届 - 面试进大厂攻略专场,来自政采云的句号的分享 - 讲稿简要整理版(完整版含演示请看录播视频和 PPT):


个人介绍

大家好,很高兴来到早早聊与大家分享我的面试经历。

先做个自我介绍,我花名句号,现任政采云高级前端开发工程师。这是我的个人经历,我16年毕业于山大,毕业后就去了华为,一待就是三年,16 年到 18 年在运营商 BG 做前后端开发,因为当时华为的开发方式还是偏传统一些,前后端不分离的,19 年在消费者 BG 做前端业务设计和开发,所以总的来说前后端都有一些涉猎。在华为共待了 3 年,去年 8 月底离职来了政采云。现任政采云商品中心前端负责人。

这是我们公司的微信公众号。有兴趣的小伙伴可以后面加一下。

接下来进入正题,分享一下我当时一些面试经验和面试流程,希望可以帮助到大家。

面试准备

第一点要分享的是我的面试准备,在华为时,因为平时业务比较繁忙,所以大部分的面试准备都是在周末,前前后后大概有 1 个多月,等准备完成之后,才真正的开始面试。在入职之前,总共面试了 4 家公司,分别是涂鸦智能,政采云,阿里和微医。首先先说一下当时我的面试准备,从以下几个角度出发:

  1. 前端基础知识
  2. 数据结构及算法
  3. 源码理解
  4. 历史业务成绩与主导的推动

1.前端基础知识

前端基础知识一般涵盖的内容就比较广,这一块的积累主要依赖平时书本的阅读和代码的积累。大部分公司会在第一轮面试的时候考察面试者的基础知识,包括但不限于 HTML,JS,CSS,然后我们熟悉的 3 大框架,React,Vue 和 Angular,但现在的前端市场,前两者的占比会比较多一些,所以我的建议挑选工作的时候还是以 React 和 Vue 为主,根据以往的项目经验或者熟悉程度,要熟练掌握其中之一,并了解其原理,再由此框架发散到一些周边配套,比如 React Router,Redux 等等。除此之外像 JS 的基础知识,比如 this 指向,事件循环等面试必考点网上其实都已经很全了,我这边就不展开了。当时我还准备了一些常用的设计模式,这一块在面试中的考察也非常多。准备设计模式时不能就准备如何实现设计模式,太飘,需要准备的其实是设计模式在项目中的实现和实际应用。我记得我的其中一场面试,面试官考察我设计模式,我一顿讲实现,讲到一半他就打断了我,改问我设计模式在项目中应用,所以其实公司更重视的是技术的应用,只会写不会用就和不会没什么区别。说到底设计模式这个东西,代码看得多,写的多了之后,就会掌握,不用说一些特别偏门的设计模式,比如用了链式优化了需要按顺序调用方法的历史业务,使代码提高可读性等等。然后基础知识这块,重点可以提一下前端性能优化,这一块基本上面试一次就涉及一次,可以从四个层面复习,分别从网络资源优化,HTTP 请求层面的优化,JS 优化,渲染层面的优化展开。针对每种场景至少也要了解 1 到 2 种优化方案会好一些。

2.数据结构及算法

我面试的四家公司都有涉及到算法的一些问题,在算法的准备上,可以去 LeetCode 上刷题,我当时大概是每天 1 到 2 题,做完之后再参考其他人的思路。不要只看 JS 实现的答案,Java 的很多方法在思路上,JS 也可以借鉴。做算法题的主要作用是锻炼逻辑思维能力,其实前端对于算法的使用频率还是比较低一些的,所以我的建议是尽量以难度中等或简单的题为主要练习目标,偶尔做一道困难的题。再说一下数据结构的准备,主要了解一些常用的,比如树,栈,队列,这些都是在项目中应用的比较频繁的,像树的插入,查找,删除等等最近我在项目中还遇到了。

3.源码的阅读

我当时跳槽时主要的技术栈是 Vue,所以我的源码阅读主要是在 Vue 的源码阅读,我在这一块上的准备并不是很多,所以在面试过程中吃过亏。自己熟悉的技术栈的源码一定要阅读并且有一定的理解,面试一般都会从面试者简历中写的技术栈延伸开。很多公司会问一些涉及到框架方面的问题,比如非常经典的 Vue 双向绑定是如何实现的。如果只是读过一些公众号上对双向绑定的总结概括的话,还很容易在面试中翻车的。源码的阅读主要关注框架核心逻辑的实现,因为面试中也主要考察核心逻辑。

4.历史负责的项目回顾总结

这一点可能是很多面试者忽略的。前面说的 3 点都是可以通过学习或者短期记忆来快速弥补的,但真正拉开面试水平的,我的理解应该是历史项目。比较多的公司在面试时会先让面试者做一下项目介绍,然后通过项目展开提问,我当时准备的主要从以下 3 点来阐述我的历史项目,分别是项目背景/我的角色和起到的价值,既往对业务的推动,以及过去工作中对团队或者他人的影响。因为我在华为带领过 4 到 5 人的小团队,承担过 PM 的角色,所以对项目的一整套流程和开发排期上的把控有一些经验。并且推动过组内前后端分离的落地,多次组织过团队培训。所以我在简历中和面试时都会把这一块作为重点突出出来。这一项主要要突出个人能力上的优势,不管是项目管理能力还是沟通能力还是推动力,总之把个人的重要性体现出来。即使基础能力很强,如果在公司中只是一个纯执行者,没有以上几点,也很难在面试者中脱颖而出,所以这一块在简历或面试中可以加强描述。

面试流程

我进入政采云总共经历了 3 轮面试。

技术面

第一轮是技术面,因为我原来在南京,所以第一轮是电话面试,面试内容主要是我前面提到的所有点,包含前端由浅入深的一些知识点的考察,框架的使用能力,不同场景下具体问题的解决方案和技术细节,上一家公司的岗位职责细节等。政采云一轮面试内容比较偏细节方面多一些,面试时间也会比较久一些,主要考察前端基本功和逻辑思维能力。大概有 80 分钟左右,涵盖的内容也比较多,从项目开始问起,HTML,JS,CSS 基础知识,到框架的使用及原理,浏览器和网络知识,Node,Webpack 等等。

经理面

第二轮面试是经理面,这一轮是堂主面试的,第二轮面试侧重点比较偏向于综合技术方案掌握以及职业能力方面的个人能力考察,这个个人能力指的不仅仅技术上的,更偏向于项目管理,业务理解,团队合作,沟通反馈等。除了这些考察点,堂主也分享了政采云内部一系列建设和未来的规划,这也是最吸引我进入政采云的主要理由之一。这一轮面试我的建议是不要太拘泥,实事求是地反馈以往工作或项目中的一些事情,放开了聊就行。

HR 面

最后一轮就是 HR 面,主要就是薪资福利等问题,这个我就不多说了,不涉及到技术或项目相关的事情,大多数公司应该都是差不多的。

我对政采云的印象

入职团队后,对政采云团队的第一印象就是年轻有活力,这里大部分都是 90 后,同事之间的关系都比较融洽,都是有话直说,我记得刚进入公司直接赶上了一次团建,让我更快融入了团队。进入公司后,也有师兄会带着熟悉公司的整个开发流程和业务架构。融入团队后,能够接触到的东西也非常多,除了业务,团队也有非常多的技术建设方向,可以根据自己的爱好参加不同的技术建设。一般在别的团队,比如一些大型公司,没法接触到一套完整的开发流程,但在这却可以一起参与进去,说实话能学到的东西还是比较多。团队也有非常多的分享,每周会有同学进行技术或业务分享,大家也会积极参与讨论。

我的个人建议

最后给想要加入政采云团队的同学们提一些建议。

  1. 简历建议要用 PDF ,别用 Word,内容突出你关键点,别一味的写会啥啥啥,可以写通过使用什么技术解决了多大的问题,带来什么价值。
  2. 必要的技术基本功复习,毕竟是靠这个吃饭的,多看多写,可以在面试前将自己认为比较薄弱的知识点再温习一下,尽量等到温习结束后再进行面试。
  3. 梳理过去工作中的亮点和成长,这一点要在简历或面试中突出出来,掌握了基础知识只是对一个前端程序员的基本要求,但工作中的亮点和成长是拉开面试者水平的一个重要点。要突出你在工作中的角色和作用。
  4. 调整好心态,自信阳光一些,不要紧张,能给你加分。

书籍分享

Q&A

Q:学习vue的源码从哪里入手比较好,有没有什么学习流程和方法可以推荐?

A:首先要看你之前有没有看过源码,如果你之前没有看过源码,首先要对源码有一个整体的概念,了解源码整体的调用逻辑,不要一行一行的扣代码。从一小块功能开始,先从api开始,比如vue的双向绑定,只看一遍肯定是不够的,要多看几遍。第一遍先把整体的调用流程和大致思路看懂,后面几次阅读,再把一些细节的东西看懂,每一行代表什么意思。

Q:一直做业务开发,基于某成熟框架,主要工作是构建页面组件实现业务交互,没有难点,工作也比较繁琐,应该怎么描述自己在项目中承担的角色和主要内容?

A:从两个方面来说,

  1. 主动承担一些比较有复杂业务的事情,不要拘泥于现在做的一些事情,如果目前做的事情比较杂的话,可以向主管反馈让自己承担更多更重要的事情。
  2. 主动思考在业务中,如果每次都做相同的事情,是否可以归纳总结,进行业务优化,自发的通过技术方案解决自己能想到的业务上的点。比如,业务上有复杂的点,或者一些痛点,想一些好的解决方案,技术上是否可以实现,通过前端要怎么优化。可以讲一些自己的思考和实现逻辑,最终是怎么解决这个问题的,主要是思考逻辑和事情的解决方案,不管是通过技术还是沟通,这些都是个人亮点。

本文使用 mdnice 排版