个人情况:哈工大通信本硕,计算机基础非常薄弱,C/C++
简历内容概要:中科寒武纪软件研发实习经历,学生时代的几次不值钱的学科竞赛省级奖项,和“华为杯”研究生数模竞赛国二,无项目经历
timeline:
3.31笔试
4.3第一次性格测试
4.8下午被Hr告知性格测试不合格,心态炸裂
4.8晚上19点技术面+主管面,各一个小时
4.29性格测试补测
5.10刷出od状态
5.24oc
3月31日笔试
第一题,一个赛季多个战队,队伍名称用单个小写字母表示且数目不超过26,进行多场比赛,输入很多形如“a-c 4-1”的字符串表示一场比赛的结果,最后输出一个战绩榜单。
挺简单的题,但是我一直在力扣上刷题,在华为这里第一次见识到了要自己处理输入输出,自己写头文件的笔试机考。这三道题的输入输出就把我搞得大汗淋漓,人仰马翻。建议没练过这种形式的还是要练一下,无论是C风格的输入输出还是C++风格的输入输出,以及缓存清理,回炉再造重新学一学。直接把输入作为一个字符串读入,并进行字符串处理也不失为一个应急办法,但导致的后果很可能是,最后你要面对的字符串处理问题,难度可能比题目本身还难。
我用了一个可以自动排序的map存储队伍名和得分,后来我室友吐槽既然队伍数目不超过26个你为啥不直接搞个长度为26的数组。。。用迭代器遍历读取最后结果时,因为功夫不到家,正逆迭代器混用,出了bug半天不知所然,浪费了大量的宝贵时间。
第二题,leetcode781.森林中的兔子 https://leetcode-cn.com/problems/rabbits-in-forest/
在草纸上画一画,就能硬想出来解题思路。lc给的官方解法,是用哈希表统计数组元素出现次数,我是对数组排了顺序,让相同元素挨在一起,异曲同工。思路应该没问题,但通过率没有达到100%。大概是因为我的输入处理问题很大(这道题我就是把输入作为字符串读入,然后处理字符串了)
第三题,给定一个长字符串作为“地图”,给定一个整数作为动点初始坐标,一个短字符串作为要凑成的目标,问若要凑成目标,动点最少挪动多长距离。
深度优先搜索,大概是因为智力缺陷,这类题我真心不擅长,随便写写骗了点分。
最后也就两百多分,非常凄惨。
据我观察,先被捞起来的笔试分都很高,也都是一次通过性格测试的,大家一定要重视笔试和性格测试啊。
性格测试:
简而言之,第一次没经验出了大问题,第二次看了看网上的华为性格测试的攻略
当时参考了:
害怕华为有重复检测机制,不敢直接照搬网上的答案,自己敲定了每一页每道题的答案,并在本地excel表格中记录自己的答案,防止前后不一致翻车
4.8技术面:
自我介绍,
手撕代码,leetcode724.寻找数组的中心下标 https://leetcode-cn.com/problems/find-pivot-index/
要求在本地编译器上写,比较简单
讲一讲“华为杯”研究生数模比赛中,你都做了什么工作?
因为我做的是A题华为题,通信背景的数学建模题目,面试官直接借坡下驴,问了我傅里叶变换都有什么应用,你对傅里叶变换的理解?
我先介绍了周期信号的傅里叶级数,和傅里叶级数的数学底层原理,信号空间的正交性,根据正交性,所以如此积分求内积,能得到就是无数个离散的,对应频率的信号强度,分立的信号强度之间的间隔,也就是频率分辨率,等于原始周期信号的频率(周期倒数)。非周期信号可以视为周期无穷大的周期信号,对应的频率分辨率则变为无穷小,级数求和变成了积分,离散的频谱聚合成了连续的频线图,对应频率的信号强度,退化成了信号在频率域上的能量密度。傅里叶变换本质上是傅里叶级数在非周期信号上的推广。
讲一讲你的实习经历,做了什么工作,学到了什么。
继续借坡下驴,问了问我google_test的一些细节。
C语言,C++语言和Python语言的区别(我在上家实习的三种主要工作语言)。
我先把Python一顿狂黑,变量无需声明,搞得人根本不知道家伙到底是此时刚声明的还是之前就声明过的。代码块居然要用缩进来限定范围。类的成员不分公私,继承方式也特别随意,这玩应真的是面向对象语言吗?
我之所以激动的把Python一顿狂黑,是因为我根本不咋会用Python,很怕他追问我Python的细节,所以我并没有黑上头,马上就把话题转移到了我更熟悉C/C++区别上
1.动态内存分配释放malloc/free升级为更方便安全的new/delete
2.C风格字符串本质上是char类型数组,C++有更好用的string类
3.C风格静态、动态数组,升级为array,valarray,vector
4.STL和Boost
5.添加了引用,本质是封装的指针,后世的oop语言抛弃了指针,但保留了引用
6.空指针NULL升级为更安全的nullptr,我顺便讲了为啥更安全
7.四种智能指针,自动释放内存
8.更安全的强制转换static_cast
9.面向对象三大特征,封装,继承,多态,口胡的时候提了一句,尽管C语言被认为是面向过程语言而非oop,但C++的这些特点都能在C语言中看到雏形,比如多态的雏形就是C语言的函数指针
在这里我被打断,你确定吗?你有没有阅读过C++的源码?这些面向对象特性是怎么用C实现的?你尝试过用C语言的函数指针实现多态吗?
我很尴尬,回答:没做过,再说了,我要是真想写oop程序,我为啥不直接C++(面试官露出姨母笑)
你了解现在最前沿的通信技术吗?
不了解,我硕士研究方向是新体制雷达
反问环节
最后,面试官告诉我,你表现得很优秀,在我这里已经通过了,10分钟左右就要进行下一轮面试
4.8主管面
这场面试我自认为表现不佳,处处被动,我的答案没有参考价值,因此在此只列举我能回忆起来的,当时被提问的问题
1.聊简历,几次竞赛经历,和实习经历
2.聊一聊自我评价,说一说你受到过最大的挫折是什么?
3.你对华为狼性文化怎么看待?如果任务实在完不成,怎么办?
4.有什么职业规划吗?
5.为什么选择这个部门?为什么选择上海?
反问环节
总结:
和我面过的其他企业比,华为的笔试面试算比较容易的。但我由于基本毫无准备,整个过程险象环生:笔试拉胯,性格测试差点被挂,主管面聊人生处处被动。这都是前车之鉴啊。
全部评论
(5) 回帖