上周终于把三方寄出去了,从去年9月开始找工作,现在终于算是告一段落。借着放假的机会,整理下自己找工作的历程,也算是一些心得体会。希望对下一届的找工作的同学有所帮助。也给一个月后的答辩攒RP吧。
本人软件本科、计算机硕士,最后签约公司:morgan stanley。在求职开始,考虑到除专业之外,自己没有其它兴趣或者特长,因此给自己的求职定位就是IT企业的研发岗。因此,我的找工作历程基本分为 IT民企和IT外企,也穿插了在体制内单位打了几次酱油。下面主要回忆面试过程中问到的问题,有些时间太久不太记得了。
IT民企部分
- 华为云计算(offer)。华为招聘分为一面,二面,机试。一面问的是以技术为主,写了两个程序,第一个是shell排序,第二个是就餐者离席次序(每次数到第七个人离席),都很简单。二面时间很短,大概五分钟,就是问问为什么选择华为,对云计算有什么了解。虚拟化(我个人简历上的研究方向)和云计算关系,愿意不愿意去深圳等。机试就是常规性格测试。
- 腾讯无线(offer)。,招聘分为笔试,一面,二面,HR面。笔试考察的主要是基本的数据结构和c语言。一面考察基本功, 抽象类和接口区别,多态,多线程实现方式,linux socket建立过程,JAVA同步和linux中的线程同步机制,写快排程序,分析复杂度。二面考察的是解决问题能力,问了一些实际项目中遇到问题如何解决,最后问了一道大规模数据处理问题。进入HR面基本是拿到offer,也会问一些问题,工作地点倾向,性格特点等。腾讯是我第一个签约的单位,不过它家办事很规范,违约办理很快。
- 百度系统部(一面后无下文)。投百度职位的时候,在商务搜索和系统部之间纠结了很久,最后因为个人背景原因选择系统部。百度效率很高,笔试完不久就立即发面试通知,系统部就参加了一面,因为职位关系,我准备了很多内核以及虚拟化相关的内容,但是面试让我大跌眼镜,问的全是JAVA知识,让我措手不及。一面过后无下文,后来证实投系统部的都面了一面没有下文,不知是个人问题还是走形式。
- 淘宝(offer)。淘宝招聘分为笔试,一面,二面,三面,HR面。没有参加笔试,霸王面。一面面试官对虚拟化感兴趣,一直在问项目,二面面试官直接写程序,一个8*8方格不同颜色填充,找出相同颜色块的最大区域个数。然后写一个huffman的建树过程。三面面试官问了一些内核知识,然后让设计一种读写锁,问了一个赌徒赌钱的博弈问题。HR面基本就直接告诉拿到offer,然后谈薪资。淘宝这两年进去是个机会,因为还没有上市,所以承诺有期权。待遇上也是根据面试表现分等级。
- 创新工厂(二面杯具)。在教2-100被HR MM的演讲忽悠着投了创新工厂,第二天就参加笔试,创新工厂的笔试和面试很多重复。一面先问项目,然后让写程序,第一个程序和淘宝那个找最大色块数类似,第二个程序是随机发牌程序。二面问题不太记得了,因为在西电阴冷又破的教室,和同学去的时候就想回来了,据其它同学面试,KMP算法写的最多。创新工厂招人很少,而且待遇没有竞争力。
- 中国银联(offer)。典型的国企,没有笔试,面试就一轮,只需时间最多10分钟。问问做的项目,遇到四面困难等,薪资期望等,就结束了。
IT外企部分
外企开始的都比较晚,今年外企普遍回暖,所以多了不少的机会。
- Marvell APSE(offer) marvell 没有面试,也是三轮面试,在面试之前,根本不了解这个公司,因为第一天投简历,第二天早上去面试,很仓促,在面试路上问舍友,是什么部门,汗一个。第一轮面试,主要问了c++的一些问题,都很常规,写了一个c++的多态程序,然后让编写一个程序,实现屏幕自动显示字体调整大小的程序。二面面试官主要问项目,问了一些driver开发的问题,内核模块如何写,DMA传输等。然后让举一些编译优化选项解释,我列举了 packed,voilate 等。三面不问技术,以英文交流为主,问自己的兴趣爱好,求职意向和薪资需求等介绍公司和部门。Marvell的offer是周围同学中收到最晚的。
- Microstrategy (止步二面)。微策略分为笔试,面试,AC。笔试5道题,基本覆盖了算法,语言,基本数学,智力题。西安的面试分为2轮,面试细节很好,每一轮面试前,前台的HR会给面试官打电话,然后面试官下来接你去面试。这也是我第一家参加全英文面试的公司。微策略不会考察背景,直接就写程序,一面:在数组中快速找出两个和为2010的数,找出数组中唯一重复的数等。二面:第一个是全排列程序,第二个问题是100层楼,一个球,球在第N层掉下来完好,N+1层会碎。求 N。测试次数尽可能小。这家公司因为突然全英文面试,准备不充分,是失败原因之一。待遇很好,浙大同学称之为米缸。
- IBM Z-system (offer )。 IBM 没有笔试,面试两轮,后来我又接到了一轮电面。第一轮面试写程序,写过一个单链表逆置,写了一个利用栈实现队列功能。再问了一些语言知识和设计模式,具体不记得。二面以内核为主,问了Linux内存管理知识,然后问了虚拟化技术和VT技术,还有项目。电面过程不记得,问的都比较基础,和前面面试也有重复。
- Intel (offer)。职位是二进制翻译组,去上海AC。第一面依旧是排序算法,项目,二面是自己写一个内存分配算法,考虑编译优化。三面问体系结构,然后让设计一种BT翻译模型。四面就是manager,介绍下职位,主要是你问他。Intel 报销效率超快,去的时候给HR发票清单,走的时候HR就会把报销好的信封交给你)
- EMC (offer)。这是一家感觉最遗憾和对不住的公司。EMC笔试很晚,11月6号笔试,感觉考得很不理想,所以没去想了,后来面试官告诉我EMC主要是笔试刷人的,60分客观题的线是18分。面试分为3轮,每轮半个小时,一面面试官以项目为主,问内核,虚拟化。二面面试官技术问的很细致,写了好几个程序,二叉树遍历,哈希算法设计,还有不记得了,三面面试官回归一面形势,比较泛,据三面面试官说,主要是笔试刷人,面试主要在我参加的二面面试官那边。面试当晚就收到offer。拿到offer后,和美国一个架构师又面试了一下,那个组主要是bios,firmware的开发,底层问的比较多。EMC近期很火,存储很热,加上vmware,未来发展应该相当不错,并且提供的福利待遇在外企中也是很好的。
- 微软(SDET offer)。微软对我来说是意外。面试百度时接到微软笔试通知,因为没有西安考点就没有考虑,但是微软的HR很负责,后来打电话确认成绩为什么为0的时候,我极力争取了一次远程面试机会,问了一些基本问题,判断链表环,哈希算法,然后问一组连续数字数组某一数字异常,如何检测。然后拿到AC机会,和 intel面对面在闵行,很偏僻,持续一天,全英文。这一家面试我大部分时间站在黑板前,因为要不断的写程序,一面:第一个设计一个数据结构和算法遍历保存STL的层级结构,二面:自己提出需求设计一种扩展功能的队列,比如扩展三个功能,复杂度尽可能低,三面,二叉树共同父节点查到,设计一个运行时代码解释框架。这个div开发组最后还是没有给我机会,回来后意外收到另外一个组的测试职位电面。最终放弃。
- Morgan Stanley (offer) 找工作的结束点。Morgan 也是意外,笔试当天因为签约腾讯,错过,但是后来同学推荐,通过推荐流程第二批进去。过程也是最长最痛苦的,分为电面,coding test,AC,全部全英文。Intel面试回来下午,电面,问的都是语言问题,以JAVA为主,然后做coding test,限定24小时交,熬夜5点赶完发过去,早上八点起来参加EMC面试,下午2点在做coding test的review,是个老外,问自己如何分析,如何做的,特别问了我一个正则表达式(超长)如何写的。然后上海AC,早上7点40到,分为一面,二面,三面,群面,继续笔试,follw up 面试。一面写程序依然是快排,介绍项目,问了一些语言,二面我超时了(HR过来提醒面试官2次时间到),不记得面试官问了什么,但是后来进来一个香港人,一直问我,设计一个系统,如何做,给我描述一个场景,指出有什么缺陷,如何改进等。三面,主要问的问题是设计一个算法,保证数据读写不等待。群面就是小组讨论,第一次参加群面,题目是如何促进morgan和高效学生之间最大的沟通。在公司吃完午饭,接着做了一个笔试题,然后我又被留下follow up面试,问的主要是数据库设计问题,问了一个电梯设计算法。面试结束已经下午4点。
酱油类
南京841研究所,中物院计算技术研究所。本身对这些单位没有太大兴趣,所以就不说了,面试内容也没有参考价值。
罗里罗嗦写了一堆,总结下来,对于计算机类找工作,我觉得主要有以下几个方面。
- 基础。交大的学生,基础还是都很扎实的,所以这些不是基本问题,这些依赖于平时个人的积累,在找工作的时候就会发挥出来的。
- 准备。不管基础怎么样,准备同等重要。从专业角度来说,计算机准备无非是三个方面:语言,数据结构算法,系统。语言你可以准备你最熟悉和擅长的,基本数据结构(二叉树,链表是重点),排序,查找,哈希,红黑树,常用算法KMP,归并,动态规划,回溯,简单数论知识等。系统可以是系统编程,内核等,因人而异。推荐清华的算法分析与设计,算法导论,编程之美,程序员面试宝典。准备还要包括简历,随时关注招聘信息,应届生网站和国内其他高校的bbs都是不错的途径。
- 争取。很多机会是自己争取的,尤其是自己错过一些机会的时候,如果我没有在HR给我打电话时解释原因并且争取的话,我是去不了微软面试的。在面试过程中,多和面试官交流,适当情况下可以索要联系方式,获得事情有转机的时候,尽量争取。
- 总结。找工作是个体验新鲜的同时积累的过程,面试多了,你会发现以前你被面试问题又被问到,所以面试完的总结很重要,尤其是你没有解决好的面试问题。
- 自信并且注意细节。细节很重要,我在做morgan coding test的时候,用的是JAVA,但是我简历写的是精通c++ 熟悉 java,后来面试官告诉我,他们甚至会怀疑这个是不是你做的,如果这个被放大了,或许就会错过了。
祝愿今年找工作的同学找工作顺利!