面试之2025从外包跳槽甲方,历时近三个月,BOSS上1910个沟通、353次简历发送、21场面试,通过9家,最终选18K的offer,最高涨幅26.7%

449 阅读16分钟

前言

  • 笔者的一个好友(女生),学历普通一本,非科班出身,在国内一家大型外包公司上班
  • 因迟迟无法转正成为正式甲方员工(当初入职的时候承诺,有一定的几率转正成为甲方员工)
  • 且在这家公司认真工作了三年多了,三年只涨工资500块钱
  • 遂在六月份开始准备跳槽去甲方
  • 历时将近三个月,总算是在8月底拿到了自己满意的offer
  • 一共是通过了9家的面试,其中有6家是外包公司(练手的面试)
  • 当然,外包的公司,在通过后,没有接对方的offer,以免耽误对方招聘
  • 拿到了三个甲方的offer,分别是17.8K、18K、19K(她当前是15K)
  • 最终她选择去了18K的这家公司(17.8K的公司HR说可能会有大小周的情况、19K的公司是初创型公司应该会稍微辛苦一些)
  • 特此分享其面试过程中的一些细节
1910.png 353.png

感谢她提供的文章素材,涉及到个人隐私,简历和offer文章不展示

在职跳槽——平衡面试安排

  • 首先,她因为是在职状态,不方便频繁请假
  • 所以,尽量是和面试官沟通,电话面试+视频面试
  • 能不去对方公司,就不去对方公司
  • 实在是必须去现场的时候,才会调休请假下午半天动身前往
  • 且,会在这个下午半天,提前协调好公司面试时间,规划好路线
  • 风驰电掣般面试至少两家公司,将效率提到最高
  • 面试中录音,面试后及时复盘
  • 针对于面试中,遇到的自己不会的问题,当天就争取将其研究明白
  • 用她的话说,面试也是学习,查漏补缺的过程

面试策略——从外包公司练手开始

  • 笔者朋友因为三年多面试了,所以,简历还是以往老旧的版本(主Vue副React)
  • 在花费了一周多,更新简历项目后
  • 于是,从外包开始练手(找面试感觉)
  • 在面试的过程中,再适当去优化完善自己的简历内容
  • 经过六月份的前期练手后
  • 在七月上旬,感觉到自己练手工作已经完成的差不多了
  • 于是,便开始投递甲方公司(部分公司的招聘流程有些长...)
  • 经过一轮、二轮、三轮甚至还有四轮面试(听老板讲未来公司发展前景...)
  • 最终,拿到offer选择觉得合适自己的公司入职

面试中,印象深刻的几个问题

问题一:一个数据加工后端说是前端做,前端说是后端做,你如何沟通

  • 笔者朋友的回答是:如果后端时间多一些,就商量让后端加工,如果前端时间充足,就前端干
  • 面试官:要做好开发规范,你不要当一个老好人,啥活都往自身上揽,所有数据加工的操作,都要尽可能让后端操作。比如,菜单的树结构数据,后端数据库存储的是一条又一条数据,通过parentId去关联子节点,后端还是应该要加工好一个树结构的数据返回给前端的,不能说让前端加工。

笔者朋友连连点头,内心吐槽,后端要是不好商量,不听也没办法呀,加工的活还是得有人干呀

问题二:有一个需求很紧急,加班也干不完,你如何处理

  • 笔者朋友的回答是:评估具体需要延期多久,尽可能赶一赶加加班,把延期部分的需求,延期上线,已经做完的需求先上线,若是这一版本啥都不上线,的确不太合适
  • 面试官:你思考的重点应该是为何会出现很紧急的需求,加班也干不完的情况,不要本末倒置

笔者朋友连连点头,内心吐槽,前端开发人微言轻,产品硬塞一个需求,也只能尽可能赶一赶咯

问题三:你是什么星座?

  • 笔者朋友有些懵...
  • 面试官:比如双鱼座的人,性格就有些脆弱,抗压能力就不行

笔者朋友连连点头,内心吐槽,星座命格真的靠谱吗?要不要来点占卜?(面试官是一个女生)

问题四:如果你接手的项目写的很烂,这种情况下你会如何处理?

  • 笔者朋友的回答是:首要是保证项目正常运行,新需求,尽量规范起来,往事不谏,来者可追
  • 面试官:你要尽量想办法,把烂代码变成高可用的代码,要胆大心细,去优化完善这些烂代码,这样才能体现你的价值

笔者朋友连连点头,内心吐槽,诗山代码上雕花吗?这...


话不多说,以下是她遇到的部分面试题,大家参照一下,看看是否都会,都能回答上来

面试题

一号面试

  • 预览功能,用的是什么技术?前端怎么实现?怎么不让后端实现
  • 大文件上传用的哪个库?还有其它包吗?是怎么实现说思路?
  • 自动化脚本写过吗?怎么实现的?
  • 如何处理git回退版本的情况?
  • Vue2和Vue3的区别?了解过她们的diff算法区别吗?
  • JS和TS的区别?
  • Vue3模板语法和JSX哪个性能更好一点?
  • nodejs的express框架,简单介绍一下
  • Vue里面的指令
  • Vue组件通信方式
  • Vuex或者pinia说一下数据的流转方式
  • Vue2的时候有遇到什么问题,怎么解决的?-->最近项目中遇到什么问题,怎么解决的
  • 写React用的函数式,常用的hooks都说一下
  • Webpack和Vite的区别
  • Webpack项目大了,包大了,冷启动和热更新慢了,有什么方案?
  • Vite的缺点,技术选型的时候都得考虑
  • 微前端用的乾坤?父应用和子应用如何通信?iframe通信如何实现的?
  • nginx里面有哪些API?
  • nginx的应用场景
  • node里面如何新开一个线程?主线程和子线程是怎么通信的?
  • js数据基础类型?Map和对象有什么区别?
  • 如何判断数据类型?
  • “==和===的区别”
  • 隐式转换的东西
  • 项目平时是怎么管理的?
  • revert 和 reset的区别
  • --host和--hard的区别
  • 说说git的stash
  • Webpack配置哪些东西?从0到1配置哪些东西

二号面试

  • 简单的讲一下,技术上自己的优势,作为前端的开发自己的特长和优势
  • 开发任务时候怎么样的思考模式
  • 这个思考方式的优势是什么?
  • 期望的环境和团队
  • 第一个项目周期,时长,在项目中的工作和角色
  • 数据加载这个难点,是怎么去想到这个问题的,
  • 技术上怎么去实现触底加载的功能的,逻辑怎么实现的
  • 这个项目整体结束后,学到了什么,自己有什么成长
  • 介绍一个曾经做过的项目
  • 加载慢,为什么慢?如何分析,你的分析手段是啥?
  • 现在会如何去优化小程序
  • css3的一些特性
  • flex布局实现哪些功能上,结合具体的项目去介绍
  • 自适应用到哪些技术点
  • 项目开发中常见的ES6的语法
  • ES6深拷贝
  • 你自身还有什么不足
  • 你的职业规划,
  • 最近研究的问题
  • RBAC,了解到其它的角色模式吗
  • promise.all
  • 对数字孪生的了解,就是大屏
  • 我的问题
  • 良好的编码习惯,code review咋做的

三号面试

  • 介绍一个你的项目,挑一个你认为是自己做的比较复杂的,详细讲一下用到的技术栈、遇到的问题及如何解决的
  • 刚刚提到的文件预览的难点在哪里
  • 打开美团APP看首页,你从前端开发的角度,你认为可以封装的组件有哪些?
  • 美团购物车这个页面,组件会怎么设计?
  • 组件中消息传递如何设计?
  • 现在开发一个管理系统,系统中会用到表格展示数据,不同页面需求有差异,有的要排序,有的要可选,列配置不同,自定义单元格渲染,你如何设计一个可复用组件满足这些需求?
  • 实际项目中,有没有处理过这种表格组件业务逻辑解耦
  • 有做过优化吗?(性能优化)
  • eachrts提供的渲染模式有哪几种?
  • 项目中有遇到跨域的问题吗?如何解决?
  • 详细讲一下,从浏览器接收到html到完成渲染的过程
  • 如何控制缓存
  • 你的优势是啥
  • 短板和长板
  • 一个数据加工后端说是前端做,前端说是后端做,你如何沟通
  • 有一个需求很紧急,加班也干不完,你如何处理

四号面试

  • 做过这么多项目,挑一个你觉得自己做的比较好的项目讲解一下
  • 谈谈你对大模型的理解
  • 现在有一个数字人功能,你的思路是啥
  • package.json生命周期
  • vite插件开发过吗?
  • webpack构建有很多过程,你认为你写的这个loader是在什么时机执行的?
  • webpack执行过程知道吗?
  • 你项目中远程大数据下拉框 的触底加载是如何实现的?触底加载的三个高度,你记得是它们的关系吗?
  • 触底加载除了滚动条监听,还有其它方法吗?
  • Vue2和Vue3的区别?
  • 说一下Vue2的mixin
  • mixin中属性方法和组件内属性方法冲突,如何处理?
  • mixin中生命周期和组件内生命周期冲突,如何处理?
  • mixin在Vue3中怎么用?
  • ElementPlus的tree组件,如果让你去设计,你会如何设计?
  • 给你一个tree的数据结构,深度不知道,渲染出来,渲染过程如何实现?
  • dfs和bfs
  • 三栏布局,左右两边固定,中间自适应,如何实现?
  • 用flex:1,那两边宽度大,内容较少,中间宽度小,但内容较多,会出现什么情况?
  • 除了flex可以实现,还有用别的方式实现吗?
  • 定位,A元素相对窗口绝对定位,A元素有子集B也是绝对定位,子集B最后是相对于 谁 定位的?

五号面试

  • 自我介绍和最近1-2个核心项目担任的角色和职责
  • 我的问题偏原理和概念比较多,你的回答可以多偏向这个方面。
  • Vue3的响应式系统是怎么工作的,和Vue2的区别是什么?
  • Vue组件间的通信方式有哪些?
  • Vue里面虚拟DOM是什么?
  • Vue项目做性能优化主要关注哪些点或者说怎么做?
  • Vue中ref和reactive有什么区别?
  • Vue中的key属性的作用是什么?
  • 封装过哪些组件,介绍一下有亮点的组件
  • Vue组件的懒加载是怎么做的
  • Vue第一次进入页面会触发哪几个生命周期
  • 介绍一下插槽的类型和作用
  • 计算属性和watch的区别和应用场景是什么?
  • Vue中路由实现hash和history模式的区别介绍一下
  • 介绍一下Vue-Router的跳转是怎么跳的
  • 介绍一下Keep-alive是干嘛的,使用场景是什么?
  • Vue双向绑定的原理
  • 在复杂系统里面,讲一下状态管理方案和思路
  • Vue的代码分割做过吗?大概介绍一下
  • 代码分割的目的是什么?
  • 我们这次对前端的标准化构建要求比较高,项目从开始到落地整个前端工作过程中,对标准化,工程化,流程化有要求的话,你觉得要注意的关键点有哪些?

六号面试

  • 第一份工作2年的时间做的是什么项目呢?
  • 为什么从第一家公司离开呢?
  • 任选一个你的项目介绍一下,说你自己做的部分
  • 你做的效能开发工具,后面有评估节省了多少时间吗?
  • 你为什么想要从现在这家公司离职
  • 这三年你有学新的东西吗?当前公司
  • 你做的最大的项目简单介绍一下
  • 你想找一个什么样的工作?
  • 项目中要和产品,UI,后端配合,你认为哪一个岗位最好沟通,哪一个最难沟通?
  • 你做过这么多种类的项目,你个人更喜欢哪一类的项目?
  • 你是什么星座?
  • 如果项目上线前,发现一个非技术问题,比如说一个重要流程没考虑到,时间又很紧,你会怎么处理?
  • 团队如果有人对你的技术选型有不同的意见,你怎么沟通和处理?
  • 你是非计算机转行过来的,你这个背景有没有给你带来独特的视角?
  • 你认为你现在跟入行时候有什么区别?
  • 你认为你身上有你团队人员喜欢和信赖的点是什么?

七号面试

  • 目前在职还是离职?
  • 选一个你的项目讲一下背景,功能,你负责的模块,遇到过哪些难点和问题,如何解决的?
  • 为什么要把文件给到后端,让后端去存minio,为什么不直接从前端往minio里面存呢?
  • 请求失败重试如何实现
  • 请求并发,和请求顺序控制
  • 讲一下xx项目的性能优化
  • 雪碧图,具体怎么实现,具体css代码是啥
  • 缓存到底是存在那个地方?
  • memory cache 和 disk cache
  • 用户看到A屏幕时,有没有什么办法把后面B屏和C屏的内容加载?
  • 强水印功能如何实现的?这个API换个IE浏览器可能就失效了,有什么方案解决吗?
  • nodejs可以做后台服务器,做过哪些服务?
  • 接手老项目,封装requet请求就是http请求的包,在项目中有一层封装叫request.js,request.js中使用axios的包做http请求,你有一个新功能,有一个接口超时时间长,超过10s,老代码里面默认全局超时是10s,新功能受限,会报错超时,需要你把request.js再次封装,达到2个目的, 1、不指定超时时间时,超时时间默认10s 2、需要指定时间时,超时时间为20s 如何封装这个request.js实现这个功能
  • 有5000支股票,每3秒从中挑选出2000支股票的数据实时刷新页面,如何才能快速筛选。
  • 现在 让你重构一个项目,你的策略有哪些?

八号面试

  • 中间层了解过吗
  • 有处理过大模型数据不是一次性返回的的吗?流式返回数据了解过吗
  • 大文件分片上传怎么处理的?
  • 讲一下你写的这个效能工具
  • Vue3和Vue2的区别
  • 为什么Vite比Webpack快?
  • 你写的这个自定义loader为什么要这么做?
  • 你项目中做了哪些性能优化?
  • 你的虚拟列表是怎么处理的?
  • CSS一般是怎么写的?用到过tailwind吗?
  • 若依框架是用的全部,还是只用的前端?了解过它登录时的加密算法吗?
  • Vue3的Watch和WatchEffect的区别
  • Vue3的组件通信方式有哪些?
  • Pinia相对Vuex好在哪些地方?
  • TS用的多吗?
  • 模板编译原理了解过吗?源码看过吗?
  • 页面中有并发请求,是怎么处理的?
  • 有做请求的队列方式吗?
  • 对ElementPlus有封装过组件吗?
  • 通用的组件,是从一个项目copy到另一个项目吗?
  • 除了若依框架,还用过其它的成熟框架吗?
  • 谈谈你对低代码平台的理解
  • 谈谈你对0代码平台的理解

九号面试

  • 项目工作情况,个人优势,先介绍一下
  • 有用过流程引擎,表单引擎吗?
  • 你做过的大一点的项目的人员配比
  • 项目的工作流程
  • 个人作品有吗?
  • 为什么要离职?
  • 现在公司加班多不多?
  • 原生js实现lcp
  • 写一个冒泡排序,还有别的排序方式吗
  • react路由、redux
  • 函数式组件和类组件
  • react和vue涉及的理念,谈谈
  • 谈谈你对于技术选型的理解
  • 你的组员对于某个技术选型有着不同的理解,你如何安排协调沟通
  • 你有产品思维吗?或者说前端应该涉足产品设计吗?
  • 前端应该涉足后端设计吗
  • 你会自测吗?你如何把控代码质量
  • 是什么完美的没有任何bug的性能高效的废代码?
  • 谈谈对面试百度编程的理解
  • 接触的项目都是从0到1还是半路接手的?
  • 半途接手项目,如何快速熟悉项目,做开发任务?
  • 如果你接手的项目写的很烂,这种情况下你会如何处理?

十号面试

  • 数据data为什么是一个function
  • 用过mixin吗?
  • vue3的setup和create先执行?
  • 介绍封装组件
  • 说说插槽的使用场景
  • 大文件上传你是如何实现的?
  • 文件预览组件你是如何实现的?
  • vue3组件通信,$attr是如何使用的?父组件访问子组件的一些方法啥的,需要什么条件?
  • v-model实现原理
  • ref和reactive区别,从底层原理说下
  • v-if和v-show的区别
  • 三次握手为什么要比四次挥手少一次
  • 浏览器输入url发生了什么
  • 状态码说一下,工作中具体遇到的状态码
  • 项目发布使用docker吗
  • 说一下链表的具体应用场景
  • 你刷了多少道算法题?算法场景题
  • 手写一个深度克隆
  • 比较两个对象是否相等
  • 为何有闭包这个东西,它解决了什么问题
  • 你如何看待加班?
  • 你有什么想要问我的吗?

好友的总结

以下,来自笔者好友的总结

  • 面试中,时有沮丧,失落,时而我又可以了。

  • 但是!!

  • 每天坚持学习,你可以打败10%的人,

  • 每天坚持投递,你又打败10%的人,

  • 每场面试录音回顾,你又打败20%的人,

  • 你坚持动作一个月,你又打败10%的人。

  • 你已经打败一半的人啦!!!

  • 好的面试官,确确实实使人如沐春风。

  • 好的面试,录音反复听,让人回味无穷,且温故而知新。

  • 感谢给面试机会的公司,面试中愿意解释,愿意引导的面试官!!