本来已经不打算写面经了,但这几天有几位知乎上的朋友问我面试的一些细节,所以我还是记录自己今年3月份在华为通过面试,4月拿到offer的整个过程和求职经历。
找实习其实是去年的打算,然后寒假开始着手准备个人简历和学习一些比较感兴趣的知识。3月中旬的时候,学院的网站挂了华为招聘实习生的消息,然后在华为招聘网站上投了简历,投递职位是IT应用软件开发工程师。在学院那边提交申请后,周五下午华为成都研究所派车来接我们到电子科大听宣讲会。其实他的宣讲会主要是介绍华为的软件精英挑战赛,个人感觉如果只是找实习的话并不需要去听宣讲会什么的,作用不大。
接下来就是收到通知上机笔试的短信,3月19号参加笔试。华为的笔试其实就是上机编程,2个小时的时间,一共有三道题,分值为100分、200分和300分,最后总分超过100分就可通过笔试。我当时的三道题:
1、 输入一句英文,如"This is a string",要求将其每个单词的第一个字母变为大写的并输出,如果原本就为大写的就不做修改,则输出的应该是"This Is A String"。此题分值100,很简单的一道题,用gets()或cin.getline()读入一行字符串,然后处理每个字符,如果该字符的前一个字符是空格的话就将该字符变为大写,最后输出。
2、给定立方体的长宽高L、W、H,如果立方体A的长宽高都不大于立方体B,则立方体A可以放在立方体B上。现有有若干个立方体,并给出每个立方体的长宽高信息,问最多可以堆起多少个立方体。这道题分值200,我自己的做法是这样的:先对所有立方体的长进行排序,然后对排好序的立方体做LIS(最长上升子序列),最后LIS的结果就是所求的结果。当然这种方法是可以通过的,拿到了满分200分。
3、输入法的简单实现,具体题面我忘了,这道题是一道数据结构题,可以用STL中的map来做,也可以用字典树Trie处理。这道题300分,其实这题并不难,但是做起来很麻烦的,要考虑很多细节,由于时间关系这道题还没做完就到点了。
这就是笔试的一个流程,最终是拿到了300分。这部分通过后还有一个性格测试,这个就是比较一般的性格测试的那种选择题,题量较大,差不多30分钟做完。当然性格测试这部分也是比较坑的,很多题目他会以不同的方式来问你,如果你前后回答矛盾较大,并且这种错误还比较多,可能就不能通过性格测试了。
然后就是3月26日的面试了,面试之前复习了数据结构、算法、C++和数据库的一些知识,然后背了背自我介绍带上简历就去面试了。
这里先说一些小的问题:
* 自我介绍一般一分钟能介绍完自己就可以,大致介绍自己以下信息:姓名、学院、专业、所应聘职位、个人优点
* 个人简历不要有太多内容,不要超过一页,具体的简历的注意事项可以去知乎上找一找,有很多比较好的回答
* 着装部分,程序员面试的话穿的简单干净,大大方方就好,穿正装会很怪QAQ
华为实习生只有两轮面试,技术面和综合面,同一天面试完。
一面的时候,面试官先让自我介绍,然后开始看我的简历问我问题。
第一个问题,C++中全局变量和局部变量在内存分配上有何不同。我回答,一个是分配在内存中的,一个是分配在堆栈上的。第二个问题,为什么一般不在函数中开比较大的数组?回答,按照我的编程习惯,我是不会在函数中开比较大的数组的,况且编译器也不会给你通过。这个回答面试官有点懵,他说编译器会不给通过吗?第三个问题,什么情况下会发生栈溢出。回答,递归函数调用层次太深或者返回函数没处理好都会引起栈溢出。然后他问我还有别的情况吗,我没回来上来(其实我事后才想明白什么是这三个问题的关系与完美回答。因为局部变量分配在栈上,所以如果在函数中分配较大的数组的话,那么肯定会发生堆栈溢出啊,当时没反应过来)。
接下来他就问了我的项目的内容,我就简要给他介绍了下我们的项目是做什么的,以及我自己在项目组中担任的角色。然后他就让我出来等二面了。
整个技术面的过程不到5分钟,面试官问的问题挺少的,可能是面了一上午了比较累。
在等候厅等了大概将近一个小时然后开始二面,二面是一个面试官对两个面试者,这种情况下是最有压力的,刚坐下的时候,面试官一直在埋头写东西,那会儿是我最紧张的时候,心跳的不停。
然后他开始问我们两个,对华为的IT应用软件开发的认识是什么,我们两个回答的都是软件工程中的那一套内容,需求分析、编码和写文档。他告诉我们,华为哪有什么IT应用开发,基本上全是云计算(他原话)。哈哈哈哈,当时我就不紧张了。
他看我第二志愿写的是安卓开发,问我安卓平台和iOS平台有何不同。我回答,一个开源一个不开源。他又问我,这两个开发哪个要简单点。回答,iOS要简单些,因为安卓的开源导致了其知识的多则杂,并且由于各种框架的推出,使其某些规则流程变得不太规范,而iOS的规则的统一就在一定程度上避免了这些问题(其实我自己也不太清楚是不是这样,有空花时间了解一下其不同点)。
接着,他问我们两个能不能吃苦,我们两个回答的都差不多,基本上都是小地方出身,在家就要帮家里忙家务一类的。接下来面试官的问题就刁钻了,他问我们:可不可以这样说,你们现在的成就是通过努力吃苦得来的,这样你们以后的职业规划和发展眼光会因为此有很大的局限性。我难得智商上线,回答的比较好,我答的是:以前的努力使我能有这种成就,而我在大学中的见识学习与阅读才决定了我以后的高度。(哈哈哈哈,说出来我自己都不信)
然后他就问了下我们的发展意向,我回答的是以后会去深圳发展,如果未来几年有机会的话会考虑出国。
接下来就没有了,他就让我们回去等消息了。
3月29号收到面试通过的消息,华为让我反馈一个实习时间,根据实习时间决定要不要发放offer,这是确定入职时间用的。
然后就是等了,等了将近一个月,4月21日华为的HR打来电话问我可不可以将实习时间提前到六月初,我就调整了下时间。
4月22日收到实习生offer。