背景介绍

今年的铜三铁四可真是够离谱的,hc 各种锁。但是本人运气比较好,也是拿下了阿里、网易、字节的 offer。最终来了 base 杭州的抖音电商团队。

先说下自己的情况吧,本科 211,硕士 985,计算机相关专业,前端。工作三年半。

  • 第一家公司:是一家南京的国企,技术不咋地,基本上就是前后端混着写的那种政府项目的业务,也是从这个时候开始接触 vue(之前在学校都是写 jq 的),待了一年半。
  • 第二家公司:是一家杭州的某互联网金融公司,做的业务基本就是 H5 相关的内容,感觉学不到太多东西,待了八个月就直接走了。
  • 第三家公司:是一家杭州的做大数据的互联网公司,leader 人比较好,十分信任我,把我放在做基建相关的位置上,也是从 0 到 1 搭建项目中台的组件库,包括物料库和基于 element-ui 源码定制的一套符合公司规范的组件库。

求职目标

本次求职的目标很明确就是大厂,原因如下:

  • 感觉自己在团队遇到问题,没办法通过身边的同事帮忙来解决,倒不是说自己不能解决,只是希望对待业务、技术有更广阔的视野。
  • 在学校的时候,就一直有想法进大厂,无奈在校期间太拉了,躺平了 N 年。
  • 自己在技术上还是比较有追求,有关注很多技术的从 0 到 1,也在业务上有了一些尝试,想进大厂做更多的一些尝试

2021 年的心路历程

入职新公司

在第二家公司待了八个月,就直接平跳了到了下家。
到了下家之后不到一个月,公司爆雷了,股价大跌,有好几个小伙伴都直接被卡转正了,还有人走了,这个时候我的内心是崩溃的,刚经历完了求职的失败的打击,现在又有可能不给转正,我当时手头上负责的项目只迭代了一次就停了,我当时其实挺压抑的,对自我的无限否定,感觉自己是一个又菜运气又差的人。甚至当时想着再接着找工作了。

转机

做了一次新人分享,我分享了关于 js 模块化的一些原理,我的 leader 看到了我一些技术上的理解,就决定让我尝试做一下脚手架相关的事情。当时的架构是基于 vue-cli 的,我新增了一个两个项目模板,新增了 qiankun 的主/子应用的模板,可以直接脚手架生成或者在现有项目植入。然后就慢慢的负责了服务于业务的基建相关的工作,也是做了很多有意思的东西。

面试准备

在第二份公司的时候有面过一些大厂,结果最好的是字节,挂在了三面,倒在一道有序数组转二叉搜索树了。是的,你没听错,就是这么简答的一道题,我却写不出来,因为当时是“裸考”的,没有任何准备的情况就去尝试了字节,所以我当时就下定决定我一定要啃下算法这块硬骨头。于是在去年五六月份的时候,我开始了我的 leetcode 之旅。虽然刷的不是很多-_-,但是对于非计算机专业出身的我来说,确实收益颇丰贴一下我的 leetcode 截图吧。

面试过程

我是先面了几个中小厂找找面试感觉,然后再投大厂的,这一点很重要!!!

e 签宝(自己拒了二面)

这个岗位是一个前端 Team Leader 的岗位,一面是另一个团队的 Team Leader,比较注重的是管理和独立思考的能力,技术向的东西也问的不是很深入。

一面

  • Vue watch 原理
  • qiankun 原理
  • webpack 流程
  • 模块的循环依赖原理
  • 根据注释生成文档实现思路(babel 获取注释信息,生成文档)
  • babel 流程(这个部分可以看看神光的小册,我觉得写的很好)
  • 如何帮助组员成长
  • 架构一个 npm 包需要考虑哪些

政采云(二面之后没消息)

之前在掘金上看了很多政采云的文章,感觉很有质量,所以就试了试。问了很多问题,问的很广、很细。

一面

持续了一个半小时,和面试官聊的很好,很 high,看得出来面试官对技术挺感兴趣的,一面体验还是很好的,感觉学到了不少东西

  • 箭头函数 this 指向
  • diff 的过程
  • 如何冻结一个对象(Object.freeze)
  • 在做换肤需求的时候,有没有考虑使用构建工具解决
  • 如何控制 npm 包的版本
  • 实现一个最高并发量为 10 的 Promise 队列
  • 在项目有突发情况(未按时、重难点无法解决等)的时候如何去解决
  • 如何控制代码质量(prettier+eslint+husky+lint-stage+commitlint)

二面

技术上的东西问的不多,都是一些管理,个人规划相关的内容(我感觉答的没什么问题,但是最后没消息了-_-)

  • vue 如何代理数组(Object.create)
  • qiankun 和 Single-spa 原理
  • 如何帮助同事成长

微策略(自己拒了面试)

这是一个外企,有行测考试,然后对学历要求比较严苛,基本的邮件来往也都是全英文。

  • 行测/笔试:过了
  • 因为面试时间只能选择上班时间,加上自己不是很想去外企,所以直接给拒了

笔试

  • 全英文笔试题(10 道选择题 + 3 道算法题)
  • 选择题主要是基于 java 的,还有一些算法数据结构的题
  • [手写]二叉搜索树是否存在目标值
  • [手写]字符串前缀是否相等
  • [手写]反转链表

得物(笔试完没消息)

据说是 996,有笔试环节,笔试难度还挺大,一共有 4 到笔试题,给你两个小时,可以自行搜索,挂了。四道题应该只对了两道,还有一道给的测例能过,但是实际有点问题。整体体验一般,因为写的是面试,然后面试官打电话来说是笔试,给我发了个邮件,让我两小时内做完。最后的结果是没有任何邮件通知面试结果。

笔试

  • js 运行机制的题,主要考察继承、宏任务/微任务
  • 扁平数据转树形结构
  • 实现一个 Promise 最大线程池为 n 的调度函数

阿里(拿到offer)

这也是我本次求职投的第一个比较想去的公司,也是我在本次求职拿下的第一个大厂 offer,但是面完了等待流程特别长,等二面一周,等 HR 面也是一周多,HR 面结束了走 offer 流程也差不多三周左右的时间,面试的总结如下:

一面

面试官很 nice,高度称赞了我做的一些东西

  • 个人公司经历以及离职原因
  • 现在做的项目展示之类的
  • 项目内的技术难点
  • 展示自己的作品
  • 算法题 数字转千分位展示(我用了两种方法写,第一种除以 1000 取余;第二种用正则去匹配)
  • 算法题 版本号比较(就直接暴力比较就好了)

二面

是个大佬,没问太多技术问题,就是些管理以及价值观之类的问题

HR 面

我是去现场面的,HR 亲和力很好,主要就是了解一下个人过往,重点问了下为什么三年跳了三次

网易(拿到offer)

网易投了很多岗位,据说都没通过,可能是觉得我三年多的经验已经有了三段工作经验了,不过最终被网易的一个做人工智能的部门捞起来了,这边夸一波网易的面试节奏,面试总共经历了不到三周,也是第一家承诺口头 offer 的公司,HR 小姐姐特别坦诚,没有套路,也特别耐心。

一面

一面的时候,阿里和字节都差不多面通过了,加上自己也没有特别想去网易,所以面试的时候答的比较随意,我甚至一度想放弃面试了,面试官看着年纪 30 多,基本没问太多技术问题,大都是工作中遇到的问题和思考。

  • promise.then() 的返回值是什么(Promise)
  • 离职原因
  • 手写事件监听器(注意取消监听的时候,要取消所有注册的事件回调)
  • 为什么要 fork element-ui(因为需要更深层次定制组件库,比如加一些虚拟滚动的内容等)
  • 低代码平台的难点在哪(我只说了一下实现思路,大体就是根据数据模型,通过配置来操作编辑器从而达到不写代码实现页面)

二面

  • 手写 promise(没写完,写了个大的框架)
  • 手写 el-select 扩展虚拟滚动(简单写了一下如何在 el-select 之上又封装了一层)
  • promise 的 catch()
  • 换肤实现细节(css 变量)
  • fork element-ui 如何解决开源的更新问题()
  • react 17 更新了那些内容(基于 fiber 架构)
  • 自定义 hooks 写过哪些,hooks 的原理(滑动到底部加载更多)

三面

  • 离职原因
  • vue 原理,问的比较浅,但是 api 都问了个遍
  • 路由懒加载(webpack 的动态引入,打包会单独打成文件,所以可以减小首屏体积)
  • 做过的项目

HR面

网易的hr小姐姐人真的很好,给我介绍了很多网易的福利,也非常真诚,看的出来她特别想让我去,虽然没去成,但是还是给hr小姐姐点赞。

字节抖音电商(已入职)

字节是我最终选择的公司,整体技术体验是最好,无论是深度还是广度,面试官给我的体验也很好,一点都不拖泥带水,而且字节特别重视技术,每一面都有会手写代码的要求,也正是因为这样我才选择了字节。

一面

  • flex(说了一下 basis、shrink、grow 的作用)
  • 模块化机制(说了 cjs 和 esm,还简单提了提一下 AMD 和 CMD)
  • hash 和 history 区别(hashchange 和 popstate,hash 模式不能使用锚点,history 需要在配置代理)
  • 如何判断一个变量是否数组,考察原型链(Array.isArray、Object.prototype.toString.call)
  • 作用域链(js 查找可访问的变量的规则)
  • csrf / xss()
  • Promise 机制,常用函数(静态的 resolve、any、race、all 等,非静态的 then、catch)
  • span 的 margin 怎么生效(上下不生效、左右生效)
  • 浏览器缓存(强缓存、协商缓存)
  • 请求头常见属性(content-type、cookie、accept、cache-control 等)
  • http 状态码,404 代表什么(2 成功,3 重定向,4 客户端错误,5 服务端错误)
  • 手写 setTimeout 的相关题目,考察 js 运行机制(间隔 k 秒输出 k)
  • 手写算法题,数字转千分位展示(正则或者直接取余)

二面

  • 304(表示资源未更新,使用本地缓存)
  • 协商缓存的 etag 和 LastModify 信息是哪来的(我说的是文件系统的标识,不知道答的对不对)
  • 缓存的应用场景(html 使用协商,其他静态资源使用强缓存)
  • cdn 原理(简单来说就是把文件拷贝多份,存在各个服务器上,请求的时候优先找离你近的服务器获取资源)
  • js 内存机制,内存泄漏场景(我只说了一个闭包)
  • qiankun 架构做了那些深入应用(跨应用使用组件)
  • npm 包如何控制版本变更()
  • 首屏优化思路(减小资源体积、缓存资源)
  • gc 流程(新生代、老生代那套,八股文就不谈了)
  • 离职原因
  • this 指向的一道题
  • 手写内存泄漏场景
  • 实现包含数组和加减乘除的字符串的计算(不含括号)(输入"1+2*3",输出 7)

三面

  • qiankun 和 single-spa 原理(fetch 资源、eval 代码、沙箱、代理浏览器跳转)
  • 工程化有什么实践,说了下自己写的 babel 插件(babel 插件实现按需加载)
  • 换肤功能具体怎么做的,现在做的话还有什么思路吗?(node 脚本替换代码,现在做的话可能会使用 postcss 处理)
  • 经历介绍,离职原因
  • 组件库的规划有什么想法(扩展功能比如虚拟滚动、还有一些没有的组件比如固钉,然后就是基于基础组件库扩展物料库)
  • TCP/UDP 区别,三次握手、四次挥手(这是之前面试字节回答的不是很好的问题)
  • 最长回文子串(dp)

HR面

主要就是问一下背景之类的,重点问了我跳槽频繁的问题,走到这基本不会有啥大问题。

写在最后

以前我面试的时候总感觉自己不可能进大厂,总感觉遥不可及,这次的成功也许多少也有一些运气成分吧,但是我总结了一下有一些东西确实可以在面试的时候加分

  • 是否在项目中承担一些业务之外的事情,是否有自己的思考
  • 自己的一些小作品,主要是表示自己的主动学习能力
  • 手写代码的能力要很好,无论是算法还是代码片段
  • 基础要扎实,不要过分的扣 vue 还是 react,基础的 js、ts 才是最重要的

关注关注,主页更多的java课程学习路线,笔记,面试等架构资料

三年半经验,成功拿下字节阿里网易offer相关推荐

  1. 【模拟面试】23届本科生拿下字节/京东/网易研发offer,到底有多强?

    这是一场模拟面试,面试选手是今年的应届生,拿下了字节/京东/网易的offer. 如果你想参加模拟面试欢迎私聊我,仅限后端,go语言更好. 下面可以看看这个同学的简历 我个人觉得挺不错的 总共问了几个问 ...

  2. 三年半经验,蚂蚁头条快手怎么选?网友:第一次看到头条比快手offer低的

    程序员求职面试(微信号:CoderJob)整理 内容参考自:脉脉.猎头老王 近日,有网友发帖子问:本科毕业的程序员,有三年半经验,现有头条.蚂蚁.快手offer,该如何选择? 本人三年半经验,本 头条 ...

  3. 大学四年,因为这些网站,他顺利拿下字节跳动的offer!

    回想起大学的日子,我不免觉得有些羞愧,因为我把它虚度了,除了谈了个女朋友,几乎一无所获,我是个彻彻底底的学渣.但我有一个读者,小王,他就是最佳的励志典范,大一还挂科了三门,但大二的时候突然奋发图强,毕 ...

  4. 粉丝经历!湖大毕业工作2年,成功拿下字节跳动后端研发岗offer!

    前言 首先在这里介绍一下这位大佬,他是之前就在看我博客的一个算是粉丝吧,自己是湖大毕业的,自己在学校里面就经常趁着假期去找各种实习的事,非常好学的一个人,平时有什么不懂的就来问我,我也很乐意解答,他是 ...

  5. 不等金九银十,金风八月,我早已拿下字节跳动的offer

    字节跳动,我是在网上投的简历,之前也投过一次,简历都没通过删选,后来让师姐帮我改了一下简历,重新投另一个部门,获得了面试机会.7月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准 ...

  6. 靠这100道软件测试大厂面试题,成功拿下字节跳动,阿里,腾讯,华为等12家Offer!

    一.网络模型及传输 1.1 OSI七层网络模型 OSI七层模型:是ISO组织研究的一种网络互连模型,目的是为了推荐所有公司使用这个规范来控制网络.OSI七层模型从下至上分别为:物理层.数据链路层.网络 ...

  7. 已成功拿下字节、腾讯、脉脉offer,这原因我服了

    网易游戏 严格来说我投的是网易互娱(区别于雷火&盘古,后面再说更多区别),走的内推.网易游戏以其笔试难度大著名,这次也不例外:所有的内推都要求参加统一笔试,我记得笔试有几场,我是在第一场.内推 ...

  8. 已成功拿下字节、腾讯、脉脉offer,吐血整理

    为什么想跳槽? 简单说一下当时的状况,我在这家公司做了两年多,这两年多完成了一个大项目,作为开发的核心主力,开发压力很大,特别是项目上线前的几个月是非常辛苦,几乎每晚都要加班到12点以后,周末最多只有 ...

  9. java开发安卓app!已成功拿下字节、腾讯、脉脉offer,系列篇

    开头 昨天去面了一家公司,价值观有受到冲击. 面试官技术方面没的说,他可能是个完美主义的人,无论什么事情到了他那里好像都有解决的方案,我被说的无所适从,感觉他很厉害. 但我不能认可的是,面试官觉得加班 ...

最新文章

  1. 笔面集锦:判断单链表里面是否有环及相关扩展题
  2. msdn 上的关于delegate和event的一个例子,理解后加点评论
  3. 【Android 异步操作】HandlerThread 示例 ( 初始化并执行 | 获取Looper | 获取 Handler | 获取消息队列 | 设置空闲队列 | 代码示例 )
  4. 数据中心基础架构 22 年演进
  5. 音视频通话:小议音频处理与压缩技术
  6. PDF阅读器Foxit Reader 2.2简体中文版
  7. python对象继承
  8. Yii2的MVC新特性
  9. 离开载具_绝地最强载具登场?
  10. TensorFlow 教程 --进阶指南--3.5线程和队列
  11. Matplotlib作业3
  12. windows安装安卓开发环境Eclipse+SDK+ADT
  13. 实训41 2018.6.2
  14. [转]Oracle分页之三:利用PagerView来实现无刷新GridView
  15. Star-shaped polygon
  16. 48页小米用户画像实战PPT
  17. 机器学习中的训练集、验证集、测试集;交叉验证方法
  18. 一文详解Matlab中Psychtoolbox工具箱的安装方法
  19. Mac电脑删除某个分区
  20. videobox,一个错误的名字

热门文章

  1. 【python百度智能云】:百度CFC函数调用 — python zip打包
  2. CFC-60数字滤波算法浅析
  3. ubuntu16.04下安装understand
  4. cesium1小demo
  5. vscode配置html环境
  6. opengl 图像对比度、亮度、饱和度调节的glsl代码
  7. 如何正确理解和使用参考文献
  8. 大文件分片上传、断点续传
  9. webservice使用的一些总结
  10. VM10装Mac OS X 10.9.3