| 12 min read

由于公司年前的一些战略调整,和自己预感公司路线的担忧,自己也不得不提前准备一些后路,这期间陆续面试了头条,西瓜视频这边,支付宝公益这边和猿辅导这块。这次和三年前的职业变更,leetcode 刷了一些,但是其实也没刷多少,至少面头条的时候,也只是刷了少数 easy / medium 和那些后端相比少了很多。

然后就是特别推荐这个技术图,去准备复习的知识点:

现代前端技术知识体系

这期间,还有就是对自己特别模糊记忆不清楚的一定记笔记,这期间自己 Evernote 也不断誊抄“答案” 也有 32篇左右,主要还是需要不断加强记忆,尤其面试前。

简单说下三家的各自经历吧。

字节跳动-视频架构

这个大概是十一月面的,这个时候离职意愿还没有那么强烈,而是帮助前同事去完成一个内推名额。打心底,我觉得头条加班多,以及江湖一些小恩怨,我不太偏向去。不过面试还是认认真真的准备,听闻面试很难,加上自己本身是偏 Engineering (Production > Science)多点那种, 所以感觉跪的概率还是比较大。

大概一面是交叉面,是在头条的海淀总部那边,是安全的前端小哥,感觉年龄很年轻(我前同事说她去头条最大感觉就是小鲜肉太多了)。一面纯粹是基础面试题,涉及 JS 的非常多,大概题目我后面记录了下:

  • JS 的基本数据类型?

  • 引用类型是什么?

  • ES6 Symbol 是什么,用在什么地方?

  • 最满意的项目,学到了什么?

  • 题目1

  • 题目2
  • 实现函数防抖或者截流的任意一个?

  • 使用 ES5 实现原型链继承?

  • 算法题目

  • 统计一个字符串出现次数最大的字符,并且获取出现频率 比如 "accdddccaaaaa" 答案 "a” 6

总的来说,一面还是比较快,40-50分钟就完成了,全部都是偏 JS 的题目,大概面完后八点半去了另外一个地方,开车去的,是另外一个办公地点。

二面是未来同部门同事(也很年轻,给我们这些老人一些生路把)面试的,问了也是巨多的问题,涉及到了项目和视频这块,大概聊了一个多快一个半小时了。也要求手写代码,和思路总结这些。

  • var vs const ? 什么是变量提升?
  • 平时学习的途径有哪些?会看什么样的书籍?
  • Object.defineProperty() 里面,可以设置哪些属性,分别代表什么意思? 实际场景有哪些用到了
  • 手写 实现 JS 单例模式和订阅模式(EventMitter)
  • 手写,使用 Promise 实现任务队列发送请求,实现最大请求数目限制任务?
  • 如何实现无缝切换分辨率?
  • HLS 播放,dts 出错,有什么解决方案没有?
  • 如何解决画面音频不同步的问题?
  • H.264 里面 I 帧,B 帧 P 帧,代表什么? IDR 帧代表什么?
  • H.265 的解决方案有哪些
  • 算法 找到连续某个字符串中不重复的最大子字符, 类似 “acdeadea” => “acde” leetCode 上的题目
  • 如何克服跨域问题,常见的跨域手段有哪些?
  • HTTPS 的工作原理,证书机制有什么好处?
  • 如何推进前端和后端需要配合的项目?
  • WebVR 底层原理是,播放器架构是怎样的?

二面问的问题也非常多,涉及到前端基础和项目设计的问题,然后感觉那天精神状态特别好,很多问题思路都比较不错,然后感觉对面的小哥也非常好奇我得项目经历,彼此项目交集还是比较多,他也觉得有些思路之前项目没有用到过。差不多从8点40多面到10点二十左右,然后就叫前同事下班走了。

三面在隔了两天通知了,面试的是这边前端总负责人,问了一些关于简历和意愿的一些问题:

  • 个人职业发展的经历?说出感觉印象最深的项目?

自己答的是一个 Canvas 粒子动画和现在整体播放的优化这块。

然后面试官又根据这些项目问了一些实现细节,关于代码设计和一些特性原理这块。

总之三面就是一些项目经历的总结,类似 PPT 展示这样子,要说服下面的观众,觉得你做的事情还是很有意义的。

差不多三十分钟左右,又叫坐车去头条总部那边,应该就是 HR 面试了。当然 HR 就是一些常规的问题,然后和个人一些发展预期。其中我个人认为失败感最强的时间段,个人恰好说到了现在,感觉身边都是牛人,为什么项目最后推进一直那么顺利,和创业的不可预知因素的无奈等等。

头条的总体流程还是很快的,隔了周末, offer 开始沟通,整体 Package 感觉头条确实给力,但是自己还是觉得自己创业这块还有希望,加上不太想加班哈哈哈,只能婉拒了。

支付宝 - 公益

后面前部门关系比较好的 TL 把简历推给了支付宝这边,北京三环总部那边,支付宝公益也就是种树,春节红包这边,这块项目吸引力确实足够。

一面是周六上午,人很 Nice 说周六上午过来面试也行,他也刚好过来加班。一面主要是问了下近况,和项目这些,然后就是一轮笔试题目,一面应该是未来一起共事的同事。

  • Sticky Footer 布局,内容增加,但是 Footer 始终在页面底部
  • 给页面所有 Class 名称为 item 的元素绑定 click 事件;

  • 代码阅读

差不多,写完之后,又闲聊了这边支付宝的整体情况,后面就走了。

过了差不多几天,周三下午收到面试通过,准备二面,面试是远程电话,上海团队的交叉面试。二面技术基础的问的比较少,还是主要问项目,和项目的产品参与度?

  • 说说过去一年做的比较重要的项目?

  • 性能优化的具体实践,如何解决页面卡和慢的问题?

  • 优化的数据对比是怎样的?上线后数据是怎样的?(这里面试官察觉出自己产品嗅觉不是很敏感)

  • VR 图片是怎么优化的?线上转码系统是怎样工作的?

  • 播放稳定性的埋点是怎样的?

  • 线下产品的重要指标有哪些,技术会关系到哪些?

当然差不多二面聊了45分钟,由于在地铁站面试的,感觉交流不是那么顺利,不过好在后面还是通知了三面四面的安排。也加了二面的微信,觉得未来如果来上海可以交流哈哈哈。

过了差不多一周左右时间,因为当时人去云南了,一直等回帝都,才能面试。三面四面是一起面试的,也是电话面试,三面结束没多久,就面试了四面。

他们也是问了一些项目上的问题,其中四面面试官比较牛?开篇就是像我这种经验的人,先给20分钟吹牛,然后他再问20分钟问题?

然后就 balabala 说了20多分钟,然后提了关于 PWA 缓存利用,和 Prefetch 包括 Local DNS 和阿里云 CDN 热源的问题,有一些是关于架构层面的内容,涉及到整个集群的服务利用等,总之问的非常多关于链路的内容,然后又问了 H.265 解决思路和优化怎么做的,以及同步音画等问题。感觉四面最后一面还是暴露了一些架构上的确实,和所谓知识广度问题。

过了三天,通知 HR 面试,见到了 HR 和 前端组负责人,沟通了职业经历,和不稳定性。HR 也大致聊了个人意愿和发展预期,差不多很快两个人也就聊了40多分钟就结束了,然后在国贸那边吃了汉堡王,感觉阿里这面试流程真的算是比较长(虽然很早就知道),由于那个时候双十二和红包活动,过了十天左右,HR 才通知 Offer 申请下来,进行双向沟通,这里就是涉及特别重要的个人发展问题。我个人如果偏 Web 多媒体的话,可能那边短期是不会有个方向的,但是后期肯定会有,还有就是薪资上,不会去和头条 Match ,看个人抉择。我觉得这边 HR 还是很 Nice 说足了自己的一些不足,包括所谓“宽度“ 和 业务思维这些问题,强调这个时间点是不是最好的时候回归阿里这样的。当然最后,自己还是断了这个 Offer。一个是自己觉得业务兴趣问题,也包括整个薪资打底的问题。

猿辅导

其实猿辅导也是年后自己公司进行团队调整和疫情薪资调整,包括更严重的 Streaming 流量控制的原因,自己接触了这边。面试流程很快,由于在家办公,猿辅导是在牛客网上面试,一二轮都是交叉面试(是因为面试人员紧张),问的问题也都还是非常基础:

  • 函数防抖/截流
  • Event Loop 代码题目
  • 算法,二分查找
  • Promise All
  • Object.Proxy
  • ES6 的一些新特性
  • 箭头函数
  • 继承

其中算法问了关于树的,左视树,输出左边看到的节点。

总的来说每一轮都控制在 45 分钟左右,随后就是部门 TL 的三面,聊了项目上的一些,也涉及了团队方面的一些问题,包括规范,执行等。由于项目问题已经被问了太多次,自己是真的回答的滚瓜乱熟了。大概隔了两天,HR 面试确认个人发展预期,然后和前端负责人双向沟通,大概也就是现任 TL ,给的建议,建议我从技术广度去发展,不要局限某个领域的深度扩展,这边也给予人员管理的期望,希望可以共建专业的前端团队等。

总的来说这三家公司各有特点,从个人角度看,也是暴露了自己整个前几年过于专注的问题,整个思维的广度有所欠缺,和前TL聊的时候,他给的建议,就是要学会讲故事的能力,说白了技术基础,是个人稍微多努力点,多记忆点,都好通过,到更高纬度去思考和项目分析,这种是实战和总结的。感觉的确离那个目标还是有一定距离,总之大家在平时学习积累中,总结和思考一定要有,还有就是在职业发展后期,一定要强调个人的业务联动能力,学会去把项目的整体流程把控起来,说白了技术基础决定你拥有现在的饭碗,个人综合能力(技术能力哦,产品能力,逻辑思维能力,沟通能力)决定你在市场的整体定位。

最后猿辅导也有大量 前端HC 内推可以找博主,邮箱 760341479@qq.com

封面 @Zaib Ali

You Can Speak "Hi" to Me in Those Ways