十月中旬的时候,朋友问我要不要去他们那试一试,因为他们比较着急,所以就突击准备了一两周的时间,就开始面试了,最后拿下了蚂蚁和字节的offer。想把最近一段时间的经历写下来,做一个分享。
需要准备的内容
对于我来说,需要准备的内容分为四大块:前端基础、算法、项目亮点、HR面准备问题(可以等三面过了再准备)。
-
前端基础:在去年底 ~ 今年前年,自己有准备过一些前端的基础知识,并且写成了一个专栏。
-
算法:去年有大概6个月的时间,把leetcode hot 100都刷了一遍,并且每题都写了一下解题思路。
-
项目亮点:项目亮点确实得靠平时的积累,个人觉得是个机遇的问题。
-
HR面准备:一些比较常问的问题,需要提前想好。
准备的过程
前端基础部分
按照一位大佬的八股复习和前端知识点,结合自己的专栏重新梳理了一下知识点,画了一张脑图,大概用了一周时间。
算法部分
利用坐地铁的碎片化时间,将之前的算法题都复习了一两遍(主要看一下之前刷过题的思路)。然后利用晚上的下班时间,把所有重点的题目都重新做了一遍。
项目部分
项目准备,把自己简历上的项目按照以下的模板来准备(切记不要问一答一)。
模板:为什么要做?遇到了什么问题,什么痛点 怎么做?技术选型,方案设计,关键时间节点(roadmap),遇到的问题如何解决 最终的结果?提效,关键数据指标。
举个例子: APM监控平台这个项目的背景是由于我们前端页面在线上的运行状况感知很弱,遇到问题通过客服或者业务同学反馈对我们来说很被动,并且我们公司现在对于线上问题的响应时间和问题的主动发现率有一定的考核要求。因此我们希望通过APM监控平台在页面报错的时候第一时间发现问题,并且对于前端页面在线上的运行状况有一个很好的感知。我们大概分一下几点来做:
- 在页面中接入监控的sdk对错误、性能指标进行实时上报
- 使用定时任务对上报的错误信息进行汇总统计,超过阈值的话会在群里告警@到指定的人
- 引入健康分的机制,对所有线上项目的健康分进行通晒
最终我们通过这套APM监控和打分机制,把我们的js报错率从20.9%降低到了8%,lcp的优秀率从91%上升到了95%。并且主动发现10多起线上问题,做到了快速定位快速修复。对于我们APM的后续计划,有以下几点:
- 降低无效告警数。从上半年的统计数据来看,总共告警了400多次,真实发生问题的只有10~20个。要提高这个比例(网络异常、单用户异常)
- 添加一个对单用户的异常追踪能力(根据行为埋点、后端elk的接口)
HR面
HR面准备的问题,hr的问题网上很多都能搜到,你可以自己先准备一下,然后发给你的小伙伴看看,有没有不妥的地方,有的话修改一下
蚂蚁面经
蚂蚁一面
- 简单介绍一下营销活动的类型,以及这些营销活动的挑战是什么?
- 对于多机型是怎么进行做到兼容的?
- 营销活动页面性能应该是很重要的,在性能方面是怎么做保障的?
- 对页面的性能怎么做优化的?
- 懒加载是怎么做的?路由级别还是组件级别的?
- 假设做到一个组件级别的懒加载要怎么做?
- 提到了Webpack5,Webpack中的MF是什么?相比于npm包有什么区别?
- React常用的一些hooks,useEffect、useLayoutEffect这两个API有什么区别?
- React中父组件想调用子组件的方法,怎么使用?
- React的fiber架构,了解它的底层逻辑吗?
- 除了React fiber是可中断的?fiber 还有其他新的优势吗?
- React在使用的过程中有沉淀一些最佳实践吗?比如useCallback的最佳实践?
- React hooks的闭包陷阱是怎么回事?
- 讲一下营销工具从0到1的背景?是你自己推动的吗?
- 组件支持嵌套吗?
- 图片上画热区,让你实现一下你要怎么做?
- 用户在你们平台配置完之后,点击发布,需要做一下构建吗?
- 这算是一个中心化的页面,组件比较多,而且都是写在一个页面上,风险比较大?
- 广告系统的重构,我看没有什么技术上的东西,怎么说服产品的?
- APM监控和你的核心链路听起来差不多,有什么区别?
- source-map的解析的工作怎么做的?
- 健康分比较感兴趣,有哪些维度,怎么定的?
- 你们的工程化是怎么做的,前端构建工具还是webpack吗?有考虑过vite吗?
- 你在你们公司负责了哪些技术建设?
- React SSR做的怎么样?达到预期的效果了吗?
- SSR 相对于 CSR,改造成SSR的成本
- 考虑新机会的原因?
蚂蚁二面
- 你现在是在职状态吗?
- 为什么看机会?
- 你的目标公司是怎么一个画像?
- 对自己的一个期许和发展方向
- 你在目前的职级是多少?
- 聊一下过往的绩效?做的比较好的点?
- 你自己比较欠缺的点是什么?
- 介绍一下APM的背景?接受的时候是什么情况?过程中有多少人参与?你负责的是哪一块?
- 技术上的难点?有没有可以拿出来聊的?
- source-map要和项目关联?怎么做的?
- source-map的接入成本较高怎么办?如果你动态更新了,如何通知用户?
- 假设让你去设计上报这个sdk,你怎么设计?
- 如何保证你的sdk,不影响业务,不阻断,不报错,无感知。
- 你的APM是监控平台如何做到报错了,还没来得及上报,用户就离开了
- 首屏加载时长如何获取?直接获取可能不准?
- 怎么去劫持AJAX?
- 假设我的sdk要在业务代码之后加载,但是业务代码中又调用了sdk的API怎么办?
- h5页面搭建工具当时是怎么分工的?
- 假设你的h5页面搭建平台要和组件的发布能力解耦,要怎么做?
- 场景题:假设一个组件没有版本号的概念,假设1.0和2.0版本的数据结构有差异,怎么解决?
- 当你的页面组件无限增加的话,怎么做?
蚂蚁三面
- 自我介绍
- 讲一讲三年多的经历,值得聊一聊的点
- APM这个项目的运营是怎么做的?为什么需要运营?
- APM这几个项目你做了多久?
- 特别想介绍这个项目的原因是什么?
- 能说点具体的吗?影响力啥的?
- APM从前端的角度对你来说有什么收获?
- 其他还有什么项目可以聊的吗?
- 你们会做一些内部系统的变更的监控吗?
- 你们整个技术团队的人?
- 你做的这个事情覆盖的人有多大?
- 项目的pv、uv有多少?
- 公司目前业务的市场占比?
- 商业的角度来考虑,你觉得这个行业是个好生意吗?
- 你们公司的产品经理和你们是怎么协作的?
- 设计团队的规模?
- 为什么离开现在的公司?
- 目前的公司加班严重吗?
- 来到一个大的平台,你希望从大平台的公司得到什么?
- 对新的工作有什么诉求吗?
蚂蚁四面
- 问一下大学的情况?
- 毕业校招拿到了哪些公司的offer?为什么当时选择了现在的公司?
- 为什么选择前端这个方向?
- 平时怎么学习的?
- 介绍一下你简历中的第一个项目?
- 项目都是你一个人做的吗?你负责了哪一块?
- 你觉得工作中比较有成就感的事情?
- 你在工作中遇到的比较大的一个阻力是什么?
- 你觉得你这三年多时间最大的成长发生在哪个阶段?是什么事情促成了你的成长吗?
- 评价一下你自己,你的优缺点?
- 假设碰到一个问题,你解决不了的话,会怎么处理?
- 最近的绩效?
- 在公司晋升了几次?
- 为什么之前给你好的绩效?做了什么事情?
- 有比较佩服的前端同学吗?
- 为什么选择看机会?
- 公司的加班情况怎么样?
总结
突击准备面试,还是比较累的,特别是还需要兼顾一下算法。但是突击的话也不是说准备两周就ok了,需要一些前期的积累,之后有想法的小伙伴,可以现在就准备起来!!!