关于面试:一次阿里-P7-的面经分享给大家

47次阅读

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

原文链接:https://juejin.im/post/5e664bdd6fb9a07cd80f3192

集体近期面试状况

往年二月以来,我的面试除了一个用友的,根本其余都被毙了,能够说是十分残暴的。其中有很多本人感觉还面的不错的岗位,比方百度、跟谁学、好将来等公司。说实话,打击比拟大。

状况基本上是从三月开始好起来的,这个工夫点,可能疫情快过来了,国家也开启了靠近 40 万亿的根底建设打算,在这个工夫断,面试的几个代表性的公司,包含腾讯、饿了么、宝宝树、旷世科技等等,根本都成了。

最终,就在三月 9 号,饿了么刚给我确认了 p7 的职位。也算本人到了另一个奋斗的阶段了。对本人的经验,做一个面试总结。

我的面试筹备

面试其实我是属于一边面试,一边筹备的过程,然而无论如何,肯定要做到根底扎实、比拟好的自我介绍,以及形容本人的职业故事。

1、基础知识的筹备

这一块,其实很重要,很多问题,必须轻松的了解,就和呼吸一样天然。

因为这一块的把握水平,就决定了一个前端工程师,能不能达到高级的水平。

抛砖引玉,比方面向对象、原型链、闭包、es6、html5、css3,它们是前端的根底,须要烂熟于心。比方连闭包都解释不明确的,真的该好好下功夫在这些根底上。。

对于前端框架,根本的个性,生命周期、组件、传值交互、路由、redux、vuex 等等,根本都没有应用上的纳闷。比方面试官可能问,actions 和 mutations 有什么区别之类的。

这一块,能问的问题简直是无穷多的,哪怕同一个知识点,问法不一样,不真正了解的话,切实是过不去高级那一关。

2、好的自我介绍

自我介绍,很多人其实做的不好,其实这是面试官对面试者的第一印象。

如果我是一个面试官,我根本能从自我介绍中,得悉这么一些信息:

1、这个人是不是一个逻辑清晰的人?

2、这个人的性情是积极向上的,还是稍显自大的?

3、这个人能不能很好的表白自我?

这些问题很重要,依照这个思路,其实你反过来就能够向面试官体现自我。

1、学校、业余

2、技术栈

3、职业履历

4、最近一家公司的奉献

千万不要和面试官说,和产品、后盾很好的配合,实现公司的我的项目之类。因为齐全是废话!

自我介绍个别是两分钟左右,你确定你能两分钟,把下面四个问题给面试官讲清楚?并且你还要突出一些重点,比如说,我比拟善于 react,做过 XXX 优化之类,有过 XX 年的我的项目教训之类。

自我介绍的实质:用最短的话,向面试官灌输你的长处,并且让面试官在以后大抵的范畴内考查你。如果你说你相熟 vue,个别面试官都会问 vue 相干的多一点,应该不会和你死磕 react。

3、如何“讲故事”

这是一个比拟重要的点。重要的是,这个故事要有看点,示意了你和其他人不一样在哪。

比方我,我会说,我之前在公司,做了咱们前端的我的项目标准化工作,做了咱们外部的组件库建设,集成了咱们本人的脚手架工具。

这是我感觉,我和其余大多数前端不一样的点,面试官的焦点就会集中在,什么是我的项目标准化,定义了哪些维度的规范?组件库的建设,解决了什么问题?脚手架的呈现,又解决了什么问题?

任何一个人,都是惟一的,任何一个我的项目,也是不同的,作为面试者的咱们,重要的是,要把这些重点因素提取进去,造成本人的“故事”。

比方,我独立承当了公司的 xxx 我的项目。遇到了哪些挑战,我如何在不利的条件下成长起来的。

比方,我通过 xxx 渠道,钻研了多少个我的项目的架构工作。

肯定要置信,因为你,什么才产生了变动。其实大多数人是一个被动的状态,不晓得本人有什么用,本人在团队中的定位,本人的职责是什么。在工作中,我心愿每个人置信本人的是有用的,而后寻找你能够发力的点,去做真正的扭转。如果你在找工作,那就好好思考,本人的确在团队中,承当了什么。

面试该留神的点

面试的外围是什么?肯定要记住,那就是沟通!而咱们做技术的,其实最大的硬伤,多半是沟通,至多对于我本人,就是有这个问题的。

沟通的意义,一方面,是你要让他人听懂你表白的货色;另一方面,是你要听懂他人的话。

1、谈话得留神,让他人懂你

间接举个例子,我在面试美团的时候,谈话始终结巴,其实我也不晓得为什么,平时谈话都是失常的,在非凡的场合,就呈现这个问题,尽管把话说完了,然而显然,美团第一面,就 pass 了。过后是在家中视频面试,我的室友,不好意思间接说我,就给我录音,我听了 10 分钟左右,的确不尽人意。。

我听了 10 分钟的录音,给我本人的评估就是,谈话都吃力,当前一起工作,那还不把我累死。

当前,所有的面试,我都把关注点,从我如何说,变成了,如何让他人很欢快的听懂我说的话。

第一、我向面试官说的所有的话,都是成体系的。

第二、我向面试官说的所有的话,都是逻辑清晰的。

第三、我向面试官说的所有的话,我都先进展两秒以上,思考分明了再谈话。

当然了,这一块,可能是我集体的特例,然而根本的语句通顺、逻辑清晰,在程序员中,做到的应该不多。

2、学会聆听,让你懂他人

很多状况下,其实面试官在表白的时候,很可能咱们本人没听懂面试官的意思,这个时候,就会特地的难堪。

我个别会这么做,我会说,方才您说的问题,我来形容一遍 xxxxxxx。形容完之后,你再问面试官,您表白的是这个意思吗?一般而言,面试官会进行更具体的举例和形容。

我在面试饿了么的时候,二面的面试官,一开始就问了一个业务比较复杂的问题,所以一开始,我其实齐全没明确,面试官说的是什么货色,然而我通过本人的形式,疏导面试官说的更多,而后到某个水平,达成一个共识,这就是比拟欢快的一个交换。

无论是学会谈话,还是学会聆听,其实外围的问题,就是让单方的交换,在一个频道上,因为对于领导,面试面试,其实就是找同类人!

必会的面试题目

前端一些外围的经典问题,感觉永远都不会过期,反正我集体遇到的频率十分高,不过集体不会具体解读这些问题,只做一个抛砖引玉。

1、前端浏览器输出 URL 后产生什么?

一般前端会答复,dns 解析,获取 html 文件,解析 DOM,渲染页面这么一个流程。

其实过程简单的很,比方一个 dns 解析阶段,它分为哪几步?解析的 ip 肯定是一样的吗?每次都会进行 dns 解析吗?可能还须要理解 cdn 托管的一些问题。

比方 html 文件获取,它是如何传输的?如何建设链接的?三次握手、四次挥手是什么?http 协定端口是什么?为什么间接能拜访一个 html 文件?

….

2、前端性能优化?

大多数前端,根本会说,缩小 http 申请、压缩合并 js 以及 css、图片懒加载的技术、避免回流和重绘、css 放头部、js 放底部。

以上的说法对吗?完全正确!可是在这个过程中,我感觉短少一种思考。

比方缩小 http 申请,能够从哪些维度上缩小呢?比方合并 http 申请?比方合并资源?比方图片懒加载?http 还有其余维度的优化吗?cookie 优化?http 申请和资源加载的辨别优化?在 webview 中呢?和一般的浏览器的优化技术,又有什么区别?

……

3、前端如何做性能监控、异样监控?

性能监控,异样监控,根本在小公司,是没有实际根底的,可是在差不多的大厂中,他们会关注这个问题。

首先是性能监控,应该从这么几个维度来说:一个是 http 的方面,在后端 log 日志,流入 kafka,而后在 kafka 生产数据,能够精确的监控到哪些接口有异样?异样率是多少?另一个方面,是前端的 Performance 的 api,在用户的实时应用的过程中,就会产生数据,这样就能实现页面性能监控。

前端异样监控,首先要明确什么是异样,html、css 这些货色,无非就是一个展现的问题,还不至于让页面白屏的事件产生,所谓的异样监控,其实就是 js 的异样监控。在前端畛域,window.onerror 是进行 js 异样的监听事件。并且要晓得,它在 IE 中,是不反对的,所以 IE 的监控,要应用 try catch 的形式进行捕捉,比方咱们可能还要留神到,遇到异步的时候,这个如何做 try catch 的异样捕捉。

最初一个是前端 sdk 埋点,间接开发一个 js 文件,统计用户的 UV/PV 剖析等等,比方用户的转化率之类的,这一块集体没有什么特地的实际,各位能够在网上百度看看。

4、前端平安方面

这是一个高级前端必问的问题,说的是一个前端对整个前端平安的零碎认知。

咱们必须了解这么几个方面:sql 注入、xss、csrf、cookie 平安、明码平安等等。

sql 注入,要了解 sql 注入的场景,它的原理是什么,以后的数据库的解决方案是什么?

xss 攻打,常见的攻打场景,什么类型的网站容易被 xss 攻打,整个流程的原理是什么?

csrf 攻打,其实就是一个钓鱼网站,要了解为什么会收到攻打,应该采取什么策略进行进攻。

cookie 平安,要了解为什么用 token,劣势等。

明码平安,次要是用户登陆,用户数据提交,加密,存入数据库的一整个流程。

其次,其实还有 http 和 https 的问题等等。

5、http、https、http1.0、1.1、2.0、3.0 的区别

http 这一块,其实是一个非常复杂的体系,要深挖的货色特地多。

http 进行非对称加密,失去 https,这个过程是怎么样的?什么是 CA 证书?整个网站进行验证的流程是什么?

http 各个版本的区别是什么?解决了哪些问题?比方头部缩减的优化,那你理解这个优化的具体策略吗?缩减了什么?又减少了什么?要深挖细节。

http 的底层协定?tcp/ip 协定的三次握手,四次挥手,具体是怎么通信的?什么叫满启动?甚至延长到整个网络协议的畛域,什么是 socket?udp 是干什么的?dns 解析?ftp?以及不罕用的其余协定?

如果再进行扩大,计算机网络的 7 层构造?每一层做了什么事件?计算机组成原理,如何解析咱们的代码等等。

……

深度解读

这一部分,我大抵分了几个模块,源码、可视化、跨平台、工程化、混合 app 交互、设计模式,其实每一个都值得前端去钻研。

作为集体,其实也算是我定了几个方向,本人当前要致力的中央。

1、源码

最好要读一读某个框架的源码,最不济,也看看他人写的源码解读的文章,当初的趋势,根本是以 react、vue 为主。

以 vue 为例,你得懂 vue 框架的整个周期,比方 vue 的初始化,产生了什么?vue 的模板解析,是如何进行的?如何造成 AST?render 函数的生成?什么是依赖收集?什么是 patch?数据更新策略等等。

你也要懂得在这个过程中,混入 mixins、$options,vuex、router 他们各自如何通过这些 api,实现各自的性能?

源码的维度,能够试着从 vue 的体系、react 体系、loadash、zepto 这些库中下手,因为咱们就是从这些框架以及 js 库,走过去的。

2、可视化

地图、echats、canvas、webgl、d3.js、three.js!

下面是集体想要钻研的对于可视化的一个个主题,尽管可视化不是自己的特长,可是因为之前在地图相干的公司待过,也算是沾了可视化的一点光。在面试饿了么的过程中,就提到了一个非凡的应用场景,就是对于地图的线路绘制,大批量数据的推送,以及性能相干的问题。

当前,一般前端的技能,比方 vue、react 等等,大家都会,没有什么差异化的竞争,前端市场趋于饱和,更须要的是在某些方面专精的人才。

3、跨平台

flutter、react-native、weex、electron

这是目前市场上,针对跨平台的一些解决方案,每一个框架,大抵方向上,都解决了肯定水平上的多端开发能力。

首先须要明确的是,多端开发并不是万能的,也有一些咱们开发中的痛点,无论 rn、还是 weex,都是给前端提供一些非凡的组件,实现开发能力。然而业务是多样的,须要也是多变的,对于没有提供的组件,或者 api,咱们前端开发人员,有些性能是没方法实现的。

对于多端框架,更重要的是了解层面的货色,比方 electron,就是要了解它的实质,就是应用 node 塑造一个桌面利用的容器,而后外部是一个 webview。

从面试的角度,面试官器重的不是这个货色怎么用的问题,个别会问一些外部原理,比方小程序和公众号的比照?底层实现形式?比方 rn 的编译解析过程是什么?如何把 js 编译为真正的 ios、android 利用。比方 flutter 的渲染机制,和 rn 这些渲染形式有什么不同?和一般的 web 网页又有什么区别?

跨平台技术,flutter 最近比拟火,从找工作的角度,其实能够学学。electron 这些桌面利用,自身不难,然而学过和没有学过,其实自身就是一种差别。

4、工程化

工程化这一块,是集体比拟感兴趣的一个方向。本人也做过一些实际,然而只能说是工程化中的冰山一角。

抛砖引玉,提一些咱们能够探讨的点。

1、前端我的项目规范?

体现为库的抉择?文件划分目录的规定?pc、mobile 多端实际?ssr 计划集成?

2、组件库集成?

组件库建设的目标?npm 包的公布?

3、脚手架工具?

webpack 编译优化?webpack 打包构建优化?自我脚手架的工具应用?

4、git 提交标准 commit-msg?代码查看标准 eslint?

5、前端性能监控?前端异样监控?前端用户埋点 sdk?

6、rap?jenkins?

5、混合 app 交互

jsBridge、性能晋升方面、x5 内核

算是一个小的模块吧,咱们得明确,jsBridge 是如何做到 h5 和原生利用的交互?

ios 和 h5 的交互通信?window.webkit? 是否同步?

android 和 h5 的交互?细节和 ios 有什么不同?

webview 在性能晋升方面,能够做哪些?什么是离线包?

腾讯 x5 内核的劣势是什么?咱们用了 x5 内核,能够防止什么问题?

6、设计模式

最初谈谈设计模式,算是一个高频的面试题。

咱们至多要晓得以下这些设计模式的性能、代码实现、应用场景问题。

单例模式、原型模式、工厂模式、观察者模式、策略模式、代理模式等等。

最初祝大家面试欢快。

逆锋起笔 是一个专一于程序员圈子的技术平台,你能够播种 最新技术动静 最新内测资格 BAT 等大厂大佬的教训 增长本身 学习材料 职业路线 赚钱思维 ,微信搜寻 逆锋起笔 关注!

正文完
 0