2022年6月的面试分享
2022年从阿里出来之后,进行了一些面试,每次面试都会有一些感受,这里也一并写出来,可以给大家参考下
背景:笔者2022年已是工作10年的人了,虽然16年转前端,前端经验也是6年的了,所以年龄和资历摆在这里,这个时候找工作按照互联网的惯例,已经是有点难度了。
1、字节头条
一开始我就在没有任何准备的前提下开始了字节的面试,其实即使后面的面试,我个人也不会准备什么,全靠平时积累了,也不会刷题,更不会刷算法,面试讲究一个随缘。
1.1、一面
面试官看起来比较邋遢(实际上,头条的所有面试官都看起来亲和力很差,有的精神状态看着也是怪怪的,这个是我面试很多次头条的一个最直观的感受),问的技术问题如下:
- CSRF的原理和防御措施
- 原型链的问题
- new操作符的执行逻辑
- 下面这道题目的答案:
1const a = function () {} 2 3a.prototype = {} 4 5const A = new a(); 6 7A.__proto__ === a; 8a.prototype ? 9 10a.constructor.prototype === Object
es6 module
和commonjs
的区别? 还有一些常规的八股文问题,就不罗列了,让我手写了两道笔试题:- Promise.all的实现
- 判断括号成对的有效性
整体面试难度:⭐ ⭐
一面结束后,其实我自己都觉得面的不好,结果还是让我二面。
1.2、二面
纯项目类型的一场面试,面试官首先聚焦在我之前做的低代码可视化搭建这块能力上,盯上了我的智能模块推荐。问了智能模块推荐的设计思路。如果让你设计自己的可视化搭建系统的话,怎么设计好才能够满足集团各个BU的使用?面试官以为智能模块推荐会和C端的表现结合在一起,但其实理解错了。还问到了天马的基础能力是啥?我们基于天马做了些啥高级能力?模块的联动是要怎么处理的?然后问了Nodejs的一些,也没深入问过,只是浅浅地问了下和Java的一个对比。为什么Nodejs的密集运算能力不好,但是效率会比Java高?看着面试官应该也是不在一线的,技术背景可能略微薄弱,更加偏向一些业务性质或者一些系统层面的。最后聊了一下自己认为的一些技术或者业务上的亮点?
整体面试难度:⭐ ⭐ ⭐
整体下来面试感觉有那么一个问题:好多次没get到面试官想要真实问的问题?也不知道是交流问题还是面试官表达问题。
二面理所应当的被pass了。
2、心识宇宙
第二家是做元宇宙,虚拟人的公司。面试官看着比较和蔼,听说是谷歌回来,也进过阿里一段时间。一开始不是自我介绍,还是比较有意思的,反而是先让我看看有什么问题需要问的,因为他本身不是前端专业的,所以不会问前端的问题。但是在了解他们公司的一些商业模式的时候,有些还是蛮新鲜的。因为他们是聚焦在MindOS上,是希望借助他们的一套底层AI引擎,能够让虚拟人有灵魂有思想,并且能够和人类进行互动。然后前期他们不会自己做元宇宙,而是接入类似FB或者百度之类的元宇宙平台,并售卖他们的虚拟人,提供给商家使用。前端整体目前只有1个人,其他一些发了offer还没过来。面试官是整个工程部的老大,还有一个是算法部的老大,进去的话会先开发后台管理系统,官网,还有接触到数字链的一些知识。最后笔试的时候,出了一道算中等难度的算法题?面试官还是很有耐心的说了一些提示,对于性能优化也有一些提示,整体流程还是不错。
整体面试难度:⭐ ⭐
笔试题是:给一个无序的数组,计算两个元素相加的最大值,要求这俩个元素不能相邻;
这家第一面就被pass了;本身也没太大兴趣,就没去问pass原因。
3、同花顺
同花顺是做券商的,这次来了两位面试官,前面主要在问做的项目以及项目的一些难点在哪里,之前点我达的那会还是有很多难点的,然后坦诚说在阿里这边技术难度倒没发现,反而更多的是一些综合能力的挑战。把自己之前做的每个项目几乎都说了一遍,不大清楚面试官是否听懂了,一直在点头。同花顺目前该岗位招聘的是海外部门的同花顺APP业务和功能开发,对比于目前的海外证券来说,还是刚刚起步阶段。该块业务目前投入一百来号人,从去年到现在投入了不到一年时间,海外的话存在很多不确定性,这种业务也是随国家的政策变化而变化,应该是同花顺的营收在国内已经天花板了,所以在海外做的一些试水。从面试官的面试上来看,偏流程化,觉得在前端这边应该不是很专业的那种。最后出了一道笔试题,难度不是很大。
整体面试难度:⭐ ⭐
笔试题:有一堆异步任务,要求支持每次限制并发的个数,所有的任务处理完成才返回,有任务报错就直接返回;
PS:这道笔试题,发现很多公司喜欢来考察,既考察异步函数的使用,也能考察递归的使用;
最后面试不通过,问了原因:岗位不匹配,他们希望找偏向前端的,而非全栈的
4、飞步科技
飞步科技是从事卡车集装箱运输的无人驾驶公司,业务主要聚焦在港口的集装箱运输。
4.1、一面
整个公司的前端开发目前就3个人,业务需求听面试官的描述猜测应该也不会有太多。目前集中在中后台系统上的开发,对于跨终端的也有,但是不多,听着复杂度应该就是一个集卡的管理界面,会涉及到一些动画渲染之类的。整体面试可能因为面试官并不怎么接触到一些大厂的候选者,显得特别谦虚,以一种前端知识探讨的态度在和我面试,感觉倒是不错。面试官在vue的一些原理上也掌握不错,react也看了一些,问到底层原理的时候,我就以自己知道的虚拟DOM来说,然后扯到react 16之后的fiber,面试官提到现在虚拟DOM的链表结构?和vue不一样,vue的是数组结构,因为本质描绘DOM节点监听变化是不一样的。整体面试更像是技术的交流与探讨,体验不错。
最后给我出了两道笔试题:
1/********************第 1 题**********************/ 2/* 实现⼀个 arrange 函数, 可以进⾏时间和⼯作调度 3 / [ > … ] 表⽰调⽤函数后的打印内容 4 5 /arrange('Wiliam').execute(); 6 /> Wiliamisnotified 7 8 /arrange('Wiliam').do('comit').execute(); 9 /> Wiliamisnotified 10 /> Startcomit 11 12 /arrange('Wiliam').wait(5).do('comit').execute(); 13 /> Wiliamisnotified 14 /等待 5 秒 15 /> Startcomit 16 17 /arrange('Wiliam').waitFirst(5).do('push').execute(); 18 /等待 5 秒 19 /> Wiliamisnotified 20 /> Startpush 21*/ 22/*********************第 2 题(和同花顺一样的题目)****************** 23 实现⼀个异步任务处理函数, 函数第⼀个参数asyncTasks代表需要处理的任务列表, 24 第⼆个参数n代表可以同时发起的任务数。所有任务完成后把处理结果按顺序放在数组⾥返回 25 ⼊参格式参考: 26 const asyncTask1 = () => new Promise((resolve) => setTimeout(() => { 27 console.log('resolve task 1'); 28 resolve('task1'); 29 }, 1000)) 30 const asyncTask2 = () => new Promise((resolve) => setTimeout(() => { 31 console.log('resolve task 2'); 32 resolve('task2'); 33 }, 2000)) 34 const asyncTask3 = () => new Promise((resolve) => setTimeout(() => { 35 console.log('resolve task 3'); 36 resolve('task3'); 37 }, 2000)) 38 const asyncTasks = [asyncTask1, asyncTask2, asyncTask3] 39 40 handleAsyncTasks(asyncTasks, 2) 41 /等待1s 42 /> resolve task 1 43 /等待1s 44 /> resolve task 2 45 /等待1s 46 /> resolve task 3 47 */
整体面试难度:⭐ ⭐,一面就这么面试通过。
4.2、二面
飞步科技的二面就更加简单了,项目问了一些,然后问了一道编程题,但也只是说了一下思路,思路对就👌🏻了。接下去问的更多是公司的一些情况,从面试官说的了解到,目前前端的压力确实很大,人少,一百来号人的研发团队才配备3个前端,然后在前端的事情上,主要是使用three3.js渲染的卡车的一个情况,涉及到一些渲染引擎的优化,所以在这里的话一些技术深度、尤其在3D渲染这款可能会有很多挑战。这个岗位是前端TL的角色,除了技术上的挑战,还需要管理前端的一些研发工作,可能会经常出差。面试官个人看起来很健谈,亲和力不错。
整体面试难度:⭐ ⭐,二面也通过。
4.3、三面
三面是直接到公司面试,CTO面。聊的也都是项目上的一些事情,还会问到之前负责的一些虚线团队是怎么管理的,研发计划怎么安排的,遇到一些风险怎么处理之类的问题,都是一些软素质以及非标问题的考察。没有太多印象深刻的问题,倒是自己问了很多前端这块的一些规划,以及目前飞步产品的特色,规划,需要前端去做什么?有些技术为啥不用开源的之类的,是一个双向交流的过程。
整体面试难度:⭐ ⭐,三面也通过。
最后这家发了offer。
5、海南新软
也是一个没有技术的面试,都是在问些项目以及一些业务问题,我把所有清楚的都简单介绍了一下,这个介绍相比于之前给头条的TL介绍的话,还是更加详细的。最后大概面试完一小时之后,了解了他们公司目前的业务,做的交易所或者数字金融,但应该都不是做的很好的那种,因此也就不需要考虑后面的了
整体面试难度:⭐ ⭐,一面pass。
6、讯盟科技
6.1、一二三面
第一个要求到公司面试的,公司是客户是中移动,做的协同办公的。完全是基于中移动给的政企资源,做内部的办公通信,看介绍是说客户这边都是不愁的。另外还开拓了智慧城市的业务,和华为合作。他们都是提供平台级别的能力,部署之后支持ISV到他们平台上开发,目前公司的前端规模有50个人,一个前端TL下分设几个小组,目前因为人员太多,需要找个小组长来分担一下。
全程面试也是很干脆,看着是一次面试搞定的节奏,TL之后HR之后CTO,大概两个小时搞定了。从人员分布和公司做的事情来看,应该是偏向资源型的前端开发,TL本身交流起来还是比较容易亲近。
整体面试难度:⭐ ⭐ ,上述的三轮面试通过
6.2、四面
后面通知CEO面试,也是聊了一些项目的事情,如果带团队会怎么管理之类的问题,全程三十多分钟吧,就让我回去等消息了。
很奇葩的是,最后告诉我薪资不匹配,面试不通过。这家公司感觉是来套我薪资的?非常无语的一家公司。
7、健海科技
第二个要求到公司面试的,公司是做医疗管理的公司,目前前端TL要离职,团队有15个人,需要找个TL顶替。整个面试环节,还是从这个TL学到很多东西的。
- 在阿里这么几年,对于Nodejs的使用,我这边的一个亮点是什么?
- 基于可视化搭建引擎,我们做的搭建系统的亮点是什么?
- 可视化搭建引擎已经做了很多东西,那么我们为什么还要做?做的话做出了哪些亮点呢?
- 智能化搭建是我们探索的一个亮点
- 系统的灵活和扩展性也是我们探索的一个亮点
- Node + Faas的架构融合也是一个亮点
- 全方位的数据投放检测
- 可视化搭建引擎已经做了很多东西,那么我们为什么还要做?做的话做出了哪些亮点呢?
- 中后台组件的使用数据埋点情况?
- 中后台的统一渲染架构的亮点是啥?
- 中后台应用的统一管理、统一渲染、研发流程的一致性;
- 和Java的一个研发流程紧密结合,在接口定义、接口测试、接口mock的一些深度合作
- 中后台的统一渲染架构的亮点是啥?
- 如果你是管理者,在选人、用人、汰换人上有哪些标准?
- 遇到管理危机(比如有人爆贴),你会怎么做?
- 如果你空降到一个新的团队,你会怎么样开展工作?
- 有读过哪些管理书籍?
整体面试难度:⭐ ⭐ ⭐ ,最后告知我管理经验尚浅,面试不通过~
8、函子科技
第一面是纯编程能力考察。编程题看着不是很难,但是还是花了一定时间解决的。公司是做无代码化的IDE,帮助用户快速搭建一个页面。全程没有太多废话,问了一些react的问题之后,开始编程。主要围绕链表来写:
1// create a function or class as LinkNode 2// { 3// int value; 4// LinkNode next; 5// } 6 7// write a function 8// input: List<Integer> or int[]{-1, 0, 4, 5} 9// output: LinkNode head 10// return head -> -1 -> 0 -> 4 -> 5 11 12// write a function 13// input: LinkNode head 14// output: String value 15// return a String value like "-1,0,4,5"
上述的写出来之后,继续问:
1// l1 -> -1 -> 0 -> 4 -> 5 2// l2 -> -2 -> -1 -> 1 -> 6 3// res -> -2 -> -1 -> -1 .... 4// 对上述两个链表合并之后排序
这个也写出来了,面试过程全程精神高度集中,面试难度:⭐ ⭐ ⭐ ,最后也被告知面试不通过。
9、广通优云
这个公司也是一家为中国政企提供IT运维解决方案的,客户来源本身就不愁产品卖不出去。他们提供IT运维解决方案给到政府或者银行进行私有化部署,等价于就是卖系统。面试流程也是非常轻松,没有技术面试,直接就是CTO面试。面试的过程就是把自己的一些系统化想法陈述即可。从HR得知,目前公司的前端是跟着产品线走的,向技术经理汇报的模式,现在应该是发现产品线的方式做前端,很多东西都没法沉淀,因此考虑招一个比较有经验的前端架构师,来统筹所有的前端工作(目前杭州这边的前端团队总共有四十人左右)。据HR反馈,说是后续会是TL的角色。整体面试难度是比较轻松的,可能是因为岗位的原因,没问到什么复杂的问题。最后在谈薪资的时候,明显HR和业务负责人面露难色,果然,最后还是被pass。
10、链坊科技
比特币NFT的一家创业公司,前端目前五个人,面试官一开始问了一些项目或者前端工程化的理解,以及对于CI/CD的实现。最后出了一道好像蛮简单但是我还做不出来的题目。比较尴尬。
题目要求是在React Hooks中写一个防抖函数,要求输入结束后才会打印输入的值。防抖函数的本质其实就是利用定时器不断清空后创建,如果不考虑复杂场景的话,比如立即执行的能力,其实就是一个定时器,因为受到之前自己博客写的防抖与节流文章的影响,整体思路偏乱。防抖函数因为放在了hooks里面,里面倒是有一些坑需要注意了吧。这个坑其实就是定时器在每次重渲染的时候会被干掉,因此需要有一个useState的来做定时器的缓存存储。然后利用useCallback来保证每次重渲染的时候不会丢失状态
这道题目都不会做,很明显直接被pass了。
11、Zoom
Zoom的介绍就不多说了,面试官针对项目问了一些问题,然后越来越发现貌似Nodejs在很多公司并不那么吃香,有的公司竟然排斥Nodejs的存在,也是很神奇,在最后的环节中,面试官提了两道问题,都是关系到任务队列的调度,还比较有意思。最后还有一道笔试题,竟然就是我之前做得异步任务队列限制个数的题目(参考同花顺的那小节)
1// 说出打印结果 2function test() { 3 console.log('testing'); 4 5 // 因为是死循环递归,因此这个会不断打印,之后浏览器会主动报错,停止打印 6 return Promise.resolve().then(() => test()) 7} 8test() 9 10// 说出打印结果 11setTimeout(() => console.log('timeout'), 0) 12function test() { 13 console.log('testing'); 14 15 16 return Promise.resolve().then(() => test()) 17} 18test();
最后还问了我一个问题:nodejs在不启动的情况下如何更新某个文件?
整体面试难度:⭐ ⭐ ⭐ ,面试官的技术功底不错的,也能够循循善诱。
一面直接被pass。
12、恒生科技
果然老牌的企业的面试更加偏向于八股文的面试。自我介绍完之后开始问各种可以背诵的一些问题。比如:
- Https的流程
- 客户端在使用 HTTPS 方式与 Web 服务器通信时有以下几个步骤:
- 客户端使用 https url 访问服务器,则要求 web 服务器建立 ssl 链接。
- web 服务器接收到客户端的请求之后,会将网站的证书(证书中包含了公钥),传输给客户端。
- 客户端和 web 服务器端开始协商 SSL 链接的安全等级,也就是加密等级。
- 客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥来加密会话密钥,并传送给网站。
- web 服务器通过自己的私钥解密出会话密钥。
- web 服务器通过会话密钥加密与客户端之间的通信。
- Http1.1和Http2.0之间的一个区别,之前并发的个数多少个?
- 重绘和回流的机制,怎么避免
- require和es6 module的一个区别
- es6的新特性都有哪些?
- 三次握手和四次挥手
- 垃圾回收机制
- 有没有一些前端性能优化的案例?
- typescript的好处
- 闭包的概念以及有什么作用?会带来哪些副作用?
- Async相比于Promise有什么优势
最后聊了一些个人发展的问题,因为面试官是该部门的前端负责人,中间聊了一些目前看的机会,以及为什么离职啦,还有个人规划之类的问题。
整体面试难度:⭐ ⭐ ,一面直接被pass。
13、网易美泰
全程不需要做题目的,只是问了一些面试官感兴趣的项目和一些实现原理,交流下来觉得他们公司还是很有一些挑战性的,他们会使用nodejs去承载游戏的流量,在一些并发和实时场景下还是很不错的实践。可能是因为自己一直强调后续做的事情要有足够的挑战性,最后人家拒绝了我。
14、硕磐科技
这家公司也是做低代码PAAS平台的,提供给工业的公司使用。面试官就一直很难沟通,有些问题得重复讲解很多次才能说清楚,同时也是一直受到面试官的挑战。面试官看着年纪蛮大了,在一些细节上抠得很详细,可能因为他们自己也是做低代码的,对于低代码的内部实现了解得很清楚吧,可惜我做的不是低代码引擎,只是做了业务系统。最后面试了一个小时之后,还要我做一道题目,也是无语了,面试时间长达一个半小时,笔试是一道算法题:参考:https://leetcode.cn/problems/maximum-subarray/solution/zui-da-zi-xu-he-by-leetcode-solution/。
整体面试应该是我这么多家以来最难的:⭐ ⭐ ⭐ ⭐,谁让我不刷算法题呢?
15、华望科技
公司的整体氛围以及办公环境太差了,一上来就让我先到一个会议室里做笔试题目,好吧,没刷过算法的,勉强做了两道题目,也只是手写了下思路而已。
笔试题:
- 给你一个字符串S,一个字符串T,请在字符串S里面找出,包含T所有字符的最小子串。比如S="ADOBECODEABNC",T="ABC"。输出“BANC",如果不存在的话就返回空
- 给定一个非负整数数组nums,你最初位于数组的第一个下标,数组中的每个元素代表你在该位置可以跳跃的最大长度,判断你是否能够到达最后一个下标。比如输入nums=[2,3,1,1,4],输出true;输入[3,2,1,0,4],输出false;(无论怎样,总会达到下标3的位置,但是跳到下标3之后,只能跳0步,所以永远跳不到4的位置)
- 查找两个DOM节点的最近公共父节点,oNode1和oNode2在同一个文档中,且不会为相同的节点,寻找这两个节点最近的父节点,可以包含节点本身;
等到面试官来的时候,开始一路狂输出,问了很多原理性的:
- v8的整体架构,如何和libuv合作的?
- react的整体架构,架构的原理,为什么这么设计?
- 纯用CSS,怎么实现倒计时
- 二维数组怎么扁平化成一维
等等,整个面试的感觉就是一种逼供的感觉,体感太差了。
16、云之重器
是一家做数据平台,数据分析的公司,核心在于数据,简历能够筛选通过是因为自己在阿里最后一段时间做的是数据平台可视化相关工作
16.1、一面
一面是技术和项目的面试,重点聚焦在我的最后一段经历,做的数据分析可视化平台的实现,解决了什么问题,自己在里面承担啥角色等等。之后又针对前端基础问了一些问题,印象不是很深了。一面通过了。
16.2、二面
面试流程还是很简单的,是自己比较喜欢的流程,纯粹说想法就行了,二面的面试官是TL。期间问了几个问题:
- 对于MVVM的一些看法
- HTTPS的一些看法
- React的Fiber介绍
- React的一些常用的Hooks介绍
- 设计一个支持上传大文件、可以断点续传或者暂停的组件,说一下想法
- 随机生成一个100-150之间的数
- 有一个树状结构的数据,如何获取该树的最大深度?
二面也通过了。
16.3、三面
三面是CTO和HR面,还是老套路,最后这家公司薪资没谈拢。
17、Boss直聘
这家的话,你懂的,不多评论。
总结
经过一个来月的找工作,果然如自己预料的:
- 年龄开始偏大了,性价比急剧下降
- 很多公司面试的岗位有可能是虚设的
- 想转管理岗的话,经验太浅
就是这么一个左右为难的场景下,自己可以挑选的机会已经不是N年前的那样的。大的是经济环境下的影响,供大于求,小的是个人的性价比,不像年轻人那样能卷。
这篇文章的本意是想给大家提供一个面试的参考,除此之外,也能够让大家看清一些公司招聘行为,避开某些口碑不好的公司,毕竟这是一个双向选择的环节,选错了可能就影响后面的工作了。
有任何其他求职、简历、前端问题,欢迎私信~
公众号关注一波~
网站源码:linxiaowu66 · 豆米的博客
Follow:linxiaowu66 · Github
关于评论和留言
如果对本文 2022年6月的面试分享 的内容有疑问,请在下面的评论系统中留言,谢谢。