腾讯/字节/华为/旷视 2022届实习面经—计算机视觉方向
作为2022届3月毕业的学生,现在开始找实习,主要目的是为之后的秋招积累一些面试经验和工作经验,如果能通过实习转正也算是为秋招找到了一个基础选项。
本文主要记录了本人在实习面试过程中的经历和心得体会 ,以进行一个自我的总结梳理,同时可能对目前在面试或者即将求职的同学有些帮助~
个人情况
先介绍一下本人情况:
985本硕,研究方向是全景视频拼接、图像曝光度校正,发表相关论文共3篇,目前已经收到腾讯、字节跳动、旷视的offer,华为也已经面试完在等结果。
在进行岗位投递时,我发现实习生岗位大都划分比较宽泛,比如我投递的计算机视觉方向的岗位,并不会细分到很具体的研究领域,更多情况是公司会根据简历来进行筛选,从而安排适合你的部门(或者是招人需求比较大的部门)进行面试。
由于研究领域涵盖比较广,加上简历上我各种项目经历都罗列了出来,导致我的简历并没有针对性,收到的面试邀请也是五花八门。这里我建议如果有明确的目标岗位意向的同学可以对简历进行针对性优化,仅仅罗列相关的项目经历即可,这样可以避免简历被自己不感兴趣的部门捞起来,造成双方的资源浪费。
字节跳动—计算机视觉研发
简历投递
简历直接发给HR,第二天直接收到面试通知,很快很高效
一面(约50分钟)
1. 面试官先对介绍了部门,以及本次面试的流程(自我介绍,代码能力重点考察思路和复杂度分析,项目经历),提醒控制自我介绍时间。
2. 自我介绍(大概一分半钟):基本情况+研究方向项目经历+个人特质优势。
3. 算法题:合并k个升序链表 直接leetcode hard难度了。面试官提示不急着写代码,看看有什么思路,并且分析复杂度。
我首先提出用最小堆把所有节点存下来,一个个取出。面试官问时间复杂度,并提示没有使用到每个链表升序信息。
我再提出使用归并的思路,两两合并链表。也是要求分析复杂度,然后让我实现一下。涉及链表指针的题目实现起来很容易出错,平时要多练习。我先实现了两个链表合并的函数,然后再实现主函数。期间面试官有很认真在看我写代码,提示了我很多次代码存在的问题,比如内存忘记释放,链表末尾的节点忘记处理等等。
磕磕绊绊写完代码,可能是考虑到时间问题,没有让运行评测了。面试官点评“需要的提示还是有点多,可能是有点紧张了”,人还是蛮好的。
4. 聊项目:之前实习时候的OCR主要是做什么任务,评价指标是什么;目前主要做的环视拼接主要做了什么工作,有什么指标。
这部分感觉面试官不是很懂这几个领域,没问太深,这个时候就要注重描述清楚问题的背景,以及自己的工作,最好再有量化评价。
5. 聊工作期待:我比较喜欢做应用,解决实际的问题,不太想要单纯刷指标。
6. 反问环节:围绕着工作场景、工作内容提问。
总结:前面的算法题考察部分其实表现应该比较一般,但是后面聊工作期待和反问环节和面试官聊得比较契合,就给过了。所以关于自己的工作期待其实应该也有所准备,可以结合这个部门的具体情况进行阐述。
二面(约45分钟)
1. 聊项目:二面在一面结束十几分钟之后就开始了,面试官直接开始问项目。
主要问的环视项目,先解释基本步骤,阐述在项目中的工作。他主要关心了相机标定的部分,应该是他比较懂,聊得很深,包括位姿初始化、联合优化的具体细节。期间我提到g2o这个优化库,他没有听过,要求我详细解释一下,甚至当场去查这个库。他对联合优化这个部分要求解释原理,是否有实验数据支撑它的有效性,为什么这么做是有效的。
2. 算法题:最长递增子序列问题
面试官在这道题基础上稍微改了改,要求输出最长子序列的内容而不是长度。我实现了基于动态规划的方法,他修改测试用例后发现结果不对