0x00 投递流程
由于专业对口原因,选择的岗位是网络安全与隐私保护工程师。这一大岗位分成网络安全与隐私保护两个方向,网络安全方向对渗透测试及Web安全知识要求较高,而隐私保护方向对隐私保护、准入权限等标准要求较高,附带要求一些密码学的知识。
在投递实习生申请的时候需要选择第一意向部门和第二意向部门,第一次投递时选择流程出现了问题,导致只通过了笔试和性格测试,迟迟没有接到面试的通知。大概在五月底第二次重新投递了公共开发部,过了大概十天左右就收到了面试通知。所以整体流程如下:
4.11 第一次投递网络安全与隐私保护工程师 未选择意向部门
4.15 在线笔试
4.16 性格测试
5.20 第二次投递网络安全与隐私保护工程师 第一意向部门 公共开发部 第二意向部门 2012实验室
6.9 签署《知识产权和商业秘密保护承诺书》
6.10 技术面试
6.11 主管面试
6.12——至今 泡池子
6.28 入职通知
0x01 在线笔试及性格测试
刚收到在线笔试通知的时候开始疯狂准备编程题目,收到笔试链接邮件后发现考试没有编程题目,转而去刷安全基础知识。结果笔试题目考察的全部是涉及隐私保护协议及标准的选择题,甚至还有许多涉及用户隐私的正常逻辑推理题(错误选项显而易见)。笔试时间限制为19:00——20:00一个小时,大概用了半小时左右完成了所有的题目。隔壁网络安全的笔试考察比较全面,以Web安全为主题,还会涉及到恶意病毒及密码学的相关知识,还有一道编程题目,大概这个岗位对技术要求比较高吧。
笔试结束的第二天就收到了性格测试的邮件,然后开始在线测试。性格测试大概是每页六道题目,每个题目包含六个选项(从非常不符合到非常符合),大概有十几页的样子。每页六道题中如果多个题目选择同一选项,需要在这些题目中间选择最适合和最不适合的选项。经过翻阅网上的大量资料,总结出性格测试的几个要点:
- 针对同一问题,前后答案的态度需要保持一致
- 需要符合华为公司的文化
- 华为比较喜欢平庸的员工,除非自己特别喜欢或特别排斥,尽量少选择非常不符合和非常符合这两部分
剩下的攻略在网上也可以找到,一般来说性格测试比较好过,不过也不需要太纠结,毕竟实习和工作都是应聘者和公司的双向选择,如果价值观极其不相符,入职了也没什么意义。性格测试时间限制为2小时,一般速度大概1小时左右完工。
0x02 技术面试
今年由于疫情影响,面试都调整为线上进行,使用Zoom会议软件。邮件通知为上午9:30开始,然后9:16发来短信告知会议房间号。进去之后一位非常和蔼的小哥哥戴着口罩,笑眯眯地坐在镜头前。大致问了以下几个问题:
Q1:自我介绍
Q2:看你的简历上写了比赛经历,能不能给我详细介绍一下“美亚杯”电子取证比赛的经历呢?
Q3:该比赛中,你和你的队友如何分配任务?
Q4:既然你投了隐私保护这个岗位,对密码学有什么了解?常见的加密手段有哪些?
Q5:代码能力如何?掌握哪些编程语言?
Q6:手写代码部分。由于是线上面试,该部分可以选择手写或者IDE共享屏幕(这个选择权也是根据岗位的不同而异,网络安全岗就限制了只能手写)。如果使用IDE可以自行输出和debug。
题目:分割子串问题。给定任意全字母组合的非空字符串及对应子串相异字母数k。针对每一子串,对其中包含字符的数量不作限制,只限制不同字母的数量为k。
例如:选定子串为”abcdefffff”,选定相异字母数k=2。则所有分割结果为:”ab”,”bc”,”cd”,”de”,”ef”,”eff”,”efff”,”effff”,”efffff”,共9个。
解题代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18str_test = "aabcdefaaaaa"
def get_all_component(str_test, k):
result_list = []
for i in range(len(str_test)-(k-1)):
tmp = ''
index_offset = 0
while len(set(tmp)) <= k and i+index_offset != len(str_test)-1:
tmp += str_test[i+index_offset]
index_offset += 1
if len(set(tmp)) != k:
continue
if tmp not in result_list:
result_list.append(tmp)
return result_list
block_length = int(input())
print get_all_component(str_test, block_length)说来惭愧,刚开始代码写的并不完美,没有考虑字符串末尾出现大量相同字符时如何处理。最后进行适当调整满足了题目要求。
整体面试体验就是非常的nice,面试官也非常和蔼可亲,在面试者回答问题的时候会轻声附和,在代码调试过程中会给出指导,整套流程下来大概四十分钟左右。基本上没有什么需要注意的地方,因为应聘的是隐私保护这个岗位,问到的技术问题不算太难,手撕代码是面试的祖传项目,需要好好准备。不过前一天晚上准备的大量项目经历没有派上用场,甚至没有提及简历上写的项目。
0x03 主管面试
大多数主管面试会安排在技术面试结束后的第二天,少部分会安排在当天。主管面试邮件通知时间为14:30,结果前面一直在排队,拖到了16:40才进入面试会议房间。面试过程中大概问了以下问题,涵盖技术问题、工作理念、未来规划以及逻辑题目,同样没怎么关注项目经历。
- Q1:介绍一下简历上的”美亚杯“电子数据取证比赛
- Q2:电子数据取证分析是如何对Windows内存镜像进行分析的?
- Q3:对密码学了解多少?
- Q4:常见的密码学攻击手段?
- Q5:既然是做隐私保护的,应该对入侵攻击有所了解,简要说明一下SQL注入相关内容
- Q6:家是哪里的?未来打算在哪个城市生活与工作?
- Q7:平时有什么爱好?
- Q8:逻辑题:一个村子里共100个人,其中男人只说真话,女人只说假话。一位探险家来到村子,从第一个人询问至第一百个人村子里女人的数量,得到的回答依次为1,2,3,4,5…..100,则村子里共有多少女人?
- Q9:近日对华为有什么了解?华为受到美国制裁,发展前景堪忧,为什么还考虑来这里工作?
- Q10:如何看待华为的文化?
- Q11:如何看待996的加班机制?
- Q12:有什么问题想要问我吗?
整体面试时间为半小时左右,期间明显感觉到压力较大(面试官一脸严肃)。可以看到,首先提问技术方面的问题,重点关注参加的比赛及校内获取的奖项,当然也关注简历上注明的研究方向。随后了解个人价值取向,包括未来规划以及个人爱好。最后询问针对华为文化的看法,这里的回答就见仁见智了,不过如果希望拿到实习生职位还是迎合着讲比较好。
0x04 后续
6.28 给了入职通知,由于需要考研并且去西安比较麻烦,所以没有去。
虽然大三暑期实习没有直接转正的机会,但是秋招的时候华为会专门安排实习生招聘专场,面试的流程也比较快。据参加华为实习的朋友讲,实习体验总体令人满意。