时隔一个月,我又来分享面试经历了

lijianan · 2024-8-19 10:36:04 · 346 次点击
## 时隔一个月,我又来分享面试经历了(话说今年找工作已经离谱到这种程度了吗)

## 挑几个觉得抽象的公司分享一下(都是最近面的):

## 第一家:

公司背景:base 上海,规模不大,20 人不到

一面挂,面试过程中一点技术不问,简历上的技术和项目一点不问,抓住 `SEO 优化`、`埋点相关`、`异常上报` 相关的问题不放,聊了一些过往的相关经验,但聊的不是很深,最后对方说,他们招聘非常谨慎,他们需要 C 端经验比较丰富的候选人,而我的项目经验大多偏 B 端,所以短时间内应该不能给我答复(说到这里我也不抱希望了,简历上写的很清楚,方向不对口,干嘛还约我面试)

- 抽象程度:`两颗星`

## 第二家

公司背景:base 上海,规模不大,20 人不到,AI 方向

首先是笔试题,一个难度比较大的算法,参考 GPT 答案写出来了,然后是一面,问了一些常规的项目和技术,过程不是很顺利,本来以为挂了,没抱希望了,没想到过了一周 HR 通知过了,然后安排了二面,二面是系统设计,面试官是后端负责人,题目是 `设计一个酒店预定系统`,共享屏幕,写了系统设计的过程,重点写了 `需求分析`、`技术选型`、`接口设计` 三大模块:

1. 需求分析:包括 `功能需求` 和 `非功能需求`,功能需求包含登录注册、浏览列表、搜索酒店、预定房间、支付逻辑、订单管理、用户评价打分、取消订单等等模块,非功能需求包含了性能优化、扩展性设计、UI 、交互优化、安全性、用户隐私、埋点分析等等模块

2. 技术选型:主要对比了前端的不同领域、不同技术栈的区别、以及每个 lib 适用的场景,这块是比较拿手的东西,感觉没有什么问题(但是由于对方不是前端,所以不确定有没有听懂我说的)

3. 接口设计:参考上面的需求分析做了 api 设计,包括接口 api 命名,详细到了接口入参出参(顺便对比了 `GraphQL` 和 `REST ful` 两个规范的区别和优缺点)

一套系统设计下来,大概写了 50 分钟,差不多一页半文档,个人感觉没啥问题,最后还是挂了,没给原因(另外前端的技术一点没问)

- 抽象程度:`三颗星`

## 第三家

公司背景:base 杭州,规模不大,15 人左右

一面线下,中午两点跑去公司聊了一下,当时是杭州最热的时候,地表温度 60 度,到家之后发现鞋底子都融化了,聊的过程比较顺利,项目经验也是非常对口,但是负责人说他们老板比较看重学历,一般需要 92 起步,所以要先帮我问问

问了之后说可以约二面,然后约了二面(先说一下,这家老板是真的看重学历,但是很离谱,他自己又不愿意承认,也不想把这个事情搬到台面上来讲,所以二面专门安排了不懂前端的 AI 工程师面试算法,应该是打算让我知难而退,当然了,这些只是我的猜测,如果不是,算我冤枉了你):两道算法题,一道 easy ,一道 hard ,限时 50 分钟,最后用了 45 分钟,全做出来了

然后到了老板面,上面说了,老板很看重学历,为了让我知难而退安排了算法面,结果没想到我过了,然后不回我消息了,再然后第二天,负责人回复说,老板又仔细看了一下简历,还是觉得学历不行,学历不行就是潜力不够,所以决定不给我通过,到这里我已经无语到懒得回消息了,那一开始干嘛约我面试呢

- 抽象程度:`四颗星`

## 第四家

公司背景:remote 办公,规模不大,20 人左右

首先 Coding Test ,需要编写一个 `Server` 应用,应用内容是一个 `User Profile` 页面,包含展示用户名、性别、手机号、邮箱等字段,所有字段需要 `支持编辑和保存`,并且需要持久化保存到数据库,包括后端接口都要实现,自行选择 DB library ,最后还需要部署到他们公司的 server 上面,并且给了详细的文档,教你怎么操作,并且还建了专门的 Testing 答疑群,遇到问题的话可以在群里问,完成之后需要把代码提交到 GitHub 个人公开仓库里面,然后回复邮件,限时三天,Coding Test 通过之后才可以正式约面

这里实现功能大概用了半天时间,包括前端页面和后端接口(`vite`+`React`+`antd`+`nest.js`一把梭),难点在于 `搭建环境` & `构建过程` 遇到很多坑,包括`启动 server 实例`、`创建应用`、`初始化应用模板`,这一些列操作都需要使用 `他们自家的脚手架工具`,折腾这些的过程中遇到很多报错,后面问了一下才知道,他家的脚手架不支持 `windows` 系统,目前只能在 `mac` 上运行,没办法,为了完成 test ,我又在本地装了 `docker`,在 `docker` 环境里面运行部署操作(庆幸我的系统是旗舰版 Windows ,因为 docker 不支持学生版和家庭版),后面部署在本地节点的过程又遇到一些列问题,不清楚是他们的脚手架有问题,还是我的环境有问题,折腾到这里,已经打算放弃了,于是回复了邮件:目前已经花费了两天时间,精力有限,还需要时间去准备其它公司的面试题,所以到此为止了。

虽然最终没有按照要求把应用部署到他家的容器上,但还是把代码传到 GitHub ,贴在邮件里面了。本来以为笔试没过,没抱希望了,但是过了几天 HR 通知笔试过了,可以安排面试。

接下来是一面,过程 90 分钟,聊天大概 30 分钟,问了一堆八股文,剩下一个小时都在做题,具体什么题目想不起来了,总之难度不高,做完之后时间还没到,面试官又要求换个 api 实现,也做出来了(一面遇到的所有问题,答案都需要共享屏幕写出来,不能光用嘴说,包括八股文,1234...每一点都要写出来)

第二天通知一面过了,然后又约了二面,二面同样 90 分钟,聊天大概 20 分钟,剩下一个多小时都在做题,场景题:需要实现一个 `移动端的九键输入法`,刚开始拿到题目的时候觉得很简单,但是真正写起来发现有很多细节需要去做,首先简单的布局,除了 12 个主体数字按钮,还包括一个拨号按钮、一个退格按钮,然后部分数字按钮下面有字母,比如 `数字 2` 对应 `ABC`、`数字 3` 对应 `DEF`,短时间内连续按同一个键时,需要从数字切换到字母,这些细节都需要处理妥当,在实际编码的过程中,发现有三个 case 需要处理:

1.  两次按键是同一个键,未超时,反复点击时修改最后一个字符
2.  两次按键是同一个键,已超时,点击时追加数字
3.  两次按键是不同的键,点击时追加数字。

核心逻辑:用 currentKey 记录当前按键、用 letters 记录当前按键包含的所有字母、用 letterIndex 记录当前是第几次重复按下,也就是切换到哪个字母,然后用一个防抖记录按下同一个键时是否超时,最后用一个 inputValue 记录所有按下的键,一顿操作之后,最后大概实现了 80% 的功能,时间到了,被面试官喊停了,测试的过程中发现了一个小 bug ,但是主要逻辑没问题,实现思路也没问题。所以我猜应该能通过。然后面试官又想让我实现一个 T9 输入法(实际上我都不知道什么是 T9 ,还让对方给我解释了一下),但是时间有限,对方只是让我说了思路,这里我提到跟自动补全的思路有点像,首先需要一个词库,然后预处理,先把词库变成数字组合(方法有很多,正常的匹配思路就是一个个找前缀),但是实际的实现肯定更加复杂,我就说不出来了,但是我又提到了 Facebook 出品的 lexical 富文本编辑器,这个编辑器内置了自动补全单词的功能,我告诉面试官,我看过这个源码,里面就有一个很大的词库保存在本地。

到这里二面就结束了,其实我已经失去耐心了,毕竟在这家公司上投入的时间和精力已经远远超过了其它公司,前面的笔试用了两天,后面的两轮面试又花了四个小时(因为失业的时候作息比较乱,白天都在睡觉,强制起床参加面试,还要把精神最好的一面表现出来)

再然后 HR 通知二面过了,又约了三面(又是 90 分钟的过程,包含一个大的场景题,我是真的头大)

三面约在周末中午,先是聊了一下二面的场景题,问我后面实现的出现了 bug 是什么原因,其实我真想说是因为时间不够,然后聊了 20 分钟的项目亮点和难点,又到了场景实现环节了,他说他比较喜欢考察移动端的九键输入法,但是二面已经考过了,所以三面换一个场景,实现一个谷歌日历,我真是两眼一黑。核心功能:以天为单位,精确到小时,垂直布局,显示 24 个小时,区分上午下午,并且当前的时间要显示一条高亮的线,并且支持事件预约、调度,被预约的时间段高亮显示,如果同一个时间有多个事件,那么高亮部分也需要重叠显示,大概这些吧,基本和谷歌日历一模一样,过程懒得说了,结果就是只实现了一半,点击当前时间可以选中进行预约,支持当前的时间显示一条高亮的线(这里计算的逻辑浪费了十几分钟,要计算当前的分钟是一天当中的第几个分钟,然后计算出这条线的位置,并且需要用定时器,每隔 1s 更新当前时间,然后计算 div 高度,对这条线进行偏移)到这里基本上一个小时过去了,时间不够了,被面试官打断了,也没有给反问的机会,直接结束了面试。到这里已经基本猜到挂了。

到这里,我并不觉得是自己的问题,一个小时实现出这个场景,在我看来是一件不太现实的事情,毕竟在以往工作中,类似的需求排期都能给我一周时间,再想起来当初 antd 的 DatePicer 组件重构工作,就连强如豆酱这种级别的巨佬,当年也重构了两个月。(虽然不是一个量级的)

然后果然过了两个小时,HR 来通知我三面挂了。

总之在这家面试中投入了巨大的时间和精力,最后突然觉得很不值得,早知道不如笔试题直接给我挂了,也省的约面试了。(另外其实我比较好奇这家公司的面试通过率是多少)

- 抽象程度:`五颗星`

后面还有两家抽象公司,懒得记录了

最后只想说一下,按照这些标准的话,现在在职的员工重新入职,保守估计有 80% 都进不去

最后附上个人简历,杭州求内推:
- http://www.lijianan.com (能不能访问随缘吧,不能访问就是服务挂了)
举报· 346 次点击
登录 注册 站外分享
16 条回复  
bojackhorseman 小成 2024-8-19 10:41:04
第二个面试要求"接口设计",是招全栈吗
zixianlaiye 小成 2024-8-19 10:42:11
为了让我知难而退安排了算法面,结果没想到我过了

这个人还能说点实话,挺难得
linauror 小成 2024-8-19 10:44:08
从描述中,感觉你已经很厉害了
chuck1in 小成 2024-8-19 10:45:04
之前看到过 op 发的帖,有点不敢相信居然到现在都没找到(合适的)工作。这要是前几年,op 这种情况怕不是机会随便挑?

现在这行情真是烂的可以了。简直是呵呵。
Torpedo 小成 2024-8-19 10:47:10
这个第四家挺离谱的。输入法和日历组件是一下能写出来的么。
potatowish 初学 2024-8-19 10:49:02
太恐怖了,感觉你耐性真的好
EgoTao 小成 2024-8-19 10:51:43
还是狼多肉少。 想想刚工作的时候,前端能自己完成个页面,懂点基础的八股文就能随便入职了。  实际上入职以后也都能胜任工作。  现在的要求越来越高,进去结果还是在屎上堆屎。     甚至逼出来一堆面试能力极强,工作/解决问题能力缺不怎么样的人。
iOCZS 小成 2024-8-19 10:53:27
就像渣男一样,给你一点看得见的希望,又带给你极限拉扯的绝望
banmuyutian 小成 2024-8-19 10:54:31
感觉 LZ 很强了,第四家再面是不是要你写个 JS 引擎出来。。。(PS:简历挂了)
12下一页
返回顶部