睿琪是我面试的第二家公司。不得不说表现还是虚,为总结经验教训,特发此贴。
面试前的准备:几乎没有。公司不怎么了解,只知道是关于金融类的IT公司。。主要是PAT考试以后,睿琪的HR跟我发了个邮件,就过去了。。
面试的岗位是技术研发工程师。面试的流程主要是心理测试(MBTI)、技术一面、技术二面,以及最终的HR面。
MBTI测了下,跟当时在职业生涯规划课上的结果好像不一样
技术一面主要问了C、C++的基本知识。回忆了一下,问题好像是这么几个:
【基础概念类】
1. 解释下指针的基本概念;(小菜)
2. 解释下什么是线程;(堆和栈的分配说错了,栈线程独立,堆线程公用,面官友善地启发我,纠正了我的错误理解)
【STL库】
3. 实现一下memcpy函数;(就写了个while循环,各种特殊情况没考虑啊!)
4. C11新特性的了解;(我说了个匿名函数?后来面官告诉我函数参数类型可以&&传??反正没怎么听懂。。)
5. 如何删除一个vector中值为某个数的所有元素;(我说可以不断find erase,被告知时间复杂度太高,要想个线性复杂度的。。我机智的说可以重新开个vector把元素拷贝过来啊,XD。面官提供了一种双指针法解决这个问题)
【OOP】
6. C++中类、对象、构造函数的理解;(这个OOP学的还行,勉强算对了应该)
7. 解释下虚函数的概念,以及实现上的原理;(时间久了都忘了,只好乱说了一下多态性,提到了虚函数表,被问到细节就蔫了,面官笑了笑,说,点到为止点到为止,呵呵)
接下来是技术二面,二面的面官是一个01级浙大学长,果断拉了拉近乎,先是照着简历问了一通,后面问的主要是C、C++的高级主题(感觉也没有很高级)。问题主要是:
1. 验证一个数是不是平方数,要求log(n)的复杂度。(当时怎么想的啊!居然没想到二分法!)
2. 如果要自己实现vector,你会怎么实现?(数组,如果超出size的话就重新分配内存,面官说这个方法效率太低。。问有没有更高级的做法,考官就说了个要有自己的数据结构,就没有然后了。。)
3. 如果要自己实现map,你会怎么实现?(说了哈希,后来问哈希冲突的话怎么解决,好像当时说的也不是很对。。)
面完这些已经是中午了,于是吃个了午饭,继续回来等。HR姐姐人还是很NICE的!问题主要意思是:
1. 你怎么看待你的专业和要申请的专业不完全对口?(我们交叉学科啊学的东西多啊,和设计师沟通无障碍啊,blabla)
2. 你未来3年的职业规划?(不知道。。。)
3. 你对新技术、新趋势有没有一定的关心?(IOS8?不了解。。比较百度地图和高德地图?胡乱说了一通)
面完试,乘车返回玉泉,课虽已过去一节,觉得也面试也甚是有趣,尤其是发现了自己其实还是个菜比的事实,于是大四的第一节课的后半段里,听的更认真了。