爱立信实习生面试小结

 

    由于研三了,正在忙于找工作,估计以后会有不少面试的机会,所以想把每次面试的经历都写下来,从而总结经验,为下一次面试做准备!争取每次面试都能有进步,做一个“面霸”!呵呵~

    昨天参加了爱立信的实习生面试,没有笔试,直接面试。说实话,去之前就是抱着试试的心态,当是去积累经验的,所以心态还行,但是当两位技术经理把我领进了一个估计只有七八平米的面试“黑屋”,并且一开口就是满口英文的时候,我开始不蛋定了~呵呵~慢慢地感觉脸越来越热,头有堵堵的感觉!

    下面是面试过程的大致对话:

  (E:代表爱立信面试官;I:代表我)

E:非常感谢你抽时间来参加这个面试。

I:能够参加这个面试是我的荣幸!

    接着大家巴拉巴拉讲了一些客套话......然后就是开始问技术上问题了,基本就是围绕着我简历上的“个人技能”一项展开问题的。

(总结经验1:简历的个人技能一项不能写得太夸张,但是也不能保守。因为太夸张了面试过程会没有底气,特别是面试官会往难的问;而太保守呢,估计连面试的机会都得不到!例如:如果C++是自己的常用开发语言,那么可以写擅长C++,而不要写精通,显得太夸张,也不要写熟悉,显得有点保守。 )

E:你简历上写熟悉数据结构和常用算法设计,请问你知道红黑树吗?

I:......呃......不知道,但是我记得STL中的map好像是用红黑树实现的,我用过map,可是不清楚红黑树的具体定义和相关实现。

E:那你知道平衡二叉树吗?

I:知道。

E:可以给我们写一下平衡二叉树的构建、插入等算法吗?

I:(再次被问傻,其实一个月前我才复习了一下数据结构的,但是一下子让我写,而且脑子当时嗡嗡的,根本想不起来!)一下子还写不出来。

E:那你写的你熟悉数据结构和算法设计的,呵呵,那你在选择排序算法的时候,都有什么考虑吗?

I:数据量小的序列,采用选择、冒泡等排序就可以,数据量大的序列,就可以选择堆排序和快速排序,他们的时间复杂度是O(n*log n)。

E:你知道怎么构建堆吗?可以给我们写写吗(指了指挂在墙上的小白板)?

I:知道,给我一分钟时间想想。(我想着再不硬着头皮写写,估计就没戏了,还好昨天刚复习了堆排序。一分钟后,我拿起了笔把构建堆的伪代码写了出来,还大概讲解了一下,面试官表示还挺满意。)

(总结经验2:面试前一定要做好充分的复习准备,就围绕着简历上的“个人技能”和“项目实习经历”来复习。)

    接下来是C++方面的了,面试前我觉得对C++的内容还是很有自信的,因为的确是我常用的开发语言,而且看过几本书,所以面试前就没有抽时间复习C++。但正是因为这样的心理,加上脸热脑涨的,把很多平时熟悉的东西竟然一下都想不起来了!导致我接下来面试的一连串失败啊!!!

(总结经验3:面试前,就算是自己擅长的技能,也要翻书复习一下,否则面试时紧张的话,会什么也记不起来的。)

E:你说你擅长C\C++,请问你什么时候析构函数需要是virtual的?为什么需要是virtual的?

I:当父类派生出子类的时候,需要把析构函数声明为virtual的。否则在析构一个子类对象时,会导致析构的不完全。(这个回答我感觉面试官明显的不满意,一直追问我多态方面的东西,我的回答也貌似不是很准确,哎,更紧张了~)

E:C++的三个特性是什么?

I:多态,还有......(卧槽!脑子竟然一片空白,神马状态啊,这都想不起来了!等面试结束后,我在公车上想了想,啊!三个特性不应该是:多态、重载和继承吗?cao!如此easy!而且在公车上,我还想到了一个圆场方法:我应该和面试官说:我有点紧张,一下子想不起来了,您可不可以告诉我其它两个特性,然后我对这两个特性进行解释。但是面试时却没有这么机敏,哎真是悲剧!)

(总结经验4:面试一定要克服紧张的状态,否则在脑袋里连很简单的东西都搜索不出来!克服紧张状态的方法我想就只能是多参加面试了,面多了应该就好点了。)

(总结经验5:以后遇到这种想不起来的问题时,无妨这么说:我有点紧张,一下子想不起来了,您可不可以告诉我,然后我来进行详细的解释。这样的话,面试官就会觉得你还是知道的,只是紧张忘了。)

E:你写过拷贝构造函数、赋值操作符重载和加法操作符重载吗?

I:嗯,写过。

E:那加法操作符重载返回值是什么?

I:返回引用,为了支持链式表达式。(不假思索呀,呵呵有点得意,但马上就要悲剧了)

E:返回什么的引用?

I:(由得意马上转为焦虑。返回什么的引用?我还真一下子想不起来了,是对象本身的引用还是A+B和的引用?为了支持A+B+C,那应该是返回A+B和的引用吧)返回和的引用。

E:和的引用?(面试官估计已经无语了。后来在公车上我冷静仔细想了想,我也无语了,呵呵~A+B的和肯定是在函数内声明的一个临时变量,怎么能返回一个临时变量的引用呢!这是C++中的一个大忌啊!即不能返回栈内存上的引用和指针!至于正确答案我觉得应该是返回和的一份值拷贝,就是和的值传递。正确有待验证。)

E:STL的六大组件是什么?

I:container、algorithm、iterator、adapter还有fuction object,还有......(想不起来了)

E:你还是有点了解的,还有allocator。

E:你用过什么container?

I:vector、map、multimap

E:vector和list有什么区别?

I:我曾经也有这样的想法,但是也没有去研究,所以也不知道有什么样的区别,也没有用过list。

E:呵呵...好吧。(估计面试官觉得我没有刨根问底的研究精神!) 那vector的内存模型是什么?是连续的内存分配吗?

I:我记得看过书,应该是数组,但是动态分配的不连续内存,就是默认会分配一定长度的,如果需要可以有个成员函数可以进行扩充预留。(心里特别虚,十分没有底气地回答,呵呵没办法,真没有研究过。)

E:STL的算法你知道有什么?

I:sort、max_element、min_element、find等

E:有的容器有成员函数sort,为什么还要用算法里的sort?

I:因为算法里的sort比较灵活,可以指定排序的依据。(回答的也没有底气,哎~)

E:你简历写着对sql了解(然后向另一个面试官说)你问问他sql方面的问题吧。

I:(我直接心里慌了,我sql压根没有学过,简历上写上了解sql,是因为想着很多单位都要求数据库,所以我就怀着蒙混的心理写上了。这会被问到了,注定悲剧了!呵呵)sql我不熟,可以说没有过相关经验,呵呵,不好意思。(其实这里我可以机敏一些的,比如我应该说我在大唐实习时做过access数据表的解析,所以还算有点了解。)

(总结经验6:不懂的东西最好不要写在简历上,否则被问到的话,那只有悲剧的份了!还有就是一定要学会机敏些,不要做一棒子把自己打死的回答,比如不要直接说“我不知道”,这样自己和面试官都会立即无语。)

E:如果让你把一块内存拷贝到内存的另一个地方,你会怎么做,就是会有什么场景?

I:(我心里想着:场景?神马是场景?不就直接memcpy吗?)......这个就用memcp吧.....(再次十分没有底气,看着面试官能感觉到他肯定失望了,呵呵~悲催啊~)

(后来在公车上想想了,到底这个问题是想让我回答什么呢?冷静想想,是不是应该说用memcpy的时候的注意事项啊?比如说源地址和目标地址的有效性,和拷贝长度不能越界。哎,有待高人指点啊。)

E:好了,我没有什么问题了。你有什么问题吗?

接着顺便问了一下无关痛痒的问题,然后面试就结束了。

(总结经验7:学习一定要学的扎实啊,否则面试时候的回答都没有底气,再加上紧张,更是啥也不敢说了。)

    这次面试感觉很失败,因为首先是怪自己没有事先针对性地去复习,其次是临场会脸热脑涨很影响发挥!哎~学了这么多年,革命的道路还是很长很长啊~加油!

你可能感兴趣的:(job,interview)