金三银四魔都两年半前端面经

29,591 阅读13分钟

前言

先介绍下个人基本情况,16届本科非计算机相关专业,毕业转行前端,过年后裸辞休息了半个月,然后到三月份开始全力准备面试,主要是过去做过的项目总结,刷算法题,巩固基础知识之类的。3月末开始面试。因为目前网上面经还是以1~3年居多,我投简历对标的3~5年岗位,考察点确实有些不一样,这里把接近3个星期的面试经历分享出来,希望能帮到大家。

过程

公司选择

因为我觉得面试更多的算是一个技术交流过程,所以本着和一些大佬多聊聊也没坏处的想法,基本上JD写的比较有诚意招人的公司或者眼熟的公司都会投一投简历,不过真正的目标不多,比较偏好于非996的符合个人价值观的公司。

达达京东到家(过)

笔试

都是些基础选择题,考察计算机网络,事件循环机制,闭包,this这些。

一面

  1. 三次握手和四次挥手详细介绍
  2. TCP有哪些手段保证可靠交付
  3. URL从输入到页面渲染全流程
  4. 如何预防中间人攻击
  5. DNS解析会出错吗,为什么
  6. ES6的Set内部实现
  7. 如何应对流量劫持
  8. 算法:top-K问题,分成top-1,top-2,top-K三小问

二面

  1. 跨域
  2. webpack的plugins和loaders的实现原理
  3. vue和react谈谈区别和选型考虑
  4. webpack如何优化编译速度
  5. 事件循环机制,node和浏览器的事件循环机制区别

三面

  1. 单元测试编写有哪些原则
  2. 一个大型项目如何分配前端开发的工作
  3. 怼项目

个人评价

面试整体上偏重基础知识,1,2面基本没问项目,加班情况听hr说属于正常程度,有双休,环境也挺不错的,感觉是家不错的公司。

达观数据(过)

笔试

同样都是基础题,注意有两道算法:柯里化通用实现和two-sum问题。

一面

  1. typescript有什么好处
  2. vue项目中如何约束rxjs数据的类型
  3. rxjs高阶数据流定义,常用高阶数据流操作符

二三面

一起说了吧,基本没问基础题,全围绕着我的简历问项目细节,侧重于rxjs和typescript这块内容。

个人评价

做NLP的公司,聊下来感觉公司很重技术,技术栈Angular + Python,也有严格的code review,不加班,提倡工作和生活分开。听下来是不是感觉挺不错的?不过有一点比较坑的我要说下,hr给的薪资是我报的期望薪资的最下限,也是我拿到的所有offer中最低的,涨幅10%,更绝的是试用期还要减1k工资,社保公积金按10k交,这就很微妙了emmm。

英语流利说(挂)

一面电面

  1. JWT优缺点
  2. 选择器优先级
  3. 基本数据类型
  4. RxJS冷热流区别
  5. RxJS调试方法
  6. nginx负载均衡配置
  7. 前端性能优化手段
  8. 针对React的性能优化手段
  9. 301 302 307 308 401 403
  10. vue的nextTick实现原理以及应用场景
  11. vue组件间通信
  12. 谈谈XSS防御,以及Content-Security-Policy细节

二面

  1. 场景题:一个气球从右上角移动到中间,然后抖动,如何实现
  2. 场景题:一个关于外边距合并的高度计算
  3. mobx-react如何驱动react组件重渲染
  4. forceUpdate经历了哪些生命周期,子组件呢?
  5. React key场景题:列表使用index做key,删除其中一个后,如何表现?
  6. 算法:实现setter(obj, 'a.b.c' ,val)
  7. RxJS相对于其他状态管理方案的优势?

三面

  1. 手写冒泡排序
  2. JWT细节,适用场景
  3. 跨域
  4. 方案题:不同前端技术栈的项目,如何实现一套通用组件方案?

个人评价

感觉是家有点东西的公司,考察的题目相对偏硬核和细节,也是唯一一家把我挂了的公司,虽然不知道挂在哪了。和hr聊的不算很愉快,我提到个人抗拒996,然后问贵司工作时间的时候, hr的回复是“我们的员工都是很自觉推动工作那种,况且你还年轻,趁这个时候多拼一下“,我只能表面笑嘻嘻了。加班应该算比较严重的,不过团队成员还是有水平的。

拍拍贷(过)

一面

  1. ES6特性
  2. 闭包和this一起谈谈
  3. postcss配置
  4. Promise内部实现原理
  5. vuex, mobx, redux各自的特点和区别
  6. react生命周期
  7. 各方面谈谈性能优化
  8. serviceworker如何保证离线缓存资源更新
  9. virtual dom有哪些好处

然后换了个有黑板的面试间,狂怼项目,各方面都问到了。

二面

总监面,把刚才一黑板的项目架构图全部擦掉,再来谈一遍。

三面

交叉技术面

  1. Vue3 proxy解决了哪些问题?
  2. Vue响应式原理
  3. 发布订阅模式和观察者模式的异同
  4. 图片懒加载实现
  5. css垂直居中
  6. CI/CD流程
  7. 谈谈性能优化

个人评价

主要做混合app和node方向的工作,成长空间应该可以,公司环境也不错,薪资也算有诚意,不过因为是核心组,加班肯定不少。另外因为p2p行业原因,对这方面有顾虑的也要好好考虑下。最后再要说一点的就是,地理位置太偏僻了。。下地铁后还要坐4站左右的公交吧。

天壤智能(过)

一面

  1. react生命周期
  2. key的作用
  3. hooks
  4. vue和react区别,选型考虑
  5. canvas优化绘制性能
  6. webpack性能优化手段
  7. 事件循环
  8. 如何解决同步调用代码耗时太高的问题
  9. 手写Promise实现

二面

  1. 场景题:如何实现登录功能
  2. 聊项目

三面

聊项目

个人评价

一家做人工智能的创业公司,好像已经有落地场景并实现盈利了。个人感觉真的挺不错的,工作时间975,hr和面试官都很有诚意,薪资也不错,如果不是很看重平台的前端都可以考虑一下,大概会接触到一些可视化相关的工作,唯一不足的就是前端团队目前比较小。

拼多多(过)

一面

  1. Promise实现原理
  2. vue组件间通信
  3. 性能优化
  4. vuex数据流动过程
  5. 谈谈css预处理器机制
  6. 算法:Promise串行

二面

  1. CI/CD整体流程
  2. 性能优化
  3. SSR对性能优化的提升在哪里
  4. 怼项目

个人评价

这个应该都比较熟悉了,纯正996。996icu还是从我做起,我就面着玩玩,不过有一说一,薪资开得确实大方,我随口说了个数都没有犹豫就答应了,也算是提供给了实在缺钱或者重视钱的程序员用命换钱的一种选择吧。

猫眼电影(过)

一面

  1. vue组件间通信
  2. react和vue更新机制的区别
  3. Vue3 proxy的优劣
  4. 性能优化
  5. symbol应用
  6. 深拷贝
  7. 怼项目

二面

  1. dns解析流程
  2. 怼项目

个人评价

中规中矩的公司,加班属于正常互联网范围,上海这一块因为负责演唱会票务的相对来说紧急加班会多一些,薪资正常。

米哈游(过)

一面

  1. 跨域
  2. 性能优化
  3. vue和react选型和比较
  4. ssr优缺点
  5. 贝塞尔曲线
  6. 怼项目

个人评价

只有一面。可能是我之前的工作内容刚好对上了这个项目组需要吧。我个人很喜欢的一家公司,创始人的理念和风格蛮对我胃口的,然后工作环境也不错,二刺螈这种,加班不多,在里面的员工工作幸福度好像都挺高的,唯一的遗憾就是薪资开得太低了,期望薪资的底线。为爱发电不容易,虽然钱不是主要问题,主要还是感觉没被重视。

bilibili(过)

一面

  1. Vue3 proxy优缺点
  2. ES6特性
  3. Vue组件间通信
  4. 性能优化
  5. ssr性能优化,node中间层细节处理
  6. 问项目

二面

这一面比较特别,和之前的面试都不太一样,是知乎早已关注很久的之昊老师面的。

之前的面试大概是属于主导权在我这边,面试官倾听的比较多,搭配上少量提问。而这一面基本全程处于被之昊老师教育加吊打的状态,感觉之昊老师说的话比我还多了,针对问出的每个点会在我回答的基础上做更多的延伸说明,没有局限到具体的技术方案或者细节代码,更多的是谈到了一些方法论或者说作为一个优秀的开发者面对一些问题时比编码更高的思维层面上的处理方式。收获很大,聊到了很多之前工作中都没有考虑过的东西。这就是大佬的世界吗.jpg。

个人评价

各方面都很喜欢了。要说我转行前端的契机其实和b站有关,大学时候算是个mader,做着好玩,可以简单理解为动画剪辑视频吧,里面大概会接触到一些motion graphics的知识,前端的动效就可以看做最简单的motion graphics,同时AE里面也会涉及到表达式知识,这玩意的语法也就是基于JS的。通过这个爱好,就了解到了前端这个工作方向自然而然就转过来了,所以可以说b站影响了我的职业方向,对b站还是有特殊的情怀在的。虽然最近随着发展壮大,由ACG社区变为一个各种内容都有的社区,风评也是有各方面的声音吧,不过不进来看看我肯定是不会死心的。。然后除了情怀之外,工作内容,工作时间,环境,待遇都满符合我期望的,主站这套架构也有dalao在知乎写过分享文章,基于vue做的ssr,绝对属于赶潮流各种东西都能折腾的水平,跟着之昊老师做事待遇少点我也愿意啊,关键是待遇也绝对不算少,所以我就接这个offer了。再见各位,我去二刺螈了.jpg。

阅文(面试中)

一面

  1. 如何编写loaders和plugins
  2. 性能优化
  3. webpack 热更新原理
  4. vue和react组件通信
  5. 谈谈eleme框架源码
  6. 谈谈项目
  7. 个人兴趣爱好

个人评价

阅文也是我一直很喜欢的公司,张鑫旭dalao在里面,早期学css的时候看了很多他的文章学到了很多,然后不加班,招聘时特别看重兴趣爱好这一点,感觉就还是蛮重视员工生活的,不仅仅是一个编码机器。面试比较奇怪,一二面不连续,二面要约到下个星期,据一面面试官说筛选比较严格。。。

Thoughtworks(面试中)

一面先写一套笔试题,涉及到一个开发需求。给3天时间,比较简单,公司要求就不透题了。主要涉及到单元测试和响应式布局,modal,popover组件的知识。然后笔试通过后会约现场,大概流程就是在笔试题上再增加一些新需求,现场和面试官结对编程。这一面反馈比较迟,我笔试完成后大概一周左右才收到现场约面,又约到了比较迟的一个时间,现在还没面。

个人评价

不加班是出名了的,然后待遇可能也比较低也是出名了的,看个人选择吧,我感觉其实是挺好的一家公司,里面有一套比较严格的开发流程,然后面试也相对难些,肯定能学到不少东西,对于注重wlb的同学也是很好的选择。

小结

然后还约了头条和蚂蚁的面试,不过优先级都在我这不算很高了,因为我是996icu的坚定支持者,最近又出了福报巴巴这个事,面蚂蚁的兴致更低了,当然头条和蚂蚁技术上肯定都是很强的公司,有很多厉害的人在里面,能进去的话肯定对个人技术发展也有很大好处,不过于我来说价值观还是不太符合,就算侥幸进去了工作也不会开心。因为已经拿到喜欢的offer了,再加上很早就计划好了的下周去日本玩一圈(两年一次的Persona Super Live,我是p系列脑残粉),还要准备赴日各种事务,所以对于这些这没面完的公司,如果有空的话面一下再补上来,没空的话就算了。

总结

总体面下来一个比较强烈的感觉就是,对于3年左右的前端,相对于基础而言,更看重的是项目经验。算法和基础真没问到多少,反而我写到简历里的主要项目基本上属于必问,而且大量知识点也会围绕着项目展开。比如我之前的工作中处理了比较多的性能优化问题,每一家公司都会问到性能优化相关的知识。然后如果你的项目正好符合公司这个面试官需求,就会加很多分。比如米哈游和拼多多的面试官明确说了你之前做的这个项目很符合我们的需求大量加分。当然也有一些风格偏重视基础知识和算法的公司,比如英语流利说,头条这种,所以这些知识也同样不能落下。

然后有一个点还是要提一下,就算有了3年工作经验,学历仍然是一个比较重要的点,至少简历关肯定是有用的,我中流985本非对口专业,投的比较佛系,没有主动找任何内推,就boss直聘和拉勾,v2ex上投,也只被再惠和饿了么刷了简历,所以在读书的同学尽可能的选择一个好学校也是很重要的,不要相信说什么程序员不需要学历的说法,非985最好读个985的研提升学历,985本就看个人选择了,当然过了简历关就各凭本事。

最后就是公司对前端的需求和待遇问题了,感觉寒冬并没有想象中那么严重,各个公司其实都缺前端的,有不少公司的hr或猎头和我说招了近一到两个月的前端都没招到,所以我觉得好好学习的话,找到一份合适的工作肯定不难。待遇方面属于正常,各个公司都有自己的评级,除了一些996大厂给的比较夸张,或者说wlb的公司涨幅略低些,大部分公司都能给到30%的涨幅。

以上就是这个金3银4我对魔都前端状况的一个观察了,希望各位都能找到合适的工作啦~