前端早早聊大会,前端成长的新起点,与掘金联合举办。 加微信 codingdreamer 进大会专属内推群,赢在新的起跑线。前端
第十四届|前端成长晋升专场,8-29 即将直播,9 位讲师(蚂蚁金服/税友等),点我上车👉 (报名地址):vue
本文是前端早早聊的第 44 位讲师,也是第八届 - 面试进大厂攻略专场,来自政采云的句号的分享 - 讲稿简要整理版(完整版含演示请看录播视频和 PPT):程序员
你们好,很高兴来到早早聊与你们分享个人面试经历。面试
先作个自我介绍,我花名句号,现任政采云高级前端开发工程师。这是个人我的经历,我16年毕业于山大,毕业后就去了华为,一待就是三年,16 年到 18 年在运营商 BG 作先后端开发,由于当时华为的开发方式仍是偏传统一些,先后端不分离的,19 年在消费者 BG 作前端业务设计和开发,因此总的来讲先后端都有一些涉猎。在华为共待了 3 年,去年 8 月底离职来了政采云。现任政采云商品中心前端负责人。算法
这是咱们公司的微信公众号。有兴趣的小伙伴能够后面加一下。后端
接下来进入正题,分享一下我当时一些面试经验和面试流程,但愿能够帮助到你们。设计模式
第一点要分享的是个人面试准备,在华为时,由于平时业务比较繁忙,因此大部分的面试准备都是在周末,前先后后大概有 1 个多月,等准备完成以后,才真正的开始面试。在入职以前,总共面试了 4 家公司,分别是涂鸦智能,政采云,阿里和微医。首先先说一下当时个人面试准备,从如下几个角度出发:api
前端基础知识通常涵盖的内容就比较广,这一块的积累主要依赖平时书本的阅读和代码的积累。大部分公司会在第一轮面试的时候考察面试者的基础知识,包括但不限于 HTML,JS,CSS,而后咱们熟悉的 3 大框架,React,Vue 和 Angular,但如今的前端市场,前二者的占比会比较多一些,因此个人建议挑选工做的时候仍是以 React 和 Vue 为主,根据以往的项目经验或者熟悉程度,要熟练掌握其中之一,并了解其原理,再由此框架发散到一些周边配套,好比 React Router,Redux 等等。除此以外像 JS 的基础知识,好比 this 指向,事件循环等面试必考点网上其实都已经很全了,我这边就不展开了。当时我还准备了一些经常使用的设计模式,这一块在面试中的考察也很是多。准备设计模式时不能就准备如何实现设计模式,太飘,须要准备的实际上是设计模式在项目中的实现和实际应用。我记得个人其中一场面试,面试官考察我设计模式,我一顿讲实现,讲到一半他就打断了我,改问我设计模式在项目中应用,因此其实公司更重视的是技术的应用,只会写不会用就和不会没什么区别。说到底设计模式这个东西,代码看得多,写的多了以后,就会掌握,不用说一些特别偏门的设计模式,好比用了链式优化了须要按顺序调用方法的历史业务,使代码提升可读性等等。而后基础知识这块,重点能够提一下前端性能优化,这一块基本上面试一次就涉及一次,能够从四个层面复习,分别从网络资源优化,HTTP 请求层面的优化,JS 优化,渲染层面的优化展开。针对每种场景至少也要了解 1 到 2 种优化方案会好一些。浏览器
我面试的四家公司都有涉及到算法的一些问题,在算法的准备上,能够去 LeetCode 上刷题,我当时大概是天天 1 到 2 题,作完以后再参考其余人的思路。不要只看 JS 实现的答案,Java 的不少方法在思路上,JS 也能够借鉴。作算法题的主要做用是锻炼逻辑思惟能力,其实前端对于算法的使用频率仍是比较低一些的,因此个人建议是尽可能以难度中等或简单的题为主要练习目标,偶尔作一道困难的题。再说一下数据结构的准备,主要了解一些经常使用的,好比树,栈,队列,这些都是在项目中应用的比较频繁的,像树的插入,查找,删除等等最近我在项目中还遇到了。 性能优化
我当时跳槽时主要的技术栈是 Vue,因此个人源码阅读主要是在 Vue 的源码阅读,我在这一块上的准备并非不少,因此在面试过程当中吃过亏。本身熟悉的技术栈的源码必定要阅读而且有必定的理解,面试通常都会从面试者简历中写的技术栈延伸开。不少公司会问一些涉及到框架方面的问题,好比很是经典的 Vue 双向绑定是如何实现的。若是只是读过一些公众号上对双向绑定的总结归纳的话,还很容易在面试中翻车的。源码的阅读主要关注框架核心逻辑的实现,由于面试中也主要考察核心逻辑。
这一点多是不少面试者忽略的。前面说的 3 点都是能够经过学习或者短时间记忆来快速弥补的,但真正拉开面试水平的,个人理解应该是历史项目。比较多的公司在面试时会先让面试者作一下项目介绍,而后经过项目展开提问,我当时准备的主要从如下 3 点来阐述个人历史项目,分别是项目背景/个人角色和起到的价值,既往对业务的推进,以及过去工做中对团队或者他人的影响。由于我在华为带领过 4 到 5 人的小团队,承担过 PM 的角色,因此对项目的一整套流程和开发排期上的把控有一些经验。而且推进过组内先后端分离的落地,屡次组织过团队培训。因此我在简历中和面试时都会把这一块做为重点突出出来。这一项主要要突出我的能力上的优点,不论是项目管理能力仍是沟通能力仍是推进力,总之把我的的重要性体现出来。即便基础能力很强,若是在公司中只是一个纯执行者,没有以上几点,也很难在面试者中脱颖而出,因此这一块在简历或面试中能够增强描述。
我进入政采云总共经历了 3 轮面试。
第一轮是技术面,由于我原来在南京,因此第一轮是电话面试,面试内容主要是我前面提到的全部点,包含前端由浅入深的一些知识点的考察,框架的使用能力,不一样场景下具体问题的解决方案和技术细节,上一家公司的岗位职责细节等。政采云一轮面试内容比较偏细节方面多一些,面试时间也会比较久一些,主要考察前端基本功和逻辑思惟能力。大概有 80 分钟左右,涵盖的内容也比较多,从项目开始问起,HTML,JS,CSS 基础知识,到框架的使用及原理,浏览器和网络知识,Node,Webpack 等等。
第二轮面试是经理面,这一轮是堂主面试的,第二轮面试侧重点比较偏向于综合技术方案掌握以及职业能力方面的我的能力考察,这个我的能力指的不只仅技术上的,更偏向于项目管理,业务理解,团队合做,沟通反馈等。除了这些考察点,堂主也分享了政采云内部一系列建设和将来的规划,这也是最吸引我进入政采云的主要理由之一。这一轮面试个人建议是不要太拘泥,实事求是地反馈以往工做或项目中的一些事情,放开了聊就行。
最后一轮就是 HR 面,主要就是薪资福利等问题,这个我就很少说了,不涉及到技术或项目相关的事情,大多数公司应该都是差很少的。
入职团队后,对政采云团队的第一印象就是年轻有活力,这里大部分都是 90 后,同事之间的关系都比较融洽,都是有话直说,我记得刚进入公司直接遇上了一次团建,让我更快融入了团队。进入公司后,也有师兄会带着熟悉公司的整个开发流程和业务架构。融入团队后,可以接触到的东西也很是多,除了业务,团队也有很是多的技术建设方向,能够根据本身的爱好参加不一样的技术建设。通常在别的团队,好比一些大型公司,无法接触到一套完整的开发流程,但在这却能够一块儿参与进去,说实话能学到的东西仍是比较多。团队也有很是多的分享,每周会有同窗进行技术或业务分享,你们也会积极参与讨论。
最后给想要加入政采云团队的同窗们提一些建议。
Q:学习vue的源码从哪里入手比较好,有没有什么学习流程和方法能够推荐?
A:首先要看你以前有没有看过源码,若是你以前没有看过源码,首先要对源码有一个总体的概念,了解源码总体的调用逻辑,不要一行一行的扣代码。从一小块功能开始,先从api开始,好比vue的双向绑定,只看一遍确定是不够的,要多看几遍。第一遍先把总体的调用流程和大体思路看懂,后面几回阅读,再把一些细节的东西看懂,每一行表明什么意思。
Q:一直作业务开发,基于某成熟框架,主要工做是构建页面组件实现业务交互,没有难点,工做也比较繁琐,应该怎么描述本身在项目中承担的角色和主要内容?
A:从两个方面来讲,
本文使用 mdnice 排版