昨天终于收到了ms的通知,算是正式录取我为实习生了。回头看看邮件,从第一次收到通知去ms笔试,已经是1个多月的时间了。这一个多月过来,有过激动、惊奇,但更多的却是失望和沮丧。在此,我愿意同大家分享我的经历,希望能鼓励大家在实习路上越走越好:)
我现在申到的职位是 sdet,在mbs(microsoft business solution)部门,主要开发ms的erp产品
我是在ms组织的宣讲会大约前一周投的简历。因为寒假曾经面过ms上海的stbc,以失败告终,而又据说曾经有失败经历的短时间内很难再进,所以在线申请的时候就申的北京的职位,当时申请的是sde。
hr处理在线网申相当及时,在宣讲会之前我就接到了ms的电话,询问我可能实习的时间。这个电话是北京ms打过来的,不过她说可能把我分到上海紫竹ms做sdet,问我是否愿意。我当然是欣喜若狂,毕竟能留在上海最方便了。
于是 4月17日就参加了mbs部门的小型笔试。大概10个人左右的样子吧。在一间小会议室里面,时间好像是2个小时?题目都很经典,分为2个部分,第一部分是基本的数据结构,一道题是判断链表是否是循环链表,还有一道忘记了。第二部分是问答题,一道题是问
怎么test一个手机,另一道题是问你对 test的理解,和对sdet的期望。个人觉得还是有点小水的-,-
这之后就是漫长的等待。等啊等啊等。先是等了一个星期,实在受不了就发邮件问hr,结果根本就发不出去,gmail报邮箱地址错误。。。囧死了。。。然后给hr打电话,一直都保持在没人接的状态,继续囧。。。那一段时间我总是有一种被欺骗的感觉,感觉好山寨。。。后来我又仔细研究当时hr通知我笔试的时候发给我的那封邮件,发现那封邮件还有两个cc的对象,于是我就随便找了一个cc的邮箱发过去问怎么回事,居然有人理我了!感动ing.那个人说帮我查一查,然后很快告诉我过了,说五一之后才组织面试。悬着的一颗心终于放下了。
不久就有人通知我on-site的面试了(btw,顺便问了下为啥邮箱地址错误,hr告诉我那几天她正好换了邮箱。。。囧)。结果我发现那一周有os的考试+组成实验+种种不能翘的课,我发现居然找不到时间去on-site面试。。。继续给hr打电话,继续没人接。于是拨主机号,人工服务转hr电话,还是没人接。于是拨主机号,人工服务以后直接问接线员为啥hr不接我电话,那个接线员说会帮我转告hr。于是终于接到了hr的电话。于是说能不能换到下周?hr说可以是可以,就是太晚了,对我很不利,因为他们那一周可能就把人员定下来了。。。当时真的是太崩溃了。一方面如果坚决翘课就有十足的挂科的把握,另一方面如果不翘课就很可能对ms说bye-bye。最后我一狠心说大不了不去ms了,郁闷。。。
然后我是5月11日去 on-site面试的,这时已经比hr通知我的时间晚了1周。我当时就觉得肯定过不了了,就当是学习参观去了,所以很放松。本来约的是2点面试,结果我等到2点10分,还是没人出来接我。。。继续囧。。。于是找了几次前台,前台很尽职的直接进去找hr了,hr不久就出来把我接进去面试了。。。继续有一种很山寨的感觉。
第一个人过来,直接用中文对话,这点让我有点惊讶。先是问我对sql懂多少,我说我记不清楚了=,=他说不可能啊,你们刚学过。。。汗。。。然后让我设计一个schema不满足范式的,再把它规划成符合范式的情况。我就举了例子,随便说了说。他又让我写一行sql,进行某项查询。我很容易的写出一个子查询相关的,他说还有更有效率的做法么,我没想出来。。。然后他说好,我们不要在这里浪费时间了。然后开始让我写程序。出了一道题,有两个相同的栈,一个里面放着自大到小排列的数,栈顶的数最小,另一个栈是空的。不允许利用其它的数据结构,只能利用这两个栈,要求把第一个栈里的数字反过来,从小到大排列,结果还放在原来的那个栈里面。然后我就写了,然后跟他讲了算法。他说好,于是找了第二个人面我。
第二个人过来,先是考察我的英文水平,让我用英文介绍自己,自己的技术优势,性格特点等等。然后英文说的差不多又是做题目。第一道题目是把两个有序的单链表merge,要求写test case。第二道题是判断一个整数是否是回文数,也是要求写test case。这一部分题目都比较经典吧,虽然我之前没做过,不过现写的也不错。这里我有一点心得,就是写完了以后,每个函数都写一些自己的test case,然后通过test case发现程序的一些边界情况等等。出现问题也很正常,不要着急,慢慢改过来就好了,关键还是看你思维的过程。比如单链表的merge,是否处理了null的情况,回文数对负数,0~9的数有没有处理,等等。
然后就是第三个人过来,直接上来就让我写程序。这次题目是做字符串匹配。比如在搜索文件的时候,可能有通配符?和*,然后 a*能匹配abc, aa,a等等的情况。现在的问题是给出一个含有通配符的字符串,和一个待匹配的字符串,写一个函数判断二者是否匹配。我想了一会儿,正准备写,他说你先说说你想怎么写。我说我打算顺序扫描通配符字符串和待匹配字符串,如果通配符字符串是普通字符就xxx,如果是?就xxx,如果是*就 xxx,如果是?和*连在一起就xxx。他说那你先不要考虑两个通配符会连在一起的情况,把程序写出来。然后我就用while循环简单写了一下,被他指出了一个致命错误,就是a*b能否匹配abb?然后我发现我确实少考虑了这种情况。想了一下,说,这个改起来也很简单,改成递归就好了。他说那你改下咯,我就接着改。改完了,他看了,然后让我写test case,写了,差不多。最后他说,我们再问最后一个题,写atoi的测试用例吧。心中窃喜中。。。因为之前特别看过java source对atoi的实现,于是bulabula说了一通。他对这个很满意。
这样面试的问题就算问完了,已经5点半了 orz...
最后这第三个面试官问我有什么问题问他么?我就问了下他们这个组做什么。然后问了下什么时候能出结果。他说他实际上不是我要面的部门的manager,只是帮这个manager面,因为这个manager现在在欧洲。他说他准备给我这个机会再去过manager这一关,不过 manager在欧洲所以还要再找个时间电面。所以。。。我也说不清是高兴还是绝望。。。还要再面一次。。。
于是继续等待,到5月15日收到邮件,定下来电面时间,5月19日晚上6点~7点电面。看了下manager的邮件,果然在欧洲,巴黎布鲁塞尔xxxx时区,他们那个时间是中午12 点。等待。
电面。manager很纯正的英文,并且好像不懂中文。这也使得我第一次电面有了很绝望的感觉。因为我觉得我可以catch她的意思,却不能很好用英文表达我的意思。比如如何去介绍我们的项目,比如如何去描述一些技术术语,类似多态、继承、封装之类。我个人几度卡住,中文在我脑中盘旋了一圈又一圈,就是没法用英文说出来。我内心极度怀疑manager到底听懂多少。不过我坚持下去,术语说不出来就用简单的英文解释,解释不出来就举例子。我觉得最后她是明白我要表达什么意思的,我每次说完她都帮我概括一下,我赶快说是是是。这个面试还是很常规的,项目经历介绍,然后问对 object oriented的理解,java和c++的区别等等。最后她email过来一道题目让我做,并且写test case。题目很简单
,传统时钟,给出时间,求出时针和分针的夹角。我10多分钟写完了代码和test case,然后给她email过去。她又面我,我又发现几个小问题,然后改了。最后她很满意,说excellent~
最后面完花了1个半小时的时间。觉得聊得还蛮愉快。最后她也问我是否有什么问题问她。我问她什么时候出结果?结果。。。她说,we have many candidates, previous week, this week, and next week...然后大意是她要都面完,挑出一个最好的,再答复我。。。再次崩溃。不过她说最晚下周末给我答复。
等待。5月21日上午,北京ms的电话。问能做多长时间,问将来打算是什么。一直问。最后也没有给答复。又是一次折磨。
等待。5月21日中午1点半,接到电话,正式给我这个offer 了。
几点经验体会:
1、ms真的是一个很注重potential的公司。感觉不是很care你懂什么技术,而是看你是否有潜质。譬如我进去是要用c#的,他之前问我是否会c#,是否会.net,我都说不会,也没什么。总之是坦诚面对,正常发挥自己的优势就好了。
2. 找实习真的是一件很折腾的过程。坚定信念就不要放弃。这次ms的实习面试经历算是非常命途多舛的了,其它的技术岗位实习面试经不可能比这个还繁杂的了。有异常、意外都很正常,不要害怕和退缩,坚持,坚持,坚持。大家都一样的:)
最后,祝愿大家都能拿到满意的offer,实现自己的梦想:)...查看更多