题主2019年非985/211非计算机专业本科毕业(野生程序员),之前在腾讯实习了半年多+毕业后在腾讯工作了一年,一直都是前端开发。

作者:flytam

来源:https://juejin.cn/post/6855649603497230350

年中的时候因个人原因,打算离开腾讯,到外面看看,投了若干简历,最终面试了字节跳动、虾皮、快手、拼多多这4家公司。有的喜有的忧,本文是对本次面试的一个总结。

快手

快手是最早约的面试,在boss直聘上投完大概几天就约了。也是我本次第一家面试的公司。时间某个工作日的晚上8点,那天早早溜回家面试了,是在牛客网上进行的

主要问的问题如下:

  • react16新增了哪些生命周期、有什么作用,为什么去掉某些15的生命周期(写过码看过文档都能答上了)

  • fiber怎样的,如何实现异步渲染(链表/可中断)

  • reduxredux-saga的区别和原理

  • 项目中用到的saga-duck是个什么东西

  • useEffect的实现原理(坦白说自己没看过react的实现,就说了下preact的实现)

  • 异步渲染和旧版的diff的区别

  • babel实现转码的过程(词法/语法分析)

  • 项目的技术栈怎么选型(这种问题好几次都被问到,感觉我真的不太知道怎么答)

  • 小程序底层实现原理了解多少(说了下双线程模型/预加载webview

  • 项目nodeJs应用异常退出如何处理(pm2/uncaughtException事件等)、日志上报怎么做(输出重定向到文件,elk服务传传到kibana)

  • graphic schema怎么设计(说了下我对于项目中的理解,资源维度,感觉回答不太好)

  • 有哪些技术驱动业务的案例(说了下这个插件的思路和webpack一些优化)

最后写了一道算法:最大乘积子序列,有正负数的情况。应该对应于这个leetcode题目。这里我理解错题意以为这个序列是可以不连续的,而且对于理解错的题意也用了一种错误的写法,用了o(n2)的一种实现。然后面试官提示说o(n),最后还是没做出来。这个题目其实自己在之前的刷题的时候自己也是比较顺利能解出来了,这里有点可惜,面试临场代码能力还是有待加强

最后面试官大概讲了下部门情况,他们那边是深圳快影前端团队,目前规模还不大,正在大力招人。最后还问了下我如何看待目前部门工程化建设不足的问题,我表示这是一个很好的机会去挑战自己(hhh)。

当时这次面试之前,差不多两年没面试了(上一次面试还是2018年的8月),很多地方自己感觉也是表现不太好。虽然面试官最后说了认为我是一个比较优秀的同学,让我当时迷之自信误以为会有下一轮。过了一周没有任何答复后,去boss直聘上问了下hr,答复说算法有待加强,第一次面试凉凉~

拼多多

拼多多投的是广州的部门,好像是小程序团队,通过一个同学内推的

一面 47分钟。某天晚上9点

  • redux的理念(说了下action dispatch state啥的,单向数据流)

  • react-reduxconnect怎么实现(高阶组件、context注入store、subscribe订阅store数据变化)

  • mixin hoc 继承的区别,优缺点

  • react diff如何实现

  • react 旧版的diff用深度优先还是广度优先。为什么用深度优先,广度优先能实现吗(其实我认为广度也能实现的,面试官问广度有啥不好,我确实不知道..)

  • diff的时间复杂度?为什么?(o(n)。提了下react优化o(n3)->o(n))

  • react-router实现原理(hash/html5 history)

  • 客户端路由hash/history实现的区别、原理

  • 有哪些常见的http

  • websocket/轮询的好处和缺点 (性能、兼容性)

  • websocket的握手过程(urgrade websocket

  • tcp的握手过程

  • tcp/udp的区别

  • 一个应用场景redux触发几次action如何设计(这个问题感觉有点迷,不知道有啥问,我回答也有点迷,面试官说可以了...)

  • 尽可能多实现pdd app导航布局实现(就是类似4等分div并列排布)

  • 如何清除浮动

  • BFC实现原理

  • 开放题:pdd首页假设没有任何优化,尽可能多的想优化的办法(懒加载、打包优化、webpack速度、代码压缩、雪碧图、http2 balabala....)

二面 周日 下午2.30 35分钟

  • css的盒子模型(content-box border-box)

  • 实现动画有哪些方法 (js css)

  • react mixing hoc 继承 hook之间的区别/优缺点

  • 浏览器渲染出一个页面的过程

  • vue/react技术选型

  • 项目相关,项目重构开发如何并行balabala...

  • 项目中工程化进行了哪些优化

  • 项目中继续进行优化会从哪些方面去做(说了下webpack5 module fedration)

  • nodejs项目的性能优化

  • linux文件权限(4 2 1 )

  • 前端监控怎样实现 (数据采集、上报、展示之类)

三面 本来约了去星期天广州现场的,结果车票都买好了,前几天,hr说部门架构调整,岗位暂时不开放了。又凉了~

拼多多的面试时间还是很合适的,周天+晚上9点,基本可以避免上班的尴尬(毕竟11 11 6...)。问的问题也中规中矩吧。不过也无缘了。拼多多的两轮是比较少有的不需要手写代码的,都是电话面试。

虾皮

虾皮通过一个同学内推的,面的金融部门

虾皮都是qq视频面试+腾讯文档word写代码

一面 周二早上

  • http 302 301 307之间的区别

  • 301和302对于seo来说哪个更好 (301)

  • 跨域是什么、如何解决

  • jsonp有什么缺点

  • 图片base64和外链的应用场景,各有什么优缺点(base64减少请求数,但是会增加额外的体积)

  • http缓存机制

  • https的握手过程是怎样的

  • set/map的区别

  • hook的局限性

  • setState和hook的区别

  • decorator的作用,编译后是怎样的(@decorator -> decorator(target)...)

  • symbol是什么,一般用来做什么

  • csrf 是什么 如何防范

  • sql注入是什么,如何防范

  • react 调用setState之后发生了什么

  • nodejs事件循环机制

  • pm2的原理,有哪些模式(cluster fork)

  • docker和k8s有了解多少(k8s听过没用过)

  • 移动端端一个元素拖动,如何实现和优化(节流、改变位置)

-for in/for of 看代码输出

  • 几道看代码说输出(忘了具体题目了)

  • 描述链表的反转怎样实现,复杂度多少

编程

  • 实现instanceOf

  • 实现一个对象被for of遍历

  • 实现链表的添加、删除。复杂度多少

一面考的都是一些基础知识,需要一定牢固的基础知识准备才行

二面 时间 一面之后的下午

  • 给了两段效果上都可以实现child 继承 parent,细节上的差别

    function child(){}
    function parent(){}
    child.prototype.__proto__ = parent.prototype
    child.prototype = new parent()
  • 一些代码看输出的题目。考点有函数this指向的问题

  • 如何监听html外链资源加载失败(面试官又追问了onerror 和addEventListener的error都能吗。面试官说onerror不行,具体我没试过...)

  • Mutation ObserverInterp Observer使用场景(Interp听过没用过)

  • 127.0.0.10.0.0.0差别(一个只能通过localhost ,一个可以通过本机ip或者localhost都行)

  • 利用promise js sleep函数实现

  • jsx转换后是怎样的

  • redux compose函数做什么的,中间件呢

  • redux-saga是什么,和redux-thunk有什么区别

  • dva有了解吗

  • umi.js有用过吗

  • req.pipe(res)

  • stream 如何处理数据消费和数据生产的速率不一致问题

  • writeable stream drain事件是做什么的(这是和一个控制读写速率有关的事件)

二面考得比较细,问了很多看代码问输出的问题,也问了一些比较细节的问题,有些细节的地方确实实际也没接触过。

字节

字节是通过一个同学内推的。字节也是自己比较中意的公司之一吧。为了准备字节面试,刷了不少leetcode,虽然好像面试也没怎么考,但是通过这段时间刷leetcode,不得不承认感觉自己的代码能力也有一定提升

某个周日晚上20点

一面

  • 常用的http状态码(101 200 204 301 302 304 307 400 404 500...)

  • 301和302的区别(永久/临时)

  • 前端路由怎样实现(hashchange事件 hack history.pushState)

  • 前端路由直接刷新404怎样处理(404时重定向到index.html 如nginx)

  • 从前端到后端全链路如何设计实现一个登陆的流程(session方案、jwt)

  • 什么是跨域,怎样处理

  • 简单请求和复杂请求的区别

  • 浏览器的缓存策略说下

  • domain属性解决跨域。几种domain设置对跨域是否生效

  • ts 泛型做什么的,infer关键字的作用

题目

  • 实现typescript的ParamtersReturnType (考察infer关键字使用)

  • 实现Promise.all (每个promise resolve结果存数组,最后一个promise返回时,把数组返回)

  • 实现一个并发请求控制函数,限制并发数

二面 一面之后马上进行了二面

  • jwt的原理(以前用过,比较好说)

  • xss和csrf是怎样的,如何去解决

  • pureComponentComponent的区别(前者shouldComponentUpdate默认比较props)

  • react hoc hook解决了什么问题

  • 有哪些常用的react hook,它们做了什么(useState useReducer`` useContext等等...)

  • 项目实现一个中间层的意义(前端全链路日志打通)

  • setState同步还是异步

  • setState传递对象和函数有什么区别?如何选择

  • 合成事件怎样的,有什么好处

  • 事件冒泡和事件捕获的区别、react中的冒泡和捕获呢(react中都是合成事件,无论冒泡和捕获,对应于原生事件都是冒泡)

  • 怎样看待加班(hhh 加班很正常啦,在腾讯的时候也是每天加班)

  • 为啥选择跳槽

题目

  • 实现css垂直、水平居中

  • 实现bind函数

  • 实现快速排序

三面 三面是leader面,某个周二下午进行

  • 为什么之前拿了实习offer没来/下一份工作有怎样的预期

  • graphql相比restful的区别、优点缺点()

  • 为啥选择了redux-saga作为解决方案(解决异步优雅/提供很多工具函数)。redux的异步中间件方案有哪些,对比。saga对比dva

  • graphql的鉴权在哪里做

  • 协程是什么(语言层面实现的并发),Go/nodeJs怎样去实现协程(Go使用go关键字、node可以使用Generator实现、我理解react16的异步渲染也是协程的实现)

  • react fiber的机制是怎样的

  • 锁机制的作用,node和Go如何处理死锁

  • Go/node实现并发怎么做

  • node和Go的优缺点怎样理解

编程

  • 实现一个useState

三面可能因为简历写了自己写过一些Go(其实我只是个人项目的一些玩具),面试官问了不少node和Go的问题,然后我就先表明Go自己只是简单学过,然后就按照我的理解回答node和Go的问题..幸好感觉回答得也7788吧

四面 因为某些原因,前3面发了offer后我选择换了部门,于是就有了4面

  • 介绍项目 项目难点

  • 项目做了哪些优化

  • 一个广告页面,如何统计在不同平台上的停留时间

  • 为何选择换工作

四面基本上都是聊项目,难得没有做题。我们准备面试的时候一定也要先整理下自己的项目的一些难点之类的,所以四面过程还是比较轻松的

字节感觉总体难度是这4个公司面试难度最大的,写代码也是最多的,而且感觉面试的时候写代码真的比平时加了不少debuff,这个还是非常考验心理素质和代码能力的。最后还是有惊无险拿了字节跳动的offer啦~

写在最后

这就是本次跳槽面试经历小总结。忠告各位:目前大环境也确实不好,各位跳槽要慎重,千万别裸辞~

如果觉得这篇文章还不错

点击下面卡片关注我

来个【分享、点赞、在看】三连支持一下吧

点个在看支持我吧

惜败虾皮、快手、拼多多,终拿字节 offer相关推荐

  1. 好的始终在后面,虾皮、快手、拼多多均失利,终拿字节 offer

    题主2019年非985/211非计算机专业本科毕业(野生程序员),之前在腾讯实习了半年多+毕业后在腾讯工作了一年,一直都是前端开发. 作者:flytam 来源:https://juejin.cn/po ...

  2. 来自一个从业多年程序员的春招,三面字节+四面字节+拼多多终面!

    三月 三月份是在认真复习,主要在刷题+复习基础. 然后面了几家之后发现分布式的东西完全不会,简历上写的微服务之类的也完全不会,然后开始学习工程相关的东西. 花了一周左右去整redis,感觉收获很少. ...

  3. 优秀!研二实习生“阿里+字节+拼多多+美团”四杀offer

    本人就读于某无导师制培训班,研二在百度+腾讯实习过,目前想转java技术栈或wlb一下,就投递了一些外企和美团阿里,至于字节与拼多多,个人实在无法接受周末上班,就没有投递了. 年前准备了一下简历,先海 ...

  4. 拼多多终面竟被“Out”了?春节宅家复习,备战金三银四拿offer

    前言 随着互联网的发展,近两年来也涌现了越来越多的新兴互联网企业,除了BAT三巨头以外,其他互联网公司的表现力和实力也不容小觑,拼多多就是其一,如果要说拼多多是发展最快的新兴互联网公司之一,应该是没有 ...

  5. 农业末流211“自学Java一年”四面拼多多+三面字节跳动成功拿下Offer!

    个人背景 农业末流211,学校的强专业在农学那边,计算机专业很弱,Java自学快满一年 拼多多 时间线 3.22 在牛客里找了一个拼多多的内推人,投递简历. 4.7 在线笔试,好像4道a出2道半 4. ...

  6. 知乎万赞:拼多多和国家电网 Offer,选哪个?

    点击上方蓝色"终端研发部",选择"设为星标" 学最好的别人,做最好的我们 来源:知乎 知乎上有人问: 本人是某top3本硕,EE专业,秋招拿到了老家不差的地级市 ...

  7. 拼多多和国家电网 Offer,怎么选?这回答绝了!

    最近在知乎上看到一个关于职业选择的问题, 虽然都是老生常谈的话题了, 但是几个知友的回答获得非常多的赞同, 拿来和大家分享一下. 知乎上有人问 本人是某top3本硕,EE专业,秋招拿到了老家不差的地级 ...

  8. 知乎高赞:拼多多和国家电网 Offer,选哪个?

    来源 | 知乎 知乎上有人问: 本人是某top3本硕,EE专业,秋招拿到了老家不差的地级市国网(东部沿海,非江浙山东)供电局与平多多的offer.现在在纠结,应该选择哪一个. 选择国网供电局的offe ...

  9. 如何拿到华为、拼多多等4家offer?

    我是黎明: 应届硕士毕业生,男生,传统工科专业,18年6月份决定转数据分析,开始学习EXCEL.统计.SQL.Python等.8月份正式开始找工作,期间边学边找,投递简历40+,笔试30+次,面试10 ...

最新文章

  1. Docker(七):Docker build 、Docker Dockerfile 详解
  2. java线程能做什么_java中的多线程能做什么 ?基本作用能说下吗?
  3. linux c编译错误storage class specified for parameter XXX
  4. python3(七)os模块
  5. 移动端导出excel_连载系列【4】Excel开发移动端quot;APPquot;
  6. cast函数_关闭RTTI后dynamic_cast和typeid报异常
  7. 汇编试验四:[bx] 和 loop 的使用
  8. 网易常用镜像及使用方式
  9. 计算机硬盘除了c盘其他全不见了,电脑除了c盘其他盘都不见了
  10. .NET Framework 版本选择参考
  11. 深度学习——AI领域会议列表(以备准备和更新论文存储使用)
  12. 使用css、jquery实现一个云音乐播放器
  13. “不限量”只是幌子!流量卡到底哪家最划算?
  14. *CF1132D.Stressful Training(二分+队列+贪心)
  15. [Kaggle]泰坦尼克号沉没预测
  16. 大脑构造图与功能解析_【大脑结构图及功能图】_构造图_作用-大众养生网
  17. java 模拟火车站售票系统_模拟售票系统java编程
  18. R语言绘制沈阳地铁线路图
  19. 超详细Netty入门
  20. python 打印机控制_python调用打印机

热门文章

  1. 小米平板6.0以上系统如何不用Root激活Xposed框架的步骤
  2. 深度学习卷积神经网络——经典网络LeNet-5、AlexNet、ZFNet网络的搭建与实现
  3. SFML从入门到放弃(2) 图像和音频
  4. C++/Qt下登录程序的绕过
  5. uniapp 清除定时器clearInterval()
  6. html5媒体播放例子代码
  7. h5 iframe 自适应高度
  8. shell中的kill命令
  9. c# WindowsForm 在Panel随机位置上画小人
  10. Python训练营——阿里云天池 Day10