01 前言
我去年参加的秋招,投了很多大厂和安全厂商,面试了几十轮。
今年秋招马上也要开始了,所以特别分享一下我去年面试华为的经验,希望对大家有所帮助。
我的学历还算可以,也有一些科研成果,因此找工作都是找安全算法相关的工作。
我投递的岗位是华为安全的机器学习工程师,主要利用AI来解决安全的一些问题,比如流量检测、恶意软件检测之类的。
02 投华为的技巧(非常重要!)
这里给学弟学妹们一个小tips:
华为体量真的非常非常大,我们在官网投递时,只能选择大部门,比如2012实验室可信实验室。
但是这里需要注意的是,这个可信实验室也非常非常大,base地遍布全国。因此投华为时,切忌瞎投。如果你啥都不问清楚,直接瞎投,那么你的简历就很可能被你不想去的城市的部门锁定捞走了,这种情况下就非常麻烦。
比如,你想去北研所,但是你的简历被东莞的部门捞走了。那么这个时候,你需要向系统提交简历解锁申请,然后再让北研所的部门锁定你的简历。这个流程非常繁琐和麻烦,极大可能会耽误你的秋招进度。
因此,投华为最好的方式是,多加几个华为hr(华为hr都非常热情,他们招人是有kpi的,他们非常愿意和你交流,巴不得你投简历过去),问清楚他们部门具体业务是什么,base地在哪里。和hr沟通协调好了以后,再按照他们指引投简历,给出简历编号,这样他们就可以给你安排面试流程了。
03 面试流程
笔试:
华为计算机类的岗位全部都需要笔试,可以多刷一下leetcode。
不过我因为有竞赛奖励,所以免掉笔试了。
学弟学妹们如果有竞赛得奖的话,可以问下hr是否可以免笔试。
华为笔试不算难,leetcode好好刷个大几百道都没啥问题的
1)第一轮面试
第一轮面试我估计是一个17级的哥们,看起来就非常懂技术。以下是问题:
自我介绍
不多说了
阐述一下多头注意力机制的原理
多头注意力机制的核心思想是为每个输入生成一个注意力权重,反映出模型在处理当前输入时应该关注输入序列中的哪些部分。这种机制能够动态地捕获输入序列中不同元素之间的依赖关系。
多头是什么意思
通俗点说就是一个人看一幅画是一个观点,如果有10个人看一幅画就有10个观点;最后将10个观点综合计算,也就是V矩阵,最终得到一个比较综合的结果。
随机森林的原理
随机森林属于集成学习方法中的Bagging(Bootstrap Aggregating)的一种扩展。集成学习的核心思想是通过组合多个弱学习器(如决策树),来构建一个强学习器,从而提升模型的预测性能和稳定性。随机森林通过构建多棵决策树,并结合它们的预测结果,增强了模型的准确性和鲁棒性,同时通过随机采样和随机特征选择,降低了过拟合的风险。它在处理高维数据、存在噪声的数据以及需要提高模型泛化能力的场景中表现优异。
项目经历,抠细节,非常细,面试官绝对非常懂
项目经历就不透露啦
如果大模型做恶意软件检测,如何做
-
数据收集与标注
首先,需要收集大量的样本数据,包括恶意软件和正常软件。这些数据可以包括以下几种类型:静态分析特征、动态分析特征、元数据等。 -
特征提取
针对不同的检测方法,可以提取不同类型的特征:
静态特征:包括字节码特征、反汇编后的指令序列、字符串特征等。
动态特征:包括行为日志、API调用序列、系统事件(如文件创建、进程启动)等。
混合特征:结合静态和动态特征,可以形成更丰富的输入数据。 -
模型训练
使用标注好的恶意软件和正常软件样本,训练模型进行分类。使用交叉熵损失函数或其他适合分类任务的损失函数。 -
模型评估与优化
评估指标:常用的评估指标包括准确率、精确率、召回率、F1分数、ROC曲线和AUC值等。
模型优化:可以通过调整超参数、添加正则化、增加训练数据量、应用数据增强等方法优化模型性能。
SQL注入的原理(这里是因为我在简历写了我会一些基本渗透工具,所以面试官才问的)
SQL注入攻击的核心原理是利用应用程序在构建SQL查询时未对用户输入进行适当的过滤或转义,从而将恶意的SQL代码嵌入到原本合法的SQL查询中。这样,数据库服务器会执行攻击者输入的恶意SQL语句,而不是开发者预期的查询。
其中有联合查询,盲注等手段
手撕代码
最后留了10分钟手撕代码,题目是写一个判断最长回文子串的方法,leetcode原题。(华为计算机相关岗位的前两面必须有手撕代码环节,这是公司规定的。至于给你出什么题,完全看面试官看你顺不顺眼。看你不顺眼,就出一道hard题,如果比较顺眼,就出一道easy题)
反问环节(这里涉及华为的一些内部内容,就不放回答啦)
我来了以后大概会承担什么样的工作?(这个问题非常关键,涉及到你入职以后的工作,一定要问)
2)第二轮面试
第二轮面试是一个19级,级别很高,面试官非常和蔼客气,面试体验极佳。
自我介绍
不在赘述
恶意软件对抗样本如何生成
涉及项目内容,不做描述
在某厂实习经历的内容
涉及实习内容,不做描述
HTTPS流量如何检测
无法从payload层面出发,只能从一些流特征,比如每秒的字节数,数据包数,证书长度,有效期等提取特征。再利用一些机器学习或者统计学算法,进行分类。根据测试集,不断调优模型与选择参数,最终形成一个准确率高的算法。
你用了很多机器学习算法,但是我们更关心特征中哪些特征比较重要,如何考虑这个问题?
现在有很多算法都可以计算在分类问题中,哪些特征占的权重高,比如随机森林有一个插件就可以计算;除此以外,还有一个通用的shap算法,可以计算每个特征在分类任务中的重要程度,泛化性强。
你人生中最大的挑战是什么?
这个问题就不做描述啦,大家实事求是即可
你期望薪资是多少?
我相信公司会根据我的能力给出匹配的薪资。
你做了什么样的渗透测试任务
我的主业是机器学习算法,渗透测试涉及的不太多。于是我就把咋们课程,靶场的做的作业简单介绍了一下,比如sql注入,XSS,业务逻辑等介绍了一下。
如果检测效果不好,如何解决?
可以通过修改特征工程,比如恶意软件的一些特征,加入一些新的特征,不断尝试。再尝试一下其他深度学习算法,并调整一下网络架构,超参数之类的,最终形成一个检测指标达到要求的模型。
工作base地在哪里
我就不做描述啦
反问环节?
我问的是华为的人才培养体系是咋样的?
聊天
我表明自己是一个追求技术的人,喜欢钻研技术。学弟学妹们面试华为的时候,也一定要让面试官感觉到你是一个热爱学习,热爱技术的人,华为特别喜欢这样的人,特别加分。
手撕代码
考了一道翻转链表,leetcode原题,很简单
3)第三轮面试
这一轮面试官基本上是20级往上的面试官了,基本上不会问你技术问题,而是考察综合素质。所以这里我就只放一些问题,答案就不放了,毕竟每个人的回答都不一样。
为什么选择华为(划重点!!!这个问题回答不好,直接G!!!)
回答要点:热爱奋斗!奖励努力工作的人!技术氛围浓厚!期望通过自己的努力改变世界
你的职业规划是什么
不再赘述
入职以后你想做什么研究方向?
就说自己之前已经和一面和二面面试官都沟通好了,部门的研究方向我都很感兴趣,到时候可以根据业务走
简历上随便挑了个项目问
不再赘述
实习经历,做了什么
这里一定要按这个逻辑回答:面临什么问题,采用什么方法,解决了什么问题,达成了什么效果
反问环节
我问了面试官作为职场老前辈,能否给我们新入职的年轻人一点建议
03 谈薪技巧
这里需要说明一点,华为只有秋招,没有春招!请同学们记牢!
不管什么时候面试,都是大概集中在12月份开offer。所以华为面试不用着急,他们会等所有人都面试完,再按照面试表现,学历来综合排序,决定发offer。因此可以先签一家保底,华为如果愿意给你发offer,是愿意等你毁约的。
大概会在12月份hr给你打电话,说谈薪啥的。这里hr会先压价,比如最开始给你15b,其实你argue一下,说还有其他offer,薪资比hr给你讲的高;接着又表明自己是想来华为公司的,能不能开15a,每个月月薪多两三千,那么你就放弃另外一家公司,来华为公司。这个时候hr不会直接答应,他会先说去申请一下。
一般这个时候会有两种结果,申请通过和不通过。就算申请不通过,你也可以拿15b级的薪资,对于你来说没有损失。
最后我成功argue到了50w年薪
04 感悟
华为公司的企业文化是非常适合奋斗者的,这里多劳多得体现的淋漓尽致。比如15级,节假日加一天班至少给2000+,只要你愿意干,就绝对能挣钱!
当然每个人有自己的想法,大家根据自己的追求选择合适的工作就行!
期望大家都能找到满意的工作!!
获取免费网络安全优质学习资料与干货教程+
送渗透工具、技术文档、书籍,面试题、视频(基础到进阶。环境搭建,HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等)、应急响应笔记、学习路线。
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。