2023/10/16

个人情况:博士,预计2024年毕业,参加了2023秋招,华为应聘到3面主管面。

下面按招聘流程顺序,记录我的面试经历。因为想写详细一点的独立文章,所以想来想去还是放到CSDN上。

1. 宣讲会

宣讲会的提前批在8月,正式批在9月。

我参加的是提前批。提前批应该是一些特定人才的集中宣讲会,宣讲后即可走后续流程,如果想参加的话需要多留意hr的相关信息。提前批的后续流程都是线上进行的。

与其他同学交流后,认为9月份全国巡回宣讲+面试应该是正式批。这一批的面试是线下集中进行的,通常从1面到3面共3轮面试会在一天内完成。

具体岗位申请方式,不同部门不一样,建议提前和hr联系,确认相关流程。

2. 《知识产权和商业秘密保护承诺书》签署及资格面试

这两个基本不会筛人,所以我把它们放在一起。

《承诺书》主要要求双方在后续的流程中保护自己和华为的知识产权和商业秘密。不论哪一方都没有泄露秘密的义务和必要。

资格面试的主要流程和后续面试差不多:开摄像头,自我介绍,面试官提问,应聘者提问。资格面试主要考察应聘者是否满足基本要求,作为第一场面试,是所有面试中最简单的一项,面试官主要围绕我对华为的了解、职业规划等方面提问。

华为会议统一用WeMeeting客户端,还需要摄像头和麦克风,需要在面试前准备好。

我建议同学认真把资格面试当作模拟面试练习。另外抓住这次机会向面试官提问一些你关心的问题,因为这次的面试官是与应聘部门相关的华为员工,同时与之后就职的利益相关度是最小的。

3. 上机考试(编程题目测试)

据说1~2周开一次机试,需要提前1周左右由hr预约。今年有顶会论文、顶级比赛奖项可以申请免机试。

题目有100,200,300分共3道题目,每道题目估计20个样例,总共600分,150以上进入面试。样例均匀占分,例如100分的题目过了19个样例就得到95分。

模拟题链接,注意考前准备、代码提交方式、以及你所用语言的支持情况(编译器版本、自动补全、工具库调用等)。

下面简单描述我的机试题目。

1)统计一天(00:00-23:59)中一名员工的有效工作时间。数据包含形如hh:mm的员工打卡时间文本,首先提供一组打卡到岗时间,然后提供一组打卡离开时间,需要根据到岗时间和离开时间确定员工在岗的时间。另外有两条打卡规则:(1)若员工在离开5分钟内回岗,期间时间视为在岗工作;(2)每天12:00-14:00和17:30-19:00是休息时间,期间在岗不计入有效工作时间。数据保证没有连续的到岗或离开打卡,即数据是合理的。(100分)

解题思路:

  • 排序到岗时间和离开时间,然后按组处理。python比较好处理文本类题目,处理前先把文本转为数字。
  • 如果当前组离开时间和下一组到岗时间相距5分钟以内,将两组记录合并处理。这样做可以避免其它方法产生的复杂嵌套和特例。
  • 对于每组到岗和离开时间,关于休息时间做多个if-else判断计算。建议将这种判断计算方式封装为函数,调用方便一些。

2)有某种频率设计问题,可描述为一个完全二叉树。二叉树的最上层是一个根节点,最下层的每个叶子结点对应一个频率f_i。二叉树每个节点的值由两部分构成,(1)节点下方最下层叶子结点的频率f_i中最大值和最小值的平均值;(2)从该节点(不含)到二叉树根节点(含)路径上所有节点值之和。求每个节点的值。满分要求计算复杂度O(节点数量)。(200分)

这道题是一个阅读理解题,需要反复分析题面和样例才知道题目要我们怎么计算,我这里记录的相对原题已经直白很多了。

解题思路:

  • 第一层遍历:从下层向上层遍历,记录每个节点位置的频率最大值和最小值。
  • 第二层遍历:从上层向下层遍历,记录每个节点的值。

3)有某种程序调度问题,给定一些程序,每个程序的运行时间相等,有不同的运行占用、前提程序。当程序满足运行条件时立即运行,输出运行这些程序过程中的最大系统占用。数据保证程序能够全部完成运行。(300分)

这道题也类似一个阅读理解题,理解难度比第二题低一些,满分难度也比第二题低一些。

解题思路:

  • 构建一个可运行程序的队列,每轮运行其中程序。初始时,将没有前提程序的程序压入队列。
  • 运行队列中程序,记录运行占用,更新前提程序记录。将目前没有前提程序、且未运行过的程序压入队列。
  • 循环以上步骤直到队列为空。输出最大运行占用。

如果题目要求“输出按最小运行时间运行这些程序的最小最大占用”,这道题就难很多了。

4. 职业性格测试(心理测试)

华为职业性格测试平台为易考,性格测试共36组题,限时2小时。每组题有6个陈述句,需要判断每个陈述接近自己的程度。如果每组题中有多个陈述的接近程度相同,大概率触发附加的“其中哪个陈述最接近自己”问题。

这个测试是我见过最反人类的心理测试,不看攻略自己填的话一致性永远不达标,我数年前的实习流程就挂在这里。如果第一次结果的一致性不足,可以申请第二次测试机会。

攻略:华为社会招聘心理综合测评攻略 (libin.mobi) 

测试时间充裕,且没有录屏和切屏限制,建议每道题在攻略表中复制+查找对应答案,没有记录的题目可以把自己的答案记在电子文档中,以此保持一致性。实测下来有个乐观指数卡线过,可能攻略的某些红线过于保守了,但能过关就是好的。

5. 专业面试1(一面)

流程:提前一小时签到,开摄像头(只有自己开,面试官不开),自我介绍,面试官提问,现场机试,应聘者提问。从自我介绍到应聘者提问之前全程有录屏。

自我介绍是公式化的流程,因为这时不需要共享屏幕,建议在电脑上对着自己的简历或事先准备好的介绍文字念。主要突出三个部分:自己的基本情况(姓名、学校、学历、毕业时间等)、自己的竞选优势(论文、项目、比赛等)、对岗位的认识和自己为什么适合这个岗位。

面试官提问:选一个代表性项目/论文详细询问、最擅长什么编程语言、编程语言最常用哪些库、有什么其它特长(Linux服务器、自学语言等)。感觉目的是公式化记录个人信息

现场机试面试官共享屏幕并给出一道题,然后自己共享屏幕、实时用自己的IDE写代码+调试、最后和面试官讨论代码逻辑、面试官截图留念。包含讨论的总时间大概为30分钟,是比较考验熟练程度的。

本次机试题:有一个m*n的网格,每个格子上有0(空地)和1(墙壁)两种值,计算从(0,0)(m,n)的最短距离,墙壁无法通过。简单的bfs搜索,不过手撕很容易出bug。

面试官问题:1)讲讲整体逻辑;2)你觉得哪里容易出bug;3)如果从起点无法到达终点,代码如何结束循环?

应聘者提问:随便聊聊就好,至少问一个问题会有好印象,但冒犯或者浪费时间的问题不如不问,凭自己把握了。

5. 专业面试2(二面)

二面和一面的流程一模一样,不再赘述了。

本次机试题:给定包含n个随机数的数组和整数m,找数组中令求和目标\Sigma_i(y-x_i)最小的m个数\{x_i\}_{i \in [1,...,m]},其中y是这m个数中最大的数,输出此时的求和目标值。时间复杂度要求O(nlogn)。比较考验分析,题解代码量很少,排序+一次窗口遍历即可。

6. 业务主管面试三面

一面和二面可能是在公式化评估个人素质,而三面是和未来的顶头上司交流岗位需求,个人感觉侧重点从纸面定量考核 转移到了 综合的实际工作能力。其中含义,如果读者不明白的话可以多查查相关资料,建议要想清楚两者的差别。

流程:提前一小时签到,开摄像头(自己和面试官都开),面试官提问,应聘者提问。

这次面试官提问的问题非常杂,但总地都是为了确认我是否能在这个岗位上做好。问题包括求职位置倾向、深挖一个项目、对岗位和业务的了解程度、预期在岗位上能做什么事、3~5年职业发展规划、自己研究领域中认为最成功的人或团队、有没有长期坚持做一件事。

能不能在华为工作好,前期看稳定、后期看热情,我非常认同。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐