Skip to content

腾讯前端面经 - 按部门经历分类

本文档按部门对腾讯前端面试经历进行分类整理,帮助候选人了解不同部门的面试特点和重点。


目录


WXG部门

部门介绍

基本信息

  • 全称:微信事业群(WeChat Group)
  • 总部:广州
  • 分部:深圳、成都(企业微信)、北京(微信分部,人少,主要做算法)
  • 特点:门槛高、hc少、年终奖多
  • 面试形式:统招统分,次年1月中下旬才能知道最终分配的部门
  • 分配规则:一般就是前几轮面试官所在的部门

面委制度

  • 全称:面试委员会
  • 组成:汇集了微信事业群很多技术大佬
  • 目的:为了保证wxg招聘的公平公正,严格把关每一个wxg的候选人
  • 其他事业群:不太清楚有没有面委会,但有的会有总监面,意思差不多

特殊情况

  • 今年如果投递腾讯的可以试试WXG,第一次开放1000+实习hc,是微信事业群史上最大规模的实习生招聘
  • 实习不限制年级,23届、24届的同学也可以申请
  • wxg对算法题要求比较高,推荐大家把CodeTop上边wxg的题目刷一遍
  • CodeTop:https://codetop.cc

WXG面试流程

标准流程(6轮)

  1. 一面:部门技术面(60min写代码,写完后电话交流)
  2. 二面:部门技术面(聊项目和实习)
  3. 三面:部门技术面(聊项目)
  4. 四面:面委一面(30min做题,写完腾讯会议交流)
  5. 五面:面委二面
  6. 六面:HR面

WXG失败案例

面试信息

  • 面试部门:WXG(微信小店团队)
  • 面试轮次:一面(直接挂)
  • 面试方式:电话面试
  • 面试时长:1小时20分钟(笔试题1小时+面试20分钟)
  • 主要业务:微信小店,包括售后、物流、客服等功能
  • 技术栈:小程序、Node.js、Vue都有涉及
  • 工作节奏:一般早上10点,晚上可能也是9点多、10点

面试特点

  • 一上来直接4道笔试题,时间1小时
  • 非常重视算法能力,是硬性要求
  • 要求尽量用效率更高的方法解题

笔试题目(一小时)

  1. 题目1:三数之和的变形题
  2. 题目2:组合问题
  3. 题目3:图相关的题目
  4. 题目4:打家劫舍 III(动态规划)

面试官反馈

  • 做了一个小时20分钟左右,面试官问了每一道题的思路和想法
  • 第一轮面试主要就是考察算法的基础能力
  • 倒不是说在日常工作中需要直接用到算法
  • 这是数据结构里面最基础的算法
  • 考察的是在日常代码里面,有一些算法思维在里面
  • 当你知道怎么去评估时间复杂度,以及怎么用算法思维解决日常代码遇到的问题后,写出来的代码效率会更高,会高很多,有时候是数量级的提升
  • 这个在性能优化方面其实是比较有优势的
  • 所以这4道题在我们看来都是考基础能力
  • 目前看来跟要求还是有一定差距的

面试总结

  • 难度等级:⭐⭐⭐⭐⭐(极高)
  • 挂掉原因:算法能力不足
  • 准备建议:重点刷LeetCode,特别是动态规划、图、树相关题目

WXG成功案例(6轮)

面试信息

  • 面试部门:WXG开平(开发平台基础部)小程序中心
  • 面试轮次:6轮 = 3轮部门技术面 + 2轮面委面 + 1轮HR面
  • 面试结果:拿到Offer
  • 作者背景:前端小哥,秋招拿下BATTM等10家大厂offer

一面(部门技术面)

  • 时长:60min写代码,写完后电话交流
题目1:数组扁平化

实现一个函数,接受数组作为参数,数组元素为整数或者数组(数组里面还可能有数组),函数返回扁平化后的数组。要求给出不使用递归、不使用字符串处理的解法

javascript
// 输入:[1, [2, [ [3, 4], 5, []], 6]]
// 输出:[1, 2, 3, 4, 5, 6]
题目2:循环升序数组查找

假设有一个升序数组,经过不确定长度的偏移,得到一个新的数组,我们称为循环升序数组。(例:[0,3,4,6,7] 可能变成 [6,7,0,3,4])。给定一个数字和一个循环升序数组,判断这个数字是否在这个数组内,在的话返回 true,否则返回 false。要求时间复杂度 O(logN)

javascript
// 示例1:
// 输入:nums = [6,7,0,3,4], target = 0
// 输出:true

// 示例2:
// 输入:nums = [6,7,0,3,4], target = 2
// 输出:false
题目3:并发请求测试

设计一个函数,用于测试请求一个 URL 的平均耗时。要求可以设置总的请求次数以及并发请求个数。假设环境是小程序,使用的接口是 wx.request ,不考虑请求失败的情况

javascript
// wx.request调用示例:
wx.request({
  url: 'https://qq.com',
  success() {
    // 请求完成
  }
})
其他问题
  • setTimeout(0)和promise.then()区别
  • 实时协作编辑使用什么协议?
  • WebSocket怎么建立的?和HTTP的关系
  • WebSocket有没有同源限制?
  • 后边都是聊项目

二面(部门技术面)

  • 聊项目和实习
  • 对小程序的了解?从技术上讲
  • 小程序有什么问题或有什么建议?

三面(部门技术面)

  • 聊项目
  • 讲解CSRF

四面(面委一面)

  • 时长:30min做题,写完腾讯会议交流
题目1:闭包与事件循环
javascript
for (var i = 0; i < 4; i++) {
  setTimeout(function() {
    console.log(i);
  }, 300);
}

请问打印结果是?

题目2:爬楼梯

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法

题目3:闭包嵌套
javascript
function test(a,b) {
  console.log(b)
  return {
    test:function(c){
      return test(c,a);
    }
  };
}
var retA = test(0);
retA.test(2);
retA.test(4);
retA.test(8);
var retB = test(0).test(2).test(4).test(8);
var retC = test('good').test('bad');
retC.test('good');
retC.test('bad');

请问打印结果是?

先讲题,再聊项目

五面(面委二面)

  • 小程序与网页开发的区别
  • Babel转译原理
  • 数组的sort排序算法
  • 快排原理

六面(HR面)

  • 周围人对你的评价
  • 你遇到的难题
  • 微信是统招统分,如果你被分到了你不太想去的部门(边缘部门),你会怎么做

WXG面试特点总结

优势

  • 门槛高,技术氛围好
  • 年终奖多,福利待遇好
  • 面委制度保证公平公正
  • 技术要求高,能学到很多东西

劣势

  • hc少,竞争激烈
  • 面试轮次多(6轮)
  • 算法要求极高
  • 工作强度可能较大

面试建议

  1. 算法是硬性要求:必须重点刷LeetCode,特别是动态规划、图、树相关题目
  2. 推荐CodeTop:刷WXG相关的题目,了解常考题型
  3. 准备笔试:WXG一面可能有1小时4道题的笔试环节
  4. 深入理解小程序:WXG很多业务涉及小程序,需要深入理解
  5. 准备项目经验:项目细节会被深入挖掘,需要准备充分

其他部门

部门特点

  • 相对WXG来说,算法要求没有那么高
  • 面试轮次相对较少(通常3-4轮)
  • 更注重项目经验和实际应用能力
  • 技术栈可能更加多样化

完整的三轮面试经历

一面(电话面试)

CSS与JS基础
  1. 各种css js基础相关问题
    • 各种原生方法的使用,基本类型和引用类型
    • es6中的set(集合)和map(字典)的使用和对应的数据结构
    • sort的实现
    • bfc布局规则
    • 项目怎么做的移动端适配?
    • flexible原理
    • 移动端的1像素问题怎么解决
原型与继承
  1. 说一下原型链,原型链实现继承
HTTP与TCP
  1. http和tcp协议?
缓存
  1. 缓存相关(对比缓存?强缓存?对应请求头)
  2. cookie有哪些属性?
跨域
  1. 简单请求?跨域?
Vue
  1. vue中nextTick的实现,结合浏览器事件循环机制说一下?
模块化
  1. 说说commonjs和esmodule?
学习情况
  1. 最近在看什么新东西吗?

二面(视频面试)

  • 时长:面了两个多小时,中途换了个面试官
项目深入
  1. 项目相关问题,项目还是需要好好准备。问得有点仔细
    • 遇到过哪些难点?怎么解决的?
    • 做过哪些优化?优化有量化吗?
    • 用过哪些loader?plugin?
    • 你写的这个插件实现了什么?怎么实现的?
    • sourcemap原理知道吗?(因为瞄过一个博客,说知道一点,说了个vlq编码,然后被问得很尴尬,不会直接说不会就好)
HTTP与TCP深入
  1. http和tcp、https、http2(队头阻塞?解决了哪些问题?哪有哪些问题未解决?tcp和udp?)
  2. 摘要算法和对称加密、非对称加密大概说一下?
  3. 摘要和加密的区别?
  4. 知道哪些加密算法?
  5. websocket的使用场景(socket.io降级)?
前端安全
  1. 前端安全防范措施?xss攻击和csrf攻击?
Vue深入
  1. 怎么看待virtual dom?ast语法树了解吗?
  2. vue-loader做了哪些事情?
  3. vue diff?
  4. vue computed和watch区别?
  5. computed怎么实现的缓存(dirty)?
  6. vue3双向数据绑定实现?createRender?
  7. 和vue2有哪些不同,提到了函数式编程,说下对函数式编程对的理解。(答得很垃圾,vue3了解不多,尤大的直播没认真看)
设计模式
  1. 对MVC (react) MVVM(vue)的了解
Node.js
  1. node相关问题,node的事件循环机制?
  2. stream两种模式的区别?
  3. 看过koa源码都会觉得和express有很大不同,说一下?
工程化
  1. 你对构建工具的理解
  2. Webpack插件的工作机制是怎样的?
  3. Webpack的构建工作流程是怎样的?
  4. 在Webpack中如何实现代码分割?
  5. 路由懒加载的实现原理是怎样的?
  6. 如何优化Webpack的打包速度?
  7. 是否使用过Vite?
  8. Vite为何能够实现更快的开发构建速度?
性能优化
  1. 阐述重绘(Repaint)和重排(Reflow)的概念及其对性能的影响?
  2. 什么情况下会引发重绘?
  3. SVG与Canvas在渲染机制、性能表现以及各自的潜在优劣方面有何区别?
  4. 是否使用过Canvas技术进行开发?
  5. 在项目中具体应用了哪些性能优化方法,这些优化策略是否都是独立思考并实现的?
  6. 项目中是否实现了分片上传功能?
  7. 首屏加载时间怎么优化?
  8. 首屏加载fcp、lcp指标有了解过吗?
  9. ssr和预渲染有什么区别?
小程序
  1. 你写过小程序,说下和写vue有什么区别?
其他技术
  1. 你对Web Worker的理解是什么?
  2. servicework和webwork了解吗?
  3. work的使用需要做webpack配置吗?
  4. pwa应用怎么做离线提交?
  5. 前端有监听断网联网状态的事件有了解过吗?
  6. localStorage大小是多少?
  7. 如果前端要持久化图片这种比较大的资源怎么办?
  8. 看你项目里有写微前端,使用的是哪种微前端框架?
  9. 微前端对比iframe有哪些优势?
  10. qiankun框架怎么实现多应用场景下的js隔离?
项目经验
  1. 介绍一下一个项目经验?
  2. 在开发个人项目的时候用到了哪些工具?
  3. 为什么要做这个项目?
  4. 前后端如何交互?
  5. 项目中,业务数据的传输形式是什么?
  6. 项目是如何进行部署的?

三面(视频面试)

个人问题
  1. 自我介绍一下?
  2. 个人在技术能力或职业发展方面,相较于他人有哪些突出的优势和需要改进的劣势?
  3. 自我评价一下
  4. 你觉得有哪些优点?
  5. LeetCode刷题数量大概是多少,是否有偏好的题目类型?
  6. 怎么学习前端的?
  7. 抗压能力如何?
  8. 最近在看什么新东西吗?
  9. 为什么要离职?怎么学习的?
  10. 你遇到问题是更喜欢自己找答案还是去问别人?
  11. 平时花在写代码上的时间多吗?
  12. 方便介绍一下籍贯和教育背景吗?
  13. 家在哪里?
  14. 家住哪?
  15. 有什么问题想向我们提问吗?
  16. 有什么问题吗?
  17. mySQL了解吗?
  18. 实习周期?
  19. 平时关注哪些技术论坛?
  20. 有写技术博客的习惯吗?
  21. 平时有什么爱好?
  22. 在访问国外网站时,你遇到过哪些问题?你是如何解决的?
项目问题
  1. 实习做了什么?遇到过什么难点?是怎么解决的?
  2. 如果程序出现错误,调试思路和解决方法是怎样的?
技术问题
  1. 你熟悉的框架(vue),如何学习框架,vue的特点,vue的生命周期
  2. 用vue遇到的性能问题
  3. 在vue项目中如何设置统一的头部字段
  4. 你对Vue源码的理解程度如何?
  5. 介绍一下Vue的内部机制
  6. 拖拽功能有实现过吗?
  7. relative定位和transform都是视觉上的偏移,那他们有什么不一样的地方?
  8. 访问元素的top属性会不会引起回流?
  9. 对于这种2d平面的transform动画有没有什么手段开启gpu加速优化它?
  10. grid相比flex有哪些优点?
  11. 新版本的浏览器flex有gap属性吗?
  12. grid布局怎么处理兼容性?
  13. 你对构建工具的理解
  14. 你写的这个插件实现了什么?怎么实现的?
  15. 打包工具都用过哪些?
  16. 有开发过移动端吗?
  17. 移动端常见的点击穿透怎么解决?
  18. css像素比有了解过吗?
  19. 安卓怎么兼容0.5px边框?
  20. 如果让你写一个自动转换0.5px边框的loader,该loader能自动将0.5px边框转换成安卓兼容的样式,你会怎么实现,简单说说思路

部门对比总结

WXG vs 其他部门

对比维度WXG部门其他部门
面试轮次6轮(3部门技术+2面委+1HR)通常3-4轮
算法要求极高,硬性要求相对较低
笔试环节一面可能1小时4道题通常无笔试
项目经验重要,但算法更关键非常重要
技术栈小程序、Node.js、Vue多样化
hc数量很少相对较多
难度等级⭐⭐⭐⭐⭐⭐⭐⭐
福利待遇年终奖多正常水平
工作强度较大相对正常
统招统分
面委制度可能无

选择建议

选择WXG如果:

  • 算法基础扎实,喜欢挑战
  • 希望在高技术要求的环境中成长
  • 看重年终奖和福利待遇
  • 对小程序开发有浓厚兴趣
  • 不介意面试轮次多和竞争激烈

选择其他部门如果:

  • 算法基础一般,但项目经验丰富
  • 希望面试压力相对较小
  • 更注重工作生活平衡
  • 对特定业务方向有明确偏好
  • 希望更快拿到offer

备考建议

WXG备考重点

  1. 算法是第一优先级:重点刷动态规划、图、树相关题目
  2. CodeTop WXG题目:针对性练习常考题型
  3. 小程序深入理解:小程序原理、性能优化、最佳实践
  4. 项目经验梳理:项目难点和优化点需要准备充分
  5. 准备1小时笔试:练习在限时内完成多道算法题

其他部门备考重点

  1. 项目经验是第一优先级:梳理项目细节和优化案例
  2. 技术广度:网络、JavaScript、Vue、工程化等都需要准备
  3. 项目优化实践:准备量化的优化数据和效果
  4. Vue源码理解:虚拟DOM、Diff算法、响应式原理等
  5. Webpack原理:构建流程、Loader、Plugin等

总结

  • WXG:适合算法能力强、喜欢挑战、希望在高要求环境中成长的候选人
  • 其他部门:适合项目经验丰富、技术全面、希望平衡工作生活的候选人

根据自身情况选择合适的部门,并针对性地准备面试内容。

Released under the MIT License.