面经
先分享一波面经吧,我知道你们想听这个。
我三轮面试主要聊的项目,通过项目维度考察的基础面,所以能分享的面试题不多。
- 手写Promise.all()
- aysnc 和 derfer的区别
- http1.1/http2/http3 的区别,keep-alive的作用
- http 队头阻塞问题,如何解决
- TCP队头阻塞问题,如何解决
- TCP三次握手,每一次失败会怎么样
- 说下你理解的hook
- 从全链路角度分析性能优化
以上提到3,4,8我已经在面试后整理发布了相关技术文章,
第6,7条相关文章在酝酿中了。
面试过程
面试前
我是被内推的,朋友反馈两年来第一次社会招聘,机会难得。
其实我并没有强烈离职的想法,抱着试一试的心态,简历没改,面经没刷,抱着无所谓的心态就上了。
一面
这是我最近几年感受最好的面试体验之一。
我有注意到JD上标注,有性能优化经验者优先考虑,恰好我正在推动专项优化,于是我在自我介绍中都会强调一下这方面的经验,果不其然,所有人都问了。
我从价值,目标,实施,成果四个方面介绍了我的专项汇报。
讲了大概20分钟,面试官很满意,忍不住说,这是很完整的计划了。
他对我的项目经历表现了极大的兴趣。
接着我们又聊了我做过的项目。
微前端,对比了几个主流框架和原理,和我们的选择。
前端脚手架,这个我确实做的很好,我封装过vue+webpack项目模版,vue+vite项目模版,uniapp小程序模版,后台管理系统脚手架。只是稍微讲了一个,就可以和面试官聊很多了。
Vue3项目框架搭建封装,一次学习,终身受益【万字长文,满满干货】 - 掘金
小程序原理,这个我实习阶段就已经在研究了,只是太久不做,忘记了,回答得不好。
后来,问我写没写过node,我正好缺失这部分经验,也就没问。
因为聊的投机,说完项目已经1小时10分钟了,面试官说,按惯例还得做道题目。
于是让我手写下Promsie.all()
我花了7分钟,写了最简单版本的,于是结束了。
二面
两天后,就是二面。
二面面试官项目问了性能优化相关,他更专注底层。
比如协议层,传输层的一些原理。
http部分答得还行,tcp就知道个握手了。
不过他提的问题,我说没了解,但是可以思考一下。
后来查阅相关问题,思考的内容和正确答案基本一致。
同时,对我项目网络库封装部分,非常感兴趣。
因为他说他以前也做过,但是我迟迟get不到他的点。
交流了几波之后,我终于明白了,他的封装思路和我在上家公司的封装思路是类似的。
恰好,老东家所有的前端代码我都烂熟于心,一下就和面试官对上了。
后面又聊了些,对前端脚手架未来的技术规划。
三面
两天后,就是三面。
三面面试官先询问了我的履历。
问了性能优化相关和脚手架相关,不过关注的问题更加宏观,都是全局视角。
问:前端脚手架的意义?
我说来说去,绕不开降本增效,但是我感受到面试官想听到其他东西。
问:从全链路角度分析下性能,主要问题存在哪个阶段,期望达到什么效果。
我说的有些啰嗦,面试官一直打断我,他喜欢重点或者关键词,我答得不好。
问:说下你对hook的理解?
我从公共和复用的角度回答了下,但是没准备,我感觉能回答得更好,有些遗憾。
最后面试官,说了几句我印象深刻的话
"你对技术是有热情的,也保持了一个不错的学习和输出的习惯,这很好。但是我感觉到你工作初期,缺少一个大的业务对你的挑战,没有一个好的领导对你的培养,做事情的方式有点野。如果能有一个大流量,大业务对你的考验和磨练,你的成长不限于此......"
后续
后续就是hrbp,提交流水,谈薪,发offer,离职申请。
对了,还去了趟以前的公司坐了一会,还了个愿,之前许下要去大厂的愿望,现在终于实现了。
几点感悟
你所做的大部分努力没有想象的那么有用
其实一年半前,我就想去大厂看看,不为别的,就想增加自己身上的标签。
名校毕业,在加个大厂标签,好上加好。
我在之前两篇文章中,也都提到了前端人去大厂的意义,这是我的初心。
有兴趣可以看看。
这一年多,为了这个目标我做了哪些努力呢?
- 刷算法题,刷了快400道,至今不得其法。
- 封装个项目模版,有40多个star,连我的同事都不用
- 写了51篇技术文章,水文和干货参半
- 报名了山月linux训练营,工程化训练营,webpack训练营,面试训练营,边学边忘。
- 看完了5本掘金技术小册,水分很大。
- 组内做了6次技术分享,我估计他们也没仔细听听
这些努力的大部分其实没有立即看到成效,也没有想象的那么有用。
或者说潜移默化的变成了我的一部分。
真正在面试中直接帮助到我的是 写技术博客。
但要是从结果论,我觉得有很多因素决定我拿到offer。
最重要的是环境,是有岗位的空缺,有工作机会。
其实是个人的外在条件,年龄,工作时间,学历,
然后才是个人的内在条件,自己做的努力,跟上面比起来都是微不足道,大部分努力都是无用功。
最后多少沾点运气,就是我们常说的面试的眼缘。
但我仍然劝你做些无用功,但不要报过高的期望,只要你觉得这件事是有价值的。
因为大部分时候我们面临选择时,分不清那是不是机会,还是更差。
很多时候被生活和工作推着向前,没有什么考虑时间。
你没有办法辨别什么是机会,没有人能长一双慧眼,看到机会的来临。你只能做各种各样的准备,往往是准备之后你做了临时性的选择、不知深浅的决定,正是这些准备,让你的各种选择和决定改变了命运。等你若干年回过头看,你才恍然大悟,原来那次抓住的就是机会。
筛选
我工作四年了,换了两家公司,我和遇到的同事都保持了一个还不错的关系。
但是我慢慢感觉,和一些同事的交流对我是一种消耗。
一些人虽然工作经验丰富,技术实力强悍,但是不一定能帮助到你。
我们要多和能帮助到我们的人交流。
比如说,和山月交流了一年,
我印象最深的不是,给webpack提了pr,不是哪个知识点我没听说过。
而是在面试摸底时,他说。
"不要太焦虑,你现在技术,是符合你年限的,你的工资,也是匹配市场对你的定位的。你是可以试试现在的大厂的,我觉得没问题。"
再比如说,我的前领导在年初问我今年如何打算时,提到。
"一定要努力去大厂,现在还能去,再有几年就更难了,我知道你不想加班,那就干一年就走,但你是需要这个履历。"
所有人都知道让我往高处走,但只有他明白我不想太累。
价值
其实这就很明白了,多做有价值的事情,能提升自己价值的事情,要努力增加自己身上的标签。
我们记住一个人,都是记住的这个身上的标签。
我们认识一个人,也是从他身上的标签开始的。
别人想帮助你,也需要你自身有价值。
你想和能帮到你的人多交流,也得认识到自己的身上的价值,要明白自己要什么。
自洽
每个公司都会有它的问题,换份工作也会面临新的问题。
问题只会随着职级工资的升高,越来越多,越来越棘手。
有些人沉醉研究技术,做好自己的事情;
有些人向上管理做得好,在职场风生水起;
有些人工作摆烂,不求进步,无心绩效;
有些人大厂换大厂,一路晋升;
有些人跳槽越跳越难,赋闲在家。
这些人都是对的,最重要的是要自洽,找到一个自己内心能接受的方式。