最近面试有感

2020-06-05 15:06:53 +08:00
 JerryY

本人前端。三年经验。技术尚可。主要是 Vue 技术栈,对源码也有一定程度的了解。最近面了一些公司,深感现在行情差的离谱,分享一下最近的一些面试。

阿里面了两个 BU 都挂了,都是在项目经历这块,很遗憾,到现在为止都没什么出彩的项目,满足不了“复杂”的业务场景需要,这我也实在没有办法。阿里的面试整体体验还是不错的,就是不守时,还被蚂蚁金服的鸽了两次。

南京某家公司,一面二面都过了,终面的时候那个什么副总竟然直接问我接不接受高强度的工作,我就说看多大的强度吧,他直接说我们这边要三个月的 996,你能接受么?我说不了,遂挂。

南京另一家公司,也是一面二面都过了,二面的面试官跟我说大小周,周一三四晚上加到 9 点,到这里我已经很排斥了。hr 跟我约终面,说他们什么总经理要看我的作品,证实一下我的实力。我说我目前做的几个都是公司内部项目,都有公司的数据在里面,不能演示(我们的测试环境和正式环境的数据是一样的,同步过来的)。她说那你自己看着办吧。我就没鸟她了。

英语流利说的面试,中规中矩的前端问题都都答上来了,然后有意思的来了。他问我为什么 ES6 为什么可以做静态分析。我???当时真想反问来着,想想还是算了。还有一个就是 webpack loader 的,他问我为什么执行顺序是从后往前的,我说不一定,如果定义了 pitch 方法的话会从左到右先执行 picth 方法,再从右向左执行 loader 。他愣了一下,说那不考虑这个呢,我说这个 webpack 内部就是这么实现的,没什么特殊的,他好像很不高兴,然后问我实现从左到右为什么不可以。我????

上海某一家电商公司,这个面试官真的我至今遇到的连问题都不会问的面试官。我列几个大家品品:

  1. VueRouter 里面没有暴露给用户的两个钩子是什么?
  2. VueRouter 如何实现 keepAlive 的功能?(没错,就是如何实现)
  3. Vuex 的数据是如何分发到页面上的?
  4. Promise.all([...]) 中如何区分哪一个 promise 出错了产生异常

第一个问题我记不清了,说忘了,谁看源码记得这么清?
第二个,问半天也没问明白他想问什么? keepAlive 是 Vue 提供的功能,跟 VueRouter 有毛线关系?我还提醒他是不是想问两者如何结合使用。他说不是,说 VueRouter meta 中有个配置可以实现。我不记得我看过的源码中有类似的功能,想着是不是最近出的新特性,就说不了解。
第三个问题,你们绝对想不到答案是什么。我先是回答了 Vue -> render -> update 的那一套流程,他说不对;然后我又回答了 Vuex dispatch 数据的过程(因为我猜他说的分发是 dispatch )他又说不对,然后他提示我,说你想想为什么我们可以在 Vue 组件中拿到 store 这个对象的,你能想象我有多无语吗??我就说了 Vue.use(Vuex) 的过程,主要是通过 parent 然后不断指向 Vue 构造函数中传入的 store 对象。他说对。
第四个问题,我说可以给每一个 Promise 定义一个 catch 方法,他说不行,我放弃了,不跟他争了。
他提的每一个问题我都要跟他确认好几次,心累。

我还是继续苟着吧。希望大家找工作顺利,一起加油吧~

7203 次点击
所在节点    职场话题
44 条回复
Martox
2020-06-06 08:42:16 +08:00
@JerryY 这个我面试的时候也喜欢问
leontung
2020-06-06 10:02:24 +08:00
我也面了流利说,虽然是后端,面试感觉还可以虽然没过哈哈。
我认为不管怎么样,从语气还到沟通方式,最好还是和面试官和和气气不要惹面试官不开心,毕竟面试官不开心直接损失是自己,没有 offer 岂不是失去了一次机会?除非自己认为就是要自己开心,损失 offer 也在所不惜。
我一直秉持与面试官做技术交流的心态去面试,大家都是朋友,指出我不足我虚心接受(面试中还挺频繁的,但我反而心怀感恩,因为我以后就知道了),如果面试官真的有错误,客客气气的讲出自己的想法,再倾听他的意见。
相对于“这个 webpack 内部就是这么实现的,没什么特殊的”,我可能会以“如果不考虑这个,blah blah blah”,虽然我不懂前端,但我知道对方问的是个开放题,应该也以开放式的回答响应,而不是以“没啥特殊的”回答过去,说不定世界上还真的有更好的方案呢?又或者更好的想法就在沟通中出现了。毕竟我看 Golang 的垃圾回收都经过了几个版本的迭代,并不是一次就是最优的。
另面试聊得好说不定还可以后面加个微信,说不定以后还有合作的机会。
祝工作顺利。
yun77op
2020-06-06 10:49:39 +08:00
我试着回答一些问题,楼下可以参考下

1. es6 为什么可以做静态分析,因为 es6 的模块系统是有严格定义的,import 只能在文件顶部,import 没法放在 if 里( conditional import ), 所以是可以做静态分析的
2. loader 执行顺序为什么是从后往前,我觉得我会回答,loader 是如何组合的,本质是使用了 reduce,如果使用的是 reduceRight 就是从前往后,再扩展点的话可以说 redux 的中间件也是从后往前的组合的。
3. Promise.all([...]) 中如何区分哪一个 promise 出错了产生异常,这个我觉得只能对异常做特征检测,比如通过 error code 啥的
yun77op
2020-06-06 10:50:38 +08:00
“楼下可以参考下” =》 “楼主可以参考下”
JerryY
2020-06-06 11:34:14 +08:00
@yun77op 谢谢~这些问题我不是不会,而是真的面试官给我的感觉就是不是要这些答案。我大概的说了如下的内容:像 esm 就是用严格的定义来达到这种静态分析的目的,不像 commonjs 等那样灵活;第二个我也知道它内部可能是用函数式的实现而不是 pipe ;第三个我有想过可不可以给 Promise 加一些标记为然后在 catch 中判断。他们都不满意,我也很无奈,我还说不好意思这块我不怎么熟…哎
JerryY
2020-06-06 11:40:02 +08:00
@leontung 谢谢~我发的文字是我的大概的意思啊,我也稍微说了一点实现啥的,但是给我的面试感受一直都很不好,我后面答的就有些带着情绪了。你说的我很认同,而且我基本上对面试官基本都是尊重的,还是有很多面试官是很友好的交流技术的,这样的少数,我就自认倒霉吧。
YuTengjing
2020-06-06 11:52:08 +08:00
Promise.all 那个问题可以自己封装一个 PromiseAll,给 reject 的 reason 打个 patch 。webpack loaders 顺序的问题我觉得就是函数式风格的问题。
leontung
2020-06-06 13:54:35 +08:00
@JerryY 没事,继续加油。若给你点安慰的话,流利说人才流失严重,我认识的都离职了,去了头条之类的公司。所以别气馁,可能下一家公司会更好。
aaronysj
2020-06-06 14:43:44 +08:00
千里马常有,而伯乐不常有
JerryY
2020-06-06 15:43:20 +08:00
@YuTengjing 重写 Promise 倒是个思路哈~ webpack 那个我知道,无非是人家实现的问题呗,而且 pitch loader 的话执行顺序也不是从后到前的。
JerryY
2020-06-06 15:44:02 +08:00
@aaronysj 哈哈,我算不上千里马,顶多算八百里马 😂
JerryY
2020-06-06 15:44:17 +08:00
@leontung 多谢~
myliang
2020-06-06 16:09:31 +08:00
心累。。这些问题都答不上来.....
flashback313
2020-06-07 01:15:33 +08:00
loader 顺序被问过,然而我恰好记反了,场面极度尴尬
pyplayer
2020-06-07 11:14:28 +08:00
做个程序员真是难啊
WittBulter
2020-06-07 14:22:19 +08:00
面试结果的好坏也有一定的运气成分,而且即便遇到了和你对头的面试官,也可能遇到一些知识盲点,Max Howell 都能面挂了。自己保持心态才是最重要的。
JerryY
2020-06-08 09:30:26 +08:00
@flashback313 哈哈哈,是不是还僵持了一会
JerryY
2020-06-08 09:31:02 +08:00
@WittBulter 谢谢~
wangfyyy
2020-06-08 17:17:29 +08:00
@leontung 同面,让我写一道 DP 的算法题,你呢
leontung
2020-06-08 19:02:10 +08:00
@wangfyyy 你应该是到了现场面吧?我在电话面就挂了,没有能够进现场面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/678979

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX