《微软360度:企业和文化》

下载本书

添加书签

微软360度:企业和文化- 第15部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
  面试官的第一人一般是人事部门的招聘人员(recruiter),下面三或四人是产品部门的,最后一位是AA(Asappropriate),也就是拿决定权的,是招聘负责人(HiringManager)。如果你没见到第五人或最后一人(常常没写在你接到的面试官名单上),那你基本“没戏了”。但即使你见到最后一人,也不意味着你就一定“有戏”,千万不能大意。因为哪怕前面每个面试官都推荐“聘用(hire)”,招聘负责人照样可以决定“不聘用(Nohire)”。
  产品部门的面试官一般都受到过公司的正规培训。员工在微软工作满6个月之后,如果被评定已经胜任了本职工作,也对所在团队有足够的了解和熟悉程度,就可以有资格被派去参加面试官培训。微软人事部除了开办全公司的面试官培训课之外,还经常与各有关部门结合,开办具有针对性的专业面试官课程。我们很多人就参加过不少面试官培训,有些部门还特别进行过全体员工封闭式培训,合格者才能出任面试官。在员工参加长度为半天的面试官培训课前,他们还要进行前奏准备,熟悉关于微软雇人哲学等重要知识的内容。
  每个产品部门面试官则有下列义务:
  面试前:做好办公室的准备工作,保留面试和报告时间,了解所招职务的资格和技能要求。阅读应聘者简历,并准备相应问题,一般每种所需技能要有两个问题。
  面试中:把所有问题组织结构得好,对所有面试者要客观—致。要让应征者舒适,并解释自己的角色,最好以聊天开始,介绍面试方式并有些热身问题。判断应聘者要客关,依据其技能而不是其性格。问题种类要包括理论和实践,并用80%的时间听,20%的时间问,并随时记录。
  

获批职位空缺(2)
面试后:感谢应征者,让其有问题去问人事专家。与接下来的面试官联系,并在1小时内将自己的意见报告,其中要很清楚地表明自己的意见:聘用(Hire)还是不聘用(NoHire)。
  当然不少来微软总部面试的都是外地来的,所以人事部门还要安排吃住及旅游、交通、租车、酒店入住等招待事宜。还允许来总部面试外地来的在西雅图观光。面试当天的午饭一般是由一位面试官带你去。包括路上聊天和吃饭。所有细节都应该注意,因为自己的举止也是面试的一部分。
  如果微软决定录用的人需要办身份和搬迁等,那人事部门会安排微软有关部门负责解决。
  书 包 网 txt小说上传分享

坐上了面试官的位置(1)
——褚诚云
  进入微软后面试别人
  干了几年,媳妇熬成了婆婆,也有资格面试别人了。
  先是实践电话面试,后来就正式面试。坐上了面试官的位置,也就意识到就像在教室里一样,台上台下的区别有多大。
  就我感觉最重要的,面试最终就是要回答这样一个问题,我愿不愿意和这个人以后一起共事。为此,从见到面试者一开始,就开始了观察。不管是交流方面,还是展示出的对技术的强烈兴趣,都会导致面试中的印象分。
  当然了,技术上的表现是最关键的。现在微软已经不考脑筋急转弯的题了。我个人喜欢的考题,是一种可以循序渐进,一直提问的问题。也是我了解到的许多其他人喜欢的方式。这种问题开始可以显得很简单,但是可以随着面试者的表现随时调整,引入更深入的技术讨论。
  面试前的准备工作
  在微软,如果要想面试别人,必须通过人事部门针对面试过程的培训,以了解基本流程和面试的特别注意事项。哪些问题可以问,哪些问题不可以问。哪些不可以问的问题例如,年龄、宗教信仰、婚姻状况等有关个人隐私的问题。这里说,又不是找对象,谁会问这些问题?!不怕一万,就怕万一嘛。回想起当年自己找工作写第一封简历的时候还把出生年月日摆在上面,无语。
  在面试前几天,人事部门会安排好具体的面试流程,并提供面试者的详细简历。一般来说,我最感兴趣的是上面以前做过什么有意思的项目,这样可以具体问一些更深入的问题。不过这里要特别指出的是,这并不是必需的。最看重的并不是面试者以前做过什么,而是其本身的能力。
  开始面试
  如果我并不是第一个面试官的话,这时候我就应该已经收到前面的面试官的反馈意见了,或者口头,或者通过电子邮件。如果他/她觉得被面试者有什么方面特别需要进一步了解的话,我也可以调整一下面试问题的侧重点。
  其实,整个面试过程就是为了回答一个问题,我是否愿意和此人一起共事。决定这个问题的答案即包括面试者的技术能力,也包括其他方面,如是否对这个工作有足够的热情,是否有团队精神,等等。
  好,说了这么多套话(自己都要烦了),那就举一个具体例子吧。
  观察的过程从我在第一次见到面试者就开始了。当然了,不会特别在意着装,因为微软大多数人都不在乎这一点,尤其是技术部门。如果面试者显得有些紧张,我往往会建议是否要喝点什么,再加上几句今天天气哈哈哈的话,缓解一下情绪。都是过来人嘛。特别指出的,每次我都会问是否要先用洗手间。
  因为有一次我刚把一位老兄带到办公室,他就很不好意思地说刚才喝水喝多了,一定要解决一下子。的确这是我的过失。所以从此以后我就特别注意这一点。
  如果是午餐面试的话,我的原则是绝对不会在餐桌上问及技术问题。因为我自身有痛苦的回忆。?
  一进办公室,第一件事是关门(不过不会放狗?),锁定机器并且把电话关闭,这是我认为对面试者应有的尊重。
  面试刚开始,往往先作一个简单的自我介绍。然后开始问一些基本问题,如为什么对这个职位感兴趣。
  不要觉得这个问题不重要。因为具体的知识往往不是最重要的,而对从事领域的热情更为关键。不会的东西可以学,但是没有学习的动力就麻烦了。特别的,微软面试的一个特点就是对面试者以往的工作背景问得不多,甚至很多时候并不特别在意以前的工作经历和这个职位是否相关,其根本原因就是认为不会的东西,学会了补上就可以了。
  下面往往就切入面试的主要部分。对于软件开发人员职位来说,这一块就是编程了。
  一般不会(至少我是这样)考特定的一个领域知识。举个例子,我绝对不会让面试者回答一个特定的Win32API是干什么用的,或者用ATL写段程序。问题就是基本的数据结构/算法/编程语言。如果面试者说对C++不了解,没关系,JAVA也行。怎么,JAVA也不会,那pseudo…code也可以呀。
  

坐上了面试官的位置(2)
问题的方式往往采用由浅入深的方式。为了这本书,我忍痛贡献出自己最为得意的一个考题:
  问题:写出一个函数,判断输入一个整数是否为素数
  不难吧?当然了,如果你说不知道素数是什么,我就无语……好在我面试过程还从来没有遇到过这种情况。
  如果你没写好函数的定义(declaration),确定输入输出参数类型,就迫不
  及待开始写内部代码的话,我心里就要打个问号了。
  好,代码在白板写好了。
  这里就来了下一个问题,首先检查函数的基本逻辑是否正确。
  其次,检查一下是否正确处理各种边界的情况,如0,1,2等等。
  以上只是两个基本问题。好了,函数写完了,也处理了边界条件。
  那下一个问题:如何提高它的效率?
  这里可以有算法的改进,例如从测试的最大数字n/2变成n的平方根,每次循环的步长可以是2等等。
  但是,如果效率还不够高,怎么办?
  这里测试的就是是否可以灵活考虑使用各种其他的数据结构。例如如果分析输入范围只是0到1000,是否可以考虑hashtable?事先计算素数表。如果面试者提到这一点,好,又一个问题:如何最快计算一个范围内的素数表——素数筛法?
  但是,如果效率还不够高,怎么办?
  是否可以考虑caching,如果函数输入有一定模式?caching的基本模式和算法?什么样的应用程序会如此密集使用素数判断?是否合理?
  这就是我说的由浅入深的提问方式。当然了,不同的人有不同的面试方法,这里说的只是一个微软经常采用的方式。
  还有一点,就是如果你对某个问题不知道答案的话,也许并没有关系,因为许多情况下,面试官并不指望你能回答出所有问题。就像上个问题中的素数筛法的算法。如果这样,你可以据实回答:“这方面我并不了解,我推测可能是如何如何…”但是,如果你要不懂装懂的话,那结果可能会得不偿失。
  面试收尾
  这里一定会留出几分钟的时间,让面试者提问,任何问题都可以。不管面
  试者的表现如何,是否决定录用,都一定要尽心尽力回答。买卖不成仁义在。?而且我自己也有若干次的面试失败经历,知道有很多因素会影响到面试表现。往往这次不行,下次说不定就过关了。在面试结束后,会把面试者带回到楼下的大厅里,然后我会通知下一位面试官,并附上我的评语。
  内部换组,还要面试?
  和对外招聘面试差不多!在微软这几年,我又有过三次正式的内部面试。从多媒体组,到反病毒组,到现在的SWI(SecureWindowsInitiative)。每次面试都是4+1技术面试,问的问题和对外招聘面试一样形式。不过是自己解决中饭。在微软,鼓励人员的自由流动,这是我最为欣赏的一点。
  每一次面试我都可以从面试官那里学到很多东西。有时候,觉得这个问题不错,下次我就改头换面去考别人了。看完我的面试经历,有什么感想?我想,只要你能和我一样,在第三次面试时候,轻装上阵,发挥出水平,就一定会成功!
  后话
  看完了我面试别人的过程,希望大家对微软的面试过程和方式有更多的了解。我自己的一个建议:就知识领域而言,基础(数据结构/算法)是最关键的。当然了,不排除有某位老兄,早上开车上班的路上吃了警察的一张罚单,决定要出ATL编程的考题的情况。如果你碰上了,可不要怪这里被我误导了。?
  txt电子书分享平台 

面试问题
微软的面试问题主要分为这样几大类:
  ?行为类问题。这类问题依据应聘人的经历询问应聘人在不同场景下的反应,例如“请描述一个你参加过的团队项目,你在团队里扮演了什么角色?当团队成员有不同意见的时候,你们是怎样解决问题的?”,或“如果你发现你的项目不可能在原定时间内完成,你会怎么办?”。这类问题的目的在于考察应聘人的“软”素质比如团队合作精神。这样的问题没有标准答案,提问者会不断根据应聘人的经历和回答进一步提出更深层次的问题,以最大程度地挖掘应聘者的潜质。
  ?专业知识类问题。根据应聘人的经历,提问者可能对感兴趣的技术问题进行发问,比如“请谈一谈你的这项关于图像处理的课程设计。这个项目解决了什么问题?用到了什么算法?你的算法比现有的做法有什么改进?”。这类问题主要考察应聘人的专业知识。微软面试不会过于强调需要死记硬背的细节,而是更强调对技术的理解程度。比如微软面试里通常不会问“在IP包里目的地址是第几个域?”,但是有可能问“为什么TCP要使用3向握手协议?”;不会问“在Windows上应该用哪个API向线程池提交一个任务?”而有可能问“在什么情况下你会选择用线程池?”。对于应届毕业生,微软招聘通常不会过于强调某一方面的专业知识,比如数据库或网络知识,而是更注重对计算机学科的基础知识的掌握。
  ?编程类问题。对软件设计工程师,一个必不可少的面试环节是编程问题。应聘人会被要求在白板上用30分钟左右的时间写一段小程序。这类问题考的是基本编程能力和解决问题的能力。对于应届毕业生来说,这些程序往往是关于基本数据结构和算法的。比如一道很常见的问题是“写一个函数把一个链表倒过来”。面试者不光要看这个程序是否正确,还要评估应聘人解决问题的能力,思路是否清晰和考虑问题是否全面。写完程序后,应聘人通常会被要求检查错误,分析算法的复杂度并举出其他的可能做法。
  ?设计类问题。在白板上写程序可以考察对小程序的设计能力,但是更进一步,应聘人可能被要求对一些更复杂软件问题阐述自己的设计。比如“怎样设计一个编译器来支持调试器的断点功能?”。这类问题往往要求口述回答并辅以框图或简单的伪代码。
  ?智力题。以前微软员工曾经流行用一些脑筋急转弯类的智力题进行面试,比如“怎样移动富士山?”,“美国有多少辆汽车?”,或“怎样用一架天平最快的在9个相同的铁球里找出偏重的一个?”。因特网上也有很多对这类问题的收集。但是近年来微软公司已经停止使用这些问题面试,原因是它们和微软的工作不直接相关。现在来申请微软工作的人不必再担心被问到这些让人挠头的古怪问题了。
   电子书 分享网站

一道微软面试的智力测验题
——王志峰
  微软在面试中使用智力测验题是业界众所周知的。在外界不仅流传着很多微软使用的趣题、难题和怪题,还有很多与解题和答案有关的有趣的小故事。我就亲身经历过一个。
  故事发生在我加入微软之前,在得克萨斯州奥斯丁戴尔计算机公司总部工作期间。有一天,我同组的一位女同事不知从哪儿得到一个智力测验题,她很神秘地告诉我说,这题是最近微软面试中刚刚出现的。具说微软内部员工平均解题时间是5分钟以内,外界高手的平均水平是15分钟,而外界一般人员很多根本解不出答案,不管给多少时间。这位女同事说她已想了很久了也没有结果,于是让我试试。我通常对智力测验题不感兴趣,但听她说得那么玄乎,又被她一激,于是拿来题目认认真真解了一把,结果5分钟内解出了答案,让她连说佩服。到这里故事讲了一半。在讲故事的后半部分前,我先得把题目和答案给大家讲解一下:
  题目是这样的:有四个人(A,B,C和D)要在一个月黑风高的夜里过一个很长的独木桥。桥只能一次乘载两个人,就是说每次最多两人同时过桥。过桥要用手电筒,而这四个人只有一只手电筒,也就是说两人共用这只手电筒过桥后,其中一人必须带着手电筒返回(没有其他方法),否则其他人就不能再过了。这四个人由于年龄和身体状况的差异,每个人过桥所需要的时间不同:A需要1分钟,B需要2分钟,C需要5分钟,D需要10分钟。由于共用一只手电筒的原因,当两人一同过桥时,过桥的时间是以其中慢的一人为准,比如A和C一起过桥要用5分钟。
  现在问:要所有人过桥,最短要多少分钟,如何安排他们的过桥顺序?
  这个问题看起来并不复杂,很容易入手,解题的策略也不难确定。既然手电筒要来回传递,根据能者多劳的原则,当然是尽量用最快的人来担此重任。因为A过桥最快,所以很快就会得出以下的答案:
  第一步:A和B一起过桥,时间是2分钟
  第二步:
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架