热腾腾的面经来了:360、欢聚时代的测试开发 华为C++开发
我的情况交代一下先:某985大学
弱弱的研究生女汉子,研究生期间主要是算法方面的研究,其实写的代码比较少,由于导师缘故,没有去实习过,但本科实习过10个月的时间。投的岗位大部分是测试开发,原因一个是处女座天性,重细节、爱找茬,发现问题的能力相对来说比较强,之前也自己考过软件评测师的资格证书,二是怕投开发被虐。但是实践证明,我应该投开发,反正是一样虐的……
一、360企业安全测试开发工程师:从5点面到6点15分:1h15min,方式:牛客网视频面试
- 自我介绍;
- linux命令:cd,rm,mkdir,chmod,输出重定向,如何查看后台运行进程, vim的使用
- 进程调度方式
- 多线程访问共享数据会有什么问题,怎么处理
- 写语句SQL查询、插入语句的实现
- 堆排序的实现原理
- 写一个简单的struct,问内存对齐方面的问题
- sizeof和strlen
- 内存泄漏和内存溢出是指什么,内存溢出有什么危害
- 手撕代码题:atoi(),字符串转int
- TCP三次握手的过程,seq的变化是一直都是加1吗?
- TCP、UDP的区别,如何用UDP实现文件传输
- IPv6的地址格式,保留地址,回环地址,IPv4与IPv6如何通信
- DNS的原理、tcp、udp下的DNS有什么区别(或者说DNS的tcp实现和udp实现的应用场景)
- HTTP协议的理解、HTTP包的格式、HTTP1.0和HTTP2.0的区别
- NAT的原理,外网与内网或内网之间的通信中如何区分不同IP的数组包
- ARP协议的作用
- 打开网页没反应,你觉得有哪些可能的原因。
- 一个数组中,只有一个数字出现奇数次,其他数字出现偶数次,如何找到这个数
- 给你很多很多(上千万条)URL,每个URL对应一个图片,请把它们都下载下来,你会如何实现(这个问题,我就只是说进行一个分布式下载,每台机器负责一部分下载,但是面试官貌似不太满意我的答案,后面问同学的时候说多线程下载也是一种方式)
- 电脑为什么能够同时运行那么多个程序
是的,你没看错,这些是我记得的题目,可能还有少数漏掉的,C++代码题大概就写了几分钟,其他时候都在问问题,感觉面试完,整个身体都被掏空了,不过面试官很nice,你不会或者不太理解他想要表达的意思的时候,会很耐心的转换表达方式或者给个tips。面试难度其实不大,但是太广了,有一些可能平常没注意过的问题,都是按照自己的理解答的。面完之后,就直接约二面了。
其实挺感谢360这个面试官的,又或者说挺感谢这次面试机会,结束了我0面试的困窘,更重要的是让我对自己的能力有了更为具体的评估。其实9月份投了BAT、网易,笔试都没过,所以是零面试,开始有点怀疑自己了,从不失眠的我竟然有了失眠的体验(之前因为本人心宽体胖,所以没什么东西压在心里,睡眠质量一直
杠杠的
)。面了之后发现自己的基础知识掌握其实还是可以的,也对自己增强了一点信心。
二、华为 C++开发工程师
其实投华为的时候,我原本也是想投的测试开发,唉,处女座的毛病又出现了,凡事都希望尽善尽美,投的时候总觉得自己就用C++写过算法,没写过大型软件,其实我也算是有软件
开发经验的,但是那都是本科的时候了,用的还是C#。所以一直在那里进行自我否定……
不过由于华为这次校招没有在官网上设置测试岗,所以投的C++开发工程师,在0面试经验的时候,总是想着要是面试效果不佳的话,我就和面试官说我喜欢软件测试,而且有一定的实习经验,希望面试官能够稍微放松要求。
但是360的一面让我对自己的能力有了一些肯定,而且询问发现其实很多同学都没有大型软件开发的经验,所以我决定搏一搏了,带着我C++开发工程师的简历去了某五星级酒店参加华为的面试。
我的面试时间是10.10的9:00,到的时候是8:50,但是已经有人比我先面试了,所以在等,等到我的时候差不多是9:40。可能是人品爆发,又或者是上天眷顾,华为一面自我介绍之后,只问了我的两个算法项目,毕竟算法都是自己用心去做过的,所以和面试官聊算法聊了差不多40分钟,内容是关于项目实现的细节,以及遇到的难点,如何解决的,有什么收获,还有每个算法的代码量;更喜欢做算法这种需要探索的工作还是希望做产品开发,我竟然说都可以……,傻缺了,应该说想做算法的。聊完之后,面试官问你有什么问题吗?我还意犹未尽的问“你们不用手撕代码吗?”面试官答:“不同的公司有不同的考核方式,你的编程能力在上机编程里面已经有体现(我是3道AC2道),所以主要是考核你的思维和表达,其实写代码不难,难得是如何得到解决问题的思路,思路有了,代码就有了”;我还不怕死的问:“那你们不问那些计算机基础吗?”,面试官答:“看你的成绩排名(TOP10%),相信你的计算机基础应该是不错的,而且很多东西问概念没意义。还有其他问题吗?” 问题少年的我又问:“那如果通过面试的话可以提前过来实习吗?”;面试官答:“这个应该是可以的,具体的可以二面的时候问一下面试官”。
礼貌的谢过面试官之后,我就在大厅里等我的二面面试官什么时候把我领进去面试。大概等了二三十分钟左右。一个高高的面试官哥哥就叫名字把我领了过去。
二面的面试官人也很nice,而且貌似对我的算法很感兴趣,自我介绍之后就聊算法,聊完算法就开始说自己对华为的认识,聊家里人,聊家乡,聊是否有读博的打算,聊工作地点,聊英语能力,聊业余爱好,聊平常遇到一些技术问题如何解决,是否用过人家开源的代码;聊最近压力最大的事,是否会失眠,如何处理压力,聊是否能够接受出国工作,聊薪酬(由于在牛客上看到各种14K,16K),我说通过一切论坛看见大家说华为的薪酬大多是14K,16K,这个工资是我可以接受的。然后面试官说14K应该没问题。最后我请面试官对我的表现做一个评价,面试官说整体表现都不错,而且比较积极主动(我一聊嗨了就忘了对面的人是面试官),遇到问题会自己寻找解决方法(在给面试官描述算法的时候体现的),能够多角度分析问题(还是在算法描述的时候),挺好的。傻缺的我又问:“有什么缺点或不足吗?”。面试官看我一脸期待的样子就说了,你的代码都偏算法,如果要做C++产品开发,还需要锻炼一下。
谢过面试官之后,结束了华为的面试,加上等待的时间,总共差不多两个小时左右。然后我就走了,但是后面面试的同学跟我说其实我可以领了饭票吃了午饭再走的。
总而言之,人品+实力,面试过程中的运气挺重要的,我的同学有一些要手写代码,有一些被问了智力题,又有一些被问了基础题,我是挺幸运的一个,问的都是自己的算法项目。所以还是要根据牛客上的面经以及自己所投的方向进行一些基础知识的补充,如果可以,某一方面可以深入的理解一下。还有就是写上去的项目、能力一定要能够经得起考验。
三、欢聚时代 软件测试开发
这个面跪了,真的跪了,而且是全程跪。全程面试官问的问题几乎没有能完全回答的,特别深(
奇
)
入(葩),和你之前看的面经上面的题目完全不是一个套路的。(独白:那当然,我和外面那些个妖艳货那是一样的)还记得的问题有几个交换机连接在一起,每个交换机的那个mac表存了什么东西。(这个问题在里面不算什么)还有针对我的算法,问了其他场景下的一些应用问题,和我的算法所要解决问题不一样,然后说如果是这种情况,你的算法怎么解决。我就说这个不归我的算法解决的,这是另一个算法的问题,然后他就说“那我明白了,也就是说你的算法解决不了这个问题是吗”;我就懵逼了,当然解决不了呀,我的算法本来就不是用来解决你这种问题的呀,只能说“不行!”。
其实问了几个问题之后,我整个人的感觉就不好了,几次委婉的跟面试官表示他问的太深入,平常不会想到也不会用到,希望他能明白坐在他对面的女生对于底层的东西不理解,能不能把难度调一调。而且他不会给你提示,你委婉的希望他给予提示,他就说你在想一想,其实当时我特别想说“想你妹!我都不知你究竟想问啥”,但是作为一个文明的学生,我只是在心里想了一下。然后试探性地提出自己的理解,然后迎来新一轮的抨击。
面试官问:“会C++是吗?智能指针知道吧?实现一个智能指针类”;我又懵逼了,他看我的样子,也知道我不会,面试官又问:“那换一个问题,你熟悉testlink是吗?”;我答:“是,之前实习的时候用过。”;画风突转,那我就考树吧,我也不考你B树,红黑树那些的了,有一个多叉树,给你10分钟,实现一个多叉树的结构体,并且实现把多叉树存储在数据库中,然后根据这个数据库中的数据能够完全还原整个树。”其实我听完,就想放弃了,10分钟实现,表示真的无能为力,在哪里写写画画,希望快点结束面试。面试官又说:“你不是熟悉testlink吗?难道你都不知道testlink的存储就是基于多叉树实现的吗?”(面试官一副你怎么会不知道这些东西的样子)。这个时候,我已经完全放弃了,直接说“不知道,用的时候没有想那么多!”
整个面试体验特别不好,整个过程一直被虐,1小15分钟,面完之后,问我有什么问题,,我就问了个问题:“你们是对每个人都是问得这么深入的吗?”;面试官答:“其他面试官,我不知道,但我一直是这样的”;
作为一个有素质的当代大学生,
礼貌的谢过面试官之后,就离开万达***了。
其实感觉挺难受的。下到楼下看到同班同学,聊了几句,眼泪就掉下来了(我的泪腺比较发达),本来就是担心面试被虐得太惨,才投的测试开发,结果还是被虐成狗。眼泪掉了几秒就止住了(一向如此快速),然后发现几个同学被问到的问题都很刁钻。不抱希望了,也是自己能力不符合人家的要求,得之我幸,失之我命吧。(我的命运论又开始开导自己了)
哎呀,发现碎碎念了好多,大家有兴趣的看看吧。
还有,如果你觉得压力大,可以和身边的同学多多交流,解解压,十月一大波的国企、银行、证券、电信、移动正向你走来,一起加油吧^0^