研发工程师的面试经验
上周完成了在加拿大的第一次真正意义上的工作面试,五位面试官车轮战面试我一个人,一共用了差不多四个小时。无论最后成功与否,以下是自己总结的一些面试经验:
1. 跨专业找工作还是很有难度的。这次应聘的是一个跨国软件公司的研发工程师(以前在国内从来没想过去软件行业,甚至排斥IT民工这样的职业,可怜的是计算机依然是中国学生在国外的第一谋生手段)。第一个小时是编程能力的面试,面试官是两个资深的软件工程师。他们似乎根本不关心我的学历,经历,以及研究成果。上来就了用考察软件编程能力的问题狂轰滥炸。所幸的是问的问题比较随意,没有那种经过精心设计的题,基本上都还是应付过来了。
2. 第二轮是研发部门的头和一个研发工程师,好像都有博士学位。开始向我详细的介绍了他们部门的一些情况。然后就开始出一些技能考察的题。全是编程的算法题,至于编程是否规范和清晰,他们似乎倒是不关心,只着重算法的考察。起初的题目还算简单,很快一个小时就用完了。他们好像还有很多问题要问,只能安排第二天让我再去。
3. 第三轮是另外一个部门的头。只有这一轮的面试和我想象的差不多。面试官跟着我的节奏走,听我在那里滔滔不绝的说我博士期间的“丰功伟绩”,偶尔还问一两个外行人问的问题。然后就是一些普遍可以预测的问题,比如为什么要离开学术界,为什么要进他们公司,这些问题的答案估计面试者都烂熟于心的。
4. 最难的考验是第二天继续的技能考察,一个很难的算法,非常复杂。对于一个本科不是计算机专业,连离散数学,数据结构和算法等课程都没有学过的我来说,是一个不可能完成的任务。十分钟搞不出来,面试官们失去了耐心,当场给我讲了讲解法。再后来的几个题也比较困难,回答勉强满意吧。总体感觉,第二天比一天的表现还是要差了不少。
总之,进入计算机软件行业,外国公司对于软件工程师几乎没有什么学历要求,在乎的是真材实料,比如思路是否清晰,书写是否规范。应聘再高级一点的职位,会多少种编程语言也不重要,我说我用Linux和Python,他们也没有表现出多少兴趣,我说我以前MATLAB用的最多,他们也表示认可。最早重要的还是软件的精髓--算法。当然,如果到了项目管理和架构师级别,肯定又是另一种情况了,貌似离我还非常遥远。
最最重要的一点。那就是一颗平常心看待面试的成败。成功了固然可喜,失败了也不可悲,一定还有更好更合适的机会。