首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
逻辑与理性 Zztianlynn- -| 回首页 | 2005年索引 | - -数学与善(Mathematics and The Good)

tianlynn的Microsoft面试经历

                                      

tianlynn的Microsoft面试经历

 

    本来想写个题目叫做"Microsoft的面试经历",但仔细一想,并不太合适。
    我是北京大学2004届的本科毕业生,而且我不是什么Computer Science related major。所以能够得到面试的机会已是一件不容易的事情了。说白了,就是通过内部员工推荐的方式(这绝对是获得Microsoft面试的正常渠道)。Microsoft的人做事还是比较认真的。推荐我的P先生答应推荐我之前,请我到位于西格玛大厦的Microsoft ATC和他见面,目的是检验我是否值得推荐(我自认为是这样)。

      他一共问了我3个问题。第一个问题是:有两个整数int x, int y。请交换他们两个的值,不许使用第三个变量。这个问题我知道,所以很快就给出了答案:x=x+y;y=x-y;x=x-y;。然而在我写的过程中,我就觉得不太对劲了。果然他接着就问我,这个方法有什么问题没有。我回答说,加法过程中可能出现溢出。他就问我有什么解决办法没有。我想了想说,暂时想不到。他就问我知道不知道C语言里的位运算。我马上想到的自然是XOR。但说实话,我平时根本没有用过这个。所以还是犹豫了一下说XOR。他就问我怎么写。我当然是没有什么把握。不过还是凭着看书时的理解写了出来:x=x^y;y=x^y;x=x^y;他接着就问我怎么证明我的做法是正确的。我当然就是列出了1和0的表来证明做法的正确性。

      第二个问题是怎么在不知道某一单链表的头结点的情况下,将结点G插到已知结点P的前面。我当时觉得没有什么头绪。被提醒后才知道,可以假设一个结构,然后交换G和P的data。然后将G插到P的后面。

      第三个问题是已知两个有序增链表A,B。写出一个函数,将AB合成一个有序增链表。这个问题需要写出完整的函数。我想我是写出来了。但不是很理想。后来被P先生修改了一些。

      他最后提醒我,参加Microsoft的面试,需要在纸上写出可以运行的代码,不允许犯一些低级错误。

 

      后来我得知,P先生觉得我虽然答得不好,但还可以,答应推荐我。我并没有太高兴,因为我对自己的前景还不是很乐观。接下来的一个多月,我就在家等着面试通知。在这一个多月中,正好赶上奥运会,过了把奥运瘾。接到面试通知时,已经是9月2日了。

      9月3日是我第二次来西格玛大厦。那天参加面试的应该是8个人,结果只来了7个。一开始便是招聘专员Helen安排我们做笔试。时间是40分钟。面试的题目是用英文出的,内容不算多,主要是关于C语言的++运算符,GB code和C语言的内存分配和释放。40分钟的时间还是挺紧的,Helen近来说时间到的时候,我正好写完最后一个"}"。收了卷子我们被告知需要等一下。接下来的时间里,我们依次做了自我介绍。有一个是在Microsoft做Intern的,有来自Nokia的,Ericsson的,还有来自贝尔实验室的。当然,在这里我的学历是最低的。他们说着说着就开始谈论一些手机通讯的技术问题,对此我当然知之甚少。所以就没有说话。

      不久,Helen就回来把我们带到大厅。我们依次被面试官带到房间里参加面试。第一个面试我的人,我已经记不得长什么样子了,更记不得名字了。我只记得自己在这次的面试中表现很差劲,灰溜溜地就出来了。

      我要以为面试就会到此为止,没想到出来做了一下,就被第二个面试官叫走。我开始意识到,自己可能还有机会。第二个面试官很年轻长得又比较和善。可不幸的是,他问我的是关于C++的,我对其细节没有太多的了解。很快我就又出来了。我在等第三次面试。

      第三位面试官出的题和第二位差不多,也是关于CString的。我略有经验,就不至于很被动,然而回答得仍然自己也不太满意。接下来的是智力题。不过我现在得知,他们面试时使用的很可能是同一道题,所以我也就不说什么细节了。总之,智力题的回答比较顺利。刚开始的时候需要一点点提示,后来的问题就全是自己完成的。

      这时已经是中午1点左右了。我们被安排在笔试的屋子里吃午饭。吃饭时才发现,少了一个人,只剩下6个了。此时想到下午的笔试,似乎没有开始时那么紧张了。吃过午饭已经1点半了。大家又开始聊天,当然很快又进入到通讯的领域,我就又开始当听众。等到2点多了,Helen还没有来。贝尔实验室来应聘Manager的人出去找了一下,说再等等。我们在3点多的时候才被叫到大厅。这时,Helen告诉两个人他们的面试已经结束了。

      我们需要等到4点才可以接着面试。到了4点,已经有2个人被叫进去了。到了4点10分,就剩下我一个人了。我心想,如果不想要我就早点说呀。终于等到了4点半,才被第四位面试官叫了进去。他让我写一个小程序。我需要用到一个队列,为了方便实现,我开始假设其结构和一些基本操作。这样就方便我在写程序的时候使用。这一点看来是比较重要的。

      问完了程序开始问智力题。可我觉得他的智力题比较简单。他出完就去回到桌边继续工作了。可我很快就回答出来了。他说OK。然后开始问我一些很随便的问题(所谓随便,就是想到什么就问什么)。比如说他问我所谓16位的Windows和32位的Windows有什么主要的区别之类的。然后就问我,如果整天坐在电脑旁对着一些汇编代码进行调试会不会厌烦等。

      等我回答完了,他带我出来了,却没有带回大厅,而是让我在过道的沙发上坐一下。他去找个人。很快他回来说,他想带我见个人,是他的经理,可那人不在。于是就把我带到前台,让我在那里等。我感觉是比较有希望了。坐了一会儿,刚才的面试官又出来了,坐在我的旁边跟我说:我知道你经过了一天的面试比较累了,我们也是这么过来的。最后的面试要继续保持一个振奋的精神。我开始觉得看到了希望。很明显,面试是一次比一次进入状态。

 

      等到了6点,终于有人来叫我。答边走边说,“刚才是TimChen面试你的吧”。我开始时并没有听清,后来才知道是TimChen,当然,Tim现在是我的Reporting manager。等我走到他的门前,才看到上面写着的是技术总监。他给我出了一道题,我开始以为技术总监会出一个多难的题目。所以,刚开始听到题的时候还是被吓住了。但很快冷静下来,便看出这不是一个很难的题目。接下来是一个算是智力题也可以算是算法的题目。我想了许久都没有想出来。面试官最后说,你回家把它做出来,然后发email给他。他顺手就递给我了一张名片。他告诉我,今天的面试就到这里了。一周之内听结果。如果没有接到通知,就打电话和Helen核实一下。

 

      过了两周后,我才确定被Microsoft Advanced Technology Center录用。职位是Software Design Engineer in Tst,Reporting manager是TimChen。

 

      作为喜爱计算机的我来说,能够有机会参加Microsoft的面试已经是很难得的机会了。我能够通过,更是自己平时的努力和一些运气。因此,我想建议那些喜爱计算机又有真正能力,而且愿意到像Microsoft这样的公司工作的新的毕业生,不妨投一份简历给自己一个参加面试的机会。参加一次面试,不要害怕,给自己一个圆梦的机会。

      到现在,我已经工作一个星期了。忙于熟悉环境,熟悉项目,没有时间写Blog。等我的工作进入状态后,我会写一些在Microsoft工作的感想,用以丰富我的Blog。毕竟,我已经工作了。


【作者: sog.white】【访问统计:】【2005年03月16日 星期三 00:09】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=947228

回复

- 评论人:Jessica   2009-02-17 14:36:53   

4 你好,现在通过下面链接可以备份您的博客: http://home.myspace.cn/blogmove.aspx 快去看看^_^ bokee.com 92196

- 评论人:Ben   2005-04-07 16:22:19   

  你好,我目前想参加ATC的面试,能和你在MSN聊聊具体的面试细节嘛?
  谢谢拉!

  MSN:  dengbin99@hotmail.com

验证码:   
评论内容: