2018 寒冬面试经历

✍🏼 写于 2019年09月13日   
❗️ 注意:离本文创建时间已经过去了 天,请注意时效性

前言

我的面试经历不多, 工作以来的三家公司除了最近 2018 年的面试经历, 前两家都是一次面试拿到 offer 就直接去了, 没有再试其他家的. 这导致我面试经验极其的匮乏, 现在想来从美团离职之后, 由于面试准备的不充分, 很多坑原本是可以避免的. 加上准备的不充分, 而且我强烈怀疑面试的一些公司完全是 HR 刷绩效来的, 压根没想要人, 所以 offer 拿的并不理想.

现在已经 2019 年 9 月过半了, 招聘市场也有所回暖, 但是想起去年 2018 年年末的那段面试经历, 依然觉得可以写下来给各位参考, 不过因为已经过去大半年了, 有些细节就不提了, 主要写的是面试的过程, 题目记的已经很模糊了.

另外说一点主观感受: 那个时候我猜大家应该都在等年终奖, 所以除非是项目刚新建扩张阶段缺人, 或者是项目实在是坑, 宁可不拿年终奖也要走的人留下的坑位, 所以 18 年底的面试非常难, 大家都是想要高级再高级, 资深再资深一点的前端工程师, 属于完全资方市场.

下面是我的面试安排, 跨过了 2018 年冬和 2019 年初的时间段:

面试安排

可以看到安排的非常满, 有时候一天面 6 场(含电话面试). 好了废话不多说, 下面按时间顺序开始正文.

腾讯面试

第一家联系的是腾讯(腾讯的 HR 都在深圳?), 简单说了下情况后就约了去面试. 位置在中关村科学城那边, 离后来去面的头条很近, 大概五分钟的距离(头条的办公地方很多).

简单自我介绍之后, 发现, 他们是腾讯旗下的外包部门, toG 的, 就是承接政府部门的各种小程序业务然后制定一些开发的规范和方式, 转交给其他外包部门进行开发, 之后再交给他们. 问的问题 比较实际 这点要点赞, 下面摘要几个对话:

一面负责人: 我们会对接多个小程序外包进行开发, 如何保证他们提交代码的质量?

我: 1. 制定开发规范进行约束; 2. 开发小程序组件库, 写明组件库文档和使用说明. 3. 开发小程序插件, 强制使用某种开发规范, 否则编译不通过; 4. (开玩笑) 不合规范的扣绩效工资. 这 4 步从软到硬.

我: 我入职了会负责贵司的那块业务?

一面负责人: 你来我这儿我需要你转变思维, 之前你是按照别人的规范和使用别人的组件进行开发, 现在需要你来制定开发规范, 决定最优解, 写组件库, 写编译库等.

后面是二面负责人的对话:

二面负责人: 前面面试的还不错, 我们对你印象比较深刻, 你对我们这边有什么不满意的吗?

我: 做的工作方面没什么不满意的, 只是团队人数上太少了, 开发算上我只有两个人.

二面负责人: 好了今天的面试就到这儿吧.

今日头条面试

出了腾讯不远就是今日头条, 于是中午吃了个饭就去了, 头条的办公地点似乎是个酒吧? 或者是个公共办公空间? 进去居然有卖咖啡的在前台附近, 还有很长的一个桌子以及会客沙发, 空间很大, 装修不错. 进去签到后, 先做了个题, 题目如下(记不清了):

  1. 居中对齐的几种方式?
  2. 如何实现一个透明遮罩效果?
  3. (宏任务微任务相关的题目, 记不清了)
  4. 其他 JS 相关的问题
  5. 最后一题: A 和 B 两个人抛硬币, 抛到正面为胜利, A 先抛, B 再抛. 问 A 第一次抛完后, B 胜利的概率.

之后一面面试官就来了, 先看了我做的面试题, 然后问了一些问题如缓存/Flex 布局/Http 相关的东西就结束了, 进入二面.

二面问了一些业务方面的问题, 我做的事情, 我在业务中的价值等, 然后让我等一会儿.

之后 HR (是个大学来实习的妹子, 我是她的候选人, 她特别热情搞得我都不好意思)过来说我进入终面了, 但是终面的老大在头条总部, 就是那个抖音里面拍的那个中航的总部, 坐班车去就行了. 于是我做了头条的班车去了(说是班车, 其实就是个 7 人座的私家车…)

到了总部后, 等了会儿, 就有一个年纪跟我爸差不多, 气质也跟我爸差不多的大叔过来, 带我去了地下食堂, 说是食堂, 但是里面有很多显示器可以演示 PPT, 因为不在饭点, 很多人都在这里开会. 所以我的面试地点就在这个地方开始了.

终面面试官: 你前两面都很不错, 面试评价很高, 我不是你的直接领导, 过来帮忙交叉面的. 就是跟你随便谈谈, 别紧张.

我: 好的

终面面试官: 介绍下你自己

我: blabla

终面面试官: 画一下之前你负责的业务架构图吧

我: 好的

终面面试官: 美团刚上市, 为什么要离职呢?

我: blabla

终面面试官: 你觉得前端未来的发展方向在哪儿?

我: blabla

终面面试官: 我看你有写博客的习惯, 你最近在关注哪些技术方面的东西?

我: blabla

终面面试官: 哈哈, 你说的这些都是比较老的技术了, 都出来一两年了.

我: 我关心的业务方面比较多, 新技术比较前沿, 学习了很难有发挥的地方, 很快也就遗忘了, 没有正向激励很容易就失去动力了.

终面面试官: 确实是这样的

后来又聊了一些就回去让等通知了, 那天下了很大的雪. 后来头条那边又打电话来说是组织调整, 之前面我的那个终面面试官调整到其他业务部门了, 我面的那个业务部门来了新的领导, 需要再加试一轮, 所以我又去面了一轮. 然后去了之后问了一些简单的问题, 问了我的职业规划让我回去了.

后来通知我说, 我没过面试, 因为算法不太好. 我的内心: ??? 一面就问了算法相关, 二面三面四面都没有问算法相关的东西, 然后跟我说我算法不太好, 如果我算法不太好, 可以在一面面完直接跟我说. 比较奇怪.

转转面试

转转在东升科技园里面, 进去后大厅放着迪丽热巴做的广告. 然后一面面试官就来了, 自我介绍后问了几个基础问题, 然后告诉我说一面没过, 于是就走了, 比较莫名其妙.

印象笔记电话面试

最受好评的就是印象笔记的面试体验了, 首先是打电话问一下近况, 然后问了几个工作相关的问题, 觉得都有意向还能继续聊就先电话面试, 这样也能节约彼此的时间. 一面简单问了几个基础问题之后发现还不错, 就约了现场面试.

面试官: 我们是平等交流, 不用紧张, 我问的问题也比较普通, 如果问了一些疑难刁钻的问题你可以随时打断告诉我.

我: 好的

面试官: 有一个 JS 文件, 含有全局变量, 全局变量, 全局函数, 局部函数, 它们的执行步骤说一下

我: blabla

面试官: 我们都知道 JS 是单线程的对吧? 那异步时候的 setTimeout 是怎么回事儿?

我: JS 是单线程, 但是浏览器是多线程的, 类似 setTimeout 和 ajax 这种的异步操作, 浏览器都会新开一个线程进行处理, 处理完毕后会通知 JS 线程, 相似的还有渲染线程等. 当然 CPU 是不分单线程多线程的, 因为只有一颗 CPU, 它只能以尽可能快方式排队调用. 当然现在浏览器对 CPU 这种任务调度机制有优化措施, 大量重复的任务会被优化到能够快速调用的存储空间中. 或者使用多核进行任务交叉分配执行调度

面试官: CPU 的运行机制…是你自己想的?

我: 我看书上说的, 哈哈

面试官: JS 的宏任务微任务知道吧? 它们是工作的?

我: 这个跟第一个问题的那个类似, 有一个调用栈, 分析代码阶段, 先将同步代码塞到调用栈中, 然后遇到一个宏任务, 塞到宏任务执行堆栈后放到调用栈, 遇到微任务塞到微任务堆栈. 然后按顺序执行调用栈, 期间宏任务中又有微任务或者微任务中又有宏任务等的, 按上述步骤一次类推, blabla.

后来说去他们公司不需要很深入的懂 Vue/React 这种 View 框架, 因为他们不怎么深入使用框架, 我一拍大腿, 正合我意! 我对框架本身是有些厌倦的, 翻来覆去的就是那些东西: 双向绑定/单向数据流/diff 算法等等. 我其实更想以计算机科学的背景去深入理解/使用 JS 一些.

之后由于是快过年了, 终面技术总监休假了, 于是电话面的, 问了去了印象笔记想做的事情, 我说贵司好像一些东西不完善, 比如 前端的 DevOps 以及编辑器体验不太好, 所以想往这方面发展一下. 回答还比较符合他的意见, 加上公司福利很不错, 所以双方比较满意, 基本就是通过了.

玩吧面试

玩吧在东直门外大街那边, 去了之后一个面色冷峻的男人过来, 问了我一些比较正常的问题, 自我感觉也比较不错, 不过他问我是否考虑带团队, 我说暂时还没这个打算, 还是想往技术方面专研一下. 我觉得是这个原因让我挂了.

锤子科技面试

跟美团一起在数码港四楼, 面试的部门其实是锤子旗下的一个子部门, 做在线办公文档的. 去了之后两个人一起面的我, 问了一些东西, 和一些计算机相关的东西, 在知道我也关注科技圈的时候, 就跟我开起了老罗的玩笑, 气氛非常好. 不过因为强制早 10 晚 10 以及公积金按 6k 缴纳, 虽然报销晚餐和晚上回家打车费用, 但是还是不太能接受. 后来发了 offer, 薪资符合预期, 但是还是没去.

滴滴面试

滴滴在中关村科技园. 记得有四面, 问了一些基础问题如 git rever reset rebase 用法; 一些业务问题如之前做什么的, 有什么技术难度; 一些疑难问题的细节, 应该是想考察解决问题的思路. 后来终面的时候问了我的职业规划, 问了我眼中的前端发展的方向/看法, 最后让回去等消息, 也没过. 后来才知道, 滴滴那个时候发生了不亚于美团的裁员潮, 不过赔偿比美团强多了. 在脉脉专门吐槽了这个事情, 终面的负责人特意私信我解释我没过的原因.

小米面试

小米的面试在科力源大厦, 是属于小米有品的, 不太想去电商性质的公司, 因为加班太严重了, 就没去面.

拉勾网面试

拉钩网在创业大街, 离头条和腾讯都近, 去了之后先问了一些基础问题, 回答的都不错. 不过我说我没怎么写过 React, 就结束了这次面试.

猿辅导面试

猿辅导据说比较有钱, 福利比较好, 因此他们应该想招一个技术背景比较深厚的人. 有两个人一起面试, 一个负责问, 一个负责记. 负责记的那个人一言不发, 负责问的的那个人在我没有按照他的意思回答出问题的时候会嗤之以鼻, 似乎是想压力面试, 比较让人讨厌. 现在能想起来的问的问题有:

Webpack 你肯定比较熟了, 就不问这些用法了, 你说说看 Webpack 的打包机制?

ES6 RequireJS CommonJS AMDJS CMDJS SeaJS 的区别?

设计一个链表(链表有一些方法跟数组不同)

后来一面没过.

每日优鲜面试

每日优鲜的面试比较奇怪, 问了一些基础问题, 似乎是对我很满意, 我也问了一些问题, 如我在公司能做什么, 有什么资源可以为我调动的, 我也比较满意. 不过后来就没下文了, 比较奇怪, 可能是又找到更合适的人了吧.

阿里面试

阿里面试的是阿里文娱旗下的阿里影业, 做 toB 的一个业务部门, 有三面, 问的问题基本都能答上来, 不过终面的时候面试官坦言我技术能力可以, 但是经验不够, 踩过的坑比较少, 走的时候说了一句: 你经常会自我驱动的学习挺好的, 有些人是被动进步, 有些人是主动进步, 只要想进步, 总会变得牛逼的. 我想这就是福报厂之所以这么牛逼的原因吧. 点赞.

360 面试

360 面试是朋友内推的, 负责的 HR 搞错了, 因此不小心去了另一个部门面试了, 是做 loT 的, 我不太感兴趣而且团队又是除了面试官就没人了, 是个新组建的部门. 面完了之后才知道, 我面错部门了…朋友推荐的是另一个部门, 于是我又联系 HR 去了另一个部门. 另一个部门是做数据可视化的, 依然不是我的方向, 所以问了一些数据如何展示到界面的问题和一些图形算法问题后就走了, 没过.

作业帮面试

作业帮在一个三层楼里, 有食堂. 面试问了一些问题, 都答的比较不错. 但是负责人使用的是 Windows 的电脑, 感觉不太能接受, 所以之后的面试就没去了.

爱奇艺面试

爱奇艺是朋友内推的. 但是是面试体验是最差的一个, 上午十点去了之后并没有人接待我, 然后让我等了有半个小时, 来了一个负责人, 问我有没有带简历, 我说没有, 于是他就又去让 HR 打印了一份儿简历, 但是打印的简历排版错误, 而且少了一些内容, 完全不能看. 所以面试的时候我说要不看我手机里面的简历吧.

首先让我做了自我介绍, 然后问了一些基础的不能再基础的问题. 最后让回去等通知, 全程不超过 10 分钟. 差评.

和风畅想面试

该公司是朋友推荐的, 是个据说是背后有海量母公司资金支持的做区块链的公司. 去了之后感觉很不错, 比较符合我的口味, 因为我性格比较散漫, 喜欢没有拘束的工作. 这家公司可以上午 12 点来(我这个朋友也确实是天天这个点去公司的), 只要能把活儿干完就 OK. 后来因为在跟老板谈的时候过于放飞自我, 吐槽了一些工作上的事情, 卒.

阅文集团面试

阅文集团是做 QQ 阅读的, 大佬张鑫旭就是他们公司的, 他们需要一个 CSS 和 HTML 比较厉害的人, 显然我不是, 卒.

高德面试

高德更奇怪. 我去了一面, 问了一些 JS HTTP 等的问题, 我答的还不错, 然后问了我一些 CSS 的问题, 我不太会, 答的不太好, 然后我说: CSS 方面我不是很擅长. 不知道是面试官没听清楚, 还是我说的不清楚, 还是他故意的, 他说: 那我就多问点 CSS 的问题. 我: ??? 后面全程戴着微笑 MMP 的表情在回答问题. 加上他们是要做小程序的, 偏表现层, 所以后面的面试我也没去.

贝壳面试

贝壳面试的题目忘了, 回答的还不错, 不过他们想要更高级和更资深的 5-7 年的前端工程师, 所以不符合要求.

百度面试

百度面试在一面的时候印象比较深刻:

面试官: 看你简历, 有 Node 相关的经验, Node 服务器如果发现 Blabla 了, 怎么处理?

我: 我 Node 更多的是使用, 原理层没有接触过

面试官: 看了你的简历, 我就发现没什么亮点, 你能跟我说说你的优点, 让我有选你的想法吗?

我: 我是个各个方面都很平庸的人, 没有特别突出的, 也没有特别擅长的, 给我一个业务在前端方面我不能保证它做的非常优秀, 但是能保证 Code Review 和运行的时候是正常没毛病的水平. 总结一句话就是: 我没什么优点, 不好意思.

面试官: (很无奈)我给你画几个页面(画了个页面), 已经有 UI 库了, 直接使用组件, 你用 Vue 多久能完成?

我: 这个页面比较简单, 纯展示的不涉及双向数据绑定等一些交互细节, 加上有现成的组件库, 基本就是组件拼接的工作量, 一天就搞定了

面试官: 你确定一天就能搞定? 之前有个面试者, 面试的时候表现很不错, 但进来后干活很慢, 一个很简单的东西, 半天搞不定

我: 这我理解, 我也做过面试官. 面试者分两种: 造火箭的和切页面的. 我是介于两者之间的, 你让我造火箭写框架, 说实话我写不出来, 但是你让我写页面我是没问题的. 刚才你说的那位应该是造火箭的吧? 理论/核心思想一套一套的, 就是出活慢, 可能他也觉得在贵司得不到发展, 但是毕竟是百度的 title, 混个两年出去就是翻倍的工资.

面试官: 我可提前告诉你, 我们是有试用期的, 如果试用期表现不满意是会被辞退的.

我: 很正常啊, 面试和试用期都是双向选择的过程. 试用期我对工作内容不满意还能随时离职呢.

面试官: (点点头)嗯, 行, 你这面我这通过了, 我找下我领导, 她那边是终面

过了一会儿, 领导来了, 是个女领导.

面试官: 先介绍下你自己吧

我: blabla

面试官: 你对自己有什么规划吗?

我: 我觉得自己干活没问题, 但是技术敏感度不够, 说到底还是缺乏计算机科学的背景, 所以我最近的计划是想学基本静态类型的语言, 比如 Java

面试官: 我在你这么大的时候也这么想过, 我开始也做前端, 后来发现前端没什么技术深度, 于是开始学习 PHP 做了后端. 根据我个人的看法, 什么语言其实不重要, 重要的是你能在某个领域深入下去.

我: 有道理, 所以我还想在前端技术这块深入挖掘一下, 并没有转 Java 的打算, 学习 Java 只是辅助理解前端工作的意义.

之后面试就过了, 可能因为比较放松, 感觉很不错.

解释环节:

你的面试经历每次都说 “答的还不错”, 是不是自我感觉?

答: 不是的, 我说答的还不错的地方都是这些问题我之前由浅入深的了解过, 而且回答的时候也由浅入深的回答了.

后记

本文只是回忆当时的面试经历和主观感受, 不针对任何公司, 如果觉得冒犯, 可以联系我删除. 谢谢!

- EOF -
本文最先发布在: 2018 寒冬面试经历 - Xheldon Blog