作者:unsad
https://juejin.im/post/5cb87f9df265da03555c78ec
前言
先介绍下个人基本情况,16 届本科非计算机相关专业,毕业转行前端,过年后裸辞休息了半个月,然后到三月份开始全力准备面试,主要是过去做过的项目总结,刷算法题,巩固基础知识之类的。3 月末开始面试。因为目前网上面经还是以 1~3 年居多,我投简历对标的 3~5 年岗位,考察点确实有些不一样,这里把接近 3 个星期的面试经历分享出来,希望能帮到大家。
##过程 ###公司选择因为我觉得面试更多的算是一个技术交流过程,所以本着和一些大佬多聊聊也没坏处的想法,基本上 JD 写的比较有诚意招人的公司或者眼熟的公司都会投一投简历,不过真正的目标不多,比较偏好于非 996 的符合个人价值观的公司。
达达京东到家(过)
笔试
都是些基础选择题,考察计算机网络,事件循环机制,闭包,this 这些。
一面
三次握手和四次挥手详细介绍
TCP 有哪些手段保证可靠交付
URL 从输入到页面渲染全流程
如何预防中间人攻击
DNS 解析会出错吗,为什么
ES6 的 Set 内部实现
如何应对流量劫持
算法:top-K 问题,分成 top-1,top-2,top-K 三小问
二面
跨域
webpack 的 plugins 和 loaders 的实现原理
vue 和 react 谈谈区别和选型考虑
webpack 如何优化编译速度
事件循环机制,node 和浏览器的事件循环机制区别
三面
单元测试编写有哪些原则
一个大型项目如何分配前端开发的工作
怼项目
个人评价
面试整体上偏重基础知识,1,2 面基本没问项目,加班情况听 hr 说属于正常程度,有双休,环境也挺不错的,感觉是家不错的公司。
达观数据(过)
笔试
同样都是基础题,注意有两道算法:柯里化通用实现和 two-sum 问题。
一面
typescript 有什么好处
vue 项目中如何约束 rxjs 数据的类型
rxjs 高阶数据流定义,常用高阶数据流操作符
二三面
一起说了吧,基本没问基础题,全围绕着我的简历问项目细节,侧重于 rxjs 和 typescript 这块内容。
个人评价
做 NLP 的公司,聊下来感觉公司很重技术,技术栈 Angular + Python,也有严格的 code review,不加班,提倡工作和生活分开。听下来是不是感觉挺不错的?不过有一点比较坑的我要说下,hr 给的薪资是我报的期望薪资的最下限,也是我拿到的所有 offer 中最低的,涨幅 10%,更绝的是试用期还要减 1k 工资,社保公积金按 10k 交,这就很微妙了 emmm。
英语流利说(挂)
一面电面
JWT 优缺点
选择器优先级
基本数据类型
RxJS 冷热流区别
RxJS 调试方法
nginx 负载均衡配置
前端性能优化手段
针对 React 的性能优化手段
301 302 307 308 401 403
vue 的 nextTick 实现原理以及应用场景
vue 组件间通信
谈谈 XSS 防御,以及 Content-Security-Policy 细节
二面
场景题:一个气球从右上角移动到中间,然后抖动,如何实现
场景题:一个关于外边距合并的高度计算
mobx-react 如何驱动 react 组件重渲染
forceUpdate 经历了哪些生命周期,子组件呢?
React key 场景题:列表使用 index 做 key,删除其中一个后,如何表现?
算法:实现 setter(obj, 'a.b.c' ,val)
RxJS 相对于其他状态管理方案的优势?
三面
手写冒泡排序
JWT 细节,适用场景
跨域
方案题:不同前端技术栈的项目,如何实现一套通用组件方案?
个人评价
感觉是家有点东西的公司,考察的题目相对偏硬核和细节,也是唯一一家把我挂了的公司,虽然不知道挂在哪了。和 hr 聊的不算很愉快,我提到个人抗拒 996,然后问贵司工作时间的时候, hr 的回复是“我们的员工都是很自觉推动工作那种,况且你还年轻,趁这个时候多拼一下“,我只能表面笑嘻嘻了。加班应该算比较严重的,不过团队成员还是有水平的。
拍拍贷(过)
一面
ES6 特性
闭包和 this 一起谈谈
postcss 配置
Promise 内部实现原理
vuex, mobx, redux 各自的特点和区别
react 生命周期
各方面谈谈性能优化
serviceworker 如何保证离线缓存资源更新
virtual dom 有哪些好处
然后换了个有黑板的面试间,狂怼项目,各方面都问到了。
二面
总监面,把刚才一黑板的项目架构图全部擦掉,再来谈一遍。
三面
交叉技术面
Vue3 proxy 解决了哪些问题?
Vue 响应式原理
发布订阅模式和观察者模式的异同
图片懒加载实现
css 垂直居中
CI/CD 流程
谈谈性能优化
个人评价
主要做混合 app 和 node 方向的工作,成长空间应该可以,公司环境也不错,薪资也算有诚意,不过因为是核心组,加班肯定不少。另外因为 p2p 行业原因,对这方面有顾虑的也要好好考虑下。最后再要说一点的就是,地理位置太偏僻了。。下地铁后还要坐 4 站左右的公交吧。
天壤智能(过)
一面
react 生命周期
key 的作用
hooks
vue 和 react 区别,选型考虑
canvas 优化绘制性能
webpack 性能优化手段
事件循环
如何解决同步调用代码耗时太高的问题
手写 Promise 实现
二面
场景题:如何实现登录功能
聊项目
三面
聊项目
个人评价
一家做人工智能的创业公司,好像已经有落地场景并实现盈利了。个人感觉真的挺不错的,工作时间 975,hr 和面试官都很有诚意,薪资也不错,如果不是很看重平台的前端都可以考虑一下,大概会接触到一些可视化相关的工作,唯一不足的就是前端团队目前比较小。
拼多多(过)
一面
Promise 实现原理
vue 组件间通信
性能优化
vuex 数据流动过程
谈谈 css 预处理器机制
算法:Promise 串行
二面
CI/CD 整体流程
性能优化
SSR 对性能优化的提升在哪里
怼项目
个人评价
这个应该都比较熟悉了,纯正 996。996icu 还是从我做起,我就面着玩玩,不过有一说一,薪资开得确实大方,我随口说了个数都没有犹豫就答应了,也算是提供给了实在缺钱或者重视钱的程序员用命换钱的一种选择吧。
猫眼电影(过)
一面
vue 组件间通信
react 和 vue 更新机制的区别
Vue3 proxy 的优劣
性能优化
symbol 应用
深拷贝
怼项目
二面
dns 解析流程
怼项目
个人评价
中规中矩的公司,加班属于正常互联网范围,上海这一块因为负责演唱会票务的相对来说紧急加班会多一些,薪资正常。
米哈游(过)
一面
跨域
性能优化
vue 和 react 选型和比较
ssr 优缺点
贝塞尔曲线
怼项目
个人评价
只有一面。可能是我之前的工作内容刚好对上了这个项目组需要吧。我个人很喜欢的一家公司,创始人的理念和风格蛮对我胃口的,然后工作环境也不错,二刺螈这种,加班不多,在里面的员工工作幸福度好像都挺高的,唯一的遗憾就是薪资开得太低了,期望薪资的底线。为爱发电不容易,虽然钱不是主要问题,主要还是感觉没被重视。
bilibili(过)
一面
Vue3 proxy 优缺点
ES6 特性
Vue 组件间通信
性能优化
ssr 性能优化,node 中间层细节处理
问项目
二面
这一面比较特别,和之前的面试都不太一样,是知乎早已关注很久的之昊老师面的。之前的面试大概是属于主导权在我这边,面试官倾听的比较多,搭配上少量提问。而这一面基本全程处于被之昊老师教育加吊打的状态,感觉之昊老师说的话比我还多了,针对问出的每个点会在我回答的基础上做更多的延伸说明,没有局限到具体的技术方案或者细节代码,更多的是谈到了一些方法论或者说作为一个优秀的开发者面对一些问题时比编码更高的思维层面上的处理方式。收获很大,聊到了很多之前工作中都没有考虑过的东西。这就是大佬的世界吗.jpg。
个人评价
各方面都很喜欢了。要说我转行前端的契机其实和 b 站有关,大学时候算是个 mader,做着好玩,可以简单理解为动画剪辑视频吧,里面大概会接触到一些 motion graphics 的知识,前端的动效就可以看做最简单的 motion graphics,同时 AE 里面也会涉及到表达式知识,这玩意的语法也就是基于 JS 的。通过这个爱好,就了解到了前端这个工作方向自然而然就转过来了,所以可以说 b 站影响了我的职业方向,对 b 站还是有特殊的情怀在的。虽然最近随着发展壮大,由 ACG 社区变为一个各种内容都有的社区,风评也是有各方面的声音吧,不过不进来看看我肯定是不会死心的。。然后除了情怀之外,工作内容,工作时间,环境,待遇都满符合我期望的,主站这套架构也有 dalao 在知乎写过分享文章,基于 vue 做的 ssr,绝对属于赶潮流各种东西都能折腾的水平,跟着之昊老师做事待遇少点我也愿意啊,关键是待遇也绝对不算少,所以我就接这个 offer 了。再见各位,我去二刺螈了.jpg。
阅文(面试中)
一面
如何编写 loaders 和 plugins
性能优化
webpack 热更新原理
vue 和 react 组件通信
谈谈 eleme 框架源码
谈谈项目
个人兴趣爱好
个人评价
阅文也是我一直很喜欢的公司,张鑫旭 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 我对魔都前端状况的一个观察了,希望各位都能找到合适的工作啦~
热 文 推 荐
你也“在看”吗?