微软stb实习面试感受_我的实习面试感受
微软stb实习面试感受由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“我的实习面试感受”。
微软stb实习面试感受
----05本AubinXia
1.引言:
在写这篇文章前慎之又慎,查了好多网上类似文章的写法,总结了一下。是 这样的,身为软件学院的一分子,自然有义务帮助每个身边的朋友进入好的公司,但是作为半个微软员工,为微软带来利益也是我应做的。我很相信软院同学的实 力,但是如果我的文章对于面试的细节挖掘得过深,探讨了过多技巧性的问题,显然是不利于微软公司招到真正优秀的人才,而且把面试细节完全公开出来个人觉得 不是很道德。毕竟这是一篇公开出来的文章,而且署了名。
所 以,想了许久,决定采用这样的写法,本文以面试经过的形式写就,对于面试的详细细节不会探讨过深(说实在话没什么好探讨的,面过一次就知道了),但是重心 却是放在由此引出的对于一个人需要努力的各个方面,至于技巧,大家完全可以推敲出来,但却是建立在实力的基础上。我相信这种写法既符合软件学院人才培养的 长远目标,更加有利于同学们的长远发展,又符合微软公司的利益。从这个角度来讲,本文更适合于06、07的同学。2.STB简介:
微软服务器与开发工具事业部,原来隶属于atc上海(微软亚洲工程院),于05年改制单独成立为一个新事业部,近年来发展迅速,其员工由05年20多人,已经扩充至200多人,并将继续扩大规模。据说,秋天将要搬到微软上海研发基地中,届时,GTSC/MSN/STB,貌似都要集中到一起。听说是这样。该事业部致力于为微软用户提供高性能计算、互连系统、系统配置管理等方面的核心产品和技术,同时,全面参与家庭和中、小型企业服务器、安全与访问、数据平台和开发工具等服务器及开发工具等的研发工作。
反正以上我不是很懂,不过应该是很有意思的。我唯一知道的,该事业部是参与Visual Studio和SqlServer开发的(这应该就是名字中“开发工具”的由来吧),所以应该会非常有趣的说。
3.注意基本品质的培养
第一次电面很不好意思的说,前前后后麻烦了HR姐姐4次,因为前3次都不方便。这里对微软HR姐姐致敬一个,真是耐心!赞!英文自我介绍,5年职业规划,一道技术性小题目,考察多线程同步的理解,不难的。还有对微软的理解,各方面。
这里考察一个人的基本品质。
首先,要学会表达自己,第一个问题就是英文自我介绍。用万老师的话来说,就是要学会“秀”。这个表达上的问题,已经是老话题了,但是总有很多同学表达能力 欠缺,包括我在内的。总结一下,问题的根源在于自己不够自信。这是同中国国情相关的。但是进入大学之后,培养自信是很重要的一个方面,要当成一门很重要的 课程来修。要学会自己独立解决问题,摆脱依赖心理,能够对一个问题给出自己的判断。平时我们多注意观察一下独立性很强的人,就会发现其实这是一种状态,一 种生活状态。当你达到这种状态之后,就会拥有很多品质,比如坚毅、果断、善于言辞,甚至头脑也变得灵活。事实证明,一个人如果多注意多培养,完全可以变成 一个很自信的人,但关键是要花心思,每个人都有不同的方法,但是只要坚持下来,自信是完全可以被征服的。
其次,这里有一个职业规划的问题。其实大家查一下微软的信息,会发现微软培养员工的体制里面,职业规划是一个重要的组成部分。为什么呢?因为不管人生哪一 个阶段,目标和计划都是促进一个人发展的强有力动力。这里我可以说的就是要告诉学弟学妹们重视目标和计划的重要性。以我为例咯,我对此感触还是很深的,说 实在话我是一个反应很慢的人,或许金牛座的人的通病哈哈,所以之前的我经常走在别人的后面,没办法,我只好定下详细的规划,远至几年,近至最近几个小时要 发生的事,我比较习惯于分析任何一件事的所有可能性,然后在事发之前做出选择,之后你就会发现很多事情其实都在你的控制之中,这种感觉很COOL,真的。目标和计划不能百分百有效地督促你,但是他可以让你知道你自己在做什么,并采取措施,即使你堕落,你也很清楚的知道你自己在堕落,程度有多深。我比较抵制得一种生活状态就是没有目标、没有计划、无聊混日子那种,并美其名曰:轻松享受生活还有什么80后 的流行生活等等。我个人觉得完全就是无知和逃避生活借口的产物。其实这种生活真的很享受么?有很多人经常会发现自己没事情做无聊得想撞墙吧,然后突然事情 急了,根本已经没时间,突然压力巨大无比,然后再慨叹:“做人真烦!”,继续想撞墙。我比较欣赏的生活状态至少可以让我很充实,玩的时候也玩的很尽兴,真 的充满乐趣。
然后呢,就是那个技术上的小问题了。这个问题的回答被HR表扬了,哈哈。是一个JAVA中的多线程和同步的问题,关于这个问题我回答的比较深,把JAVA历史上的同步机制都挖了出来,并分析其解决方案的优缺点,说了很多,怪不得HR姐姐开心了。关于技术上的问题,其实是治学了。这也是一个老话题,我这个人有个毛病,老师讲东西给我听,我总是听不进去,我很抗拒从外面灌输给我的东西,我理想中的学习状态是这个样子,探索式的自学,遇到很感兴趣的问题或者是比较艰深的东西再找个老师探讨。所以在这里对07同 学提的一个小建议了,预习真的很重要,我们不能达到那种理想的教育状态(那样教育成本太高了),但是可以尽量去模拟。不要老说自己做项目,没时间,这事那 事,然后再一顿狂批软院的体制,什么不够合理等等。我在大一的时候也是这种心理状态,后来才逐渐发现,人生中没有一件事是完全合理的(相比较其他学院,软 院的体制其实不知道好到哪里去了)。总会有各种各样的东西在挡着你,失败的人总会怨天尤人愤世嫉俗,成功的人会冷静思考,分析情况,如何避开不利因素,做 出正确选择。前者是主观思维,情绪控制个人,后者理性思维,个人控制情绪,个人觉得成功者和失败者的差别就在这里的。我不敢说自己已经达到后者的境界,但 是正在努力想后者靠拢。这个扯远了哈,继续往下。
接下来的问题,是关于对微软公司的理解,包括其文化以及你最喜欢的产品等等。这个问题我答的不是很好,因为专业是软件的缘故,so,谈了一下.Net,但是谈的不是很深入,因为仅仅是学了些.Net皮毛,也没有深入了解过。这里引出来的一点就是一句老话啦,知己知彼。根据我个人的总结,从我记事起到现在所遇到的所有关卡,早期的中考、然后OI,接着的各种考验。几乎其中我失败的经历原因都在于我没有重视。所以我现在觉得对任何一场考验,都要去认真对待,这很重要,你要去了解你的对手,了解整个操 作的流程,考虑
各种可能的情况,然后自己努力的方向。总之,就是要去研究它,我这个人很笨,脑子不够用,所以我总喜欢在一张纸上对一件事分析,写写划划,思路可以清晰好多。说实在话,第一次电面我认为我不是很成功,主要原因就在于我对第一次电面没有重视,没有去做深入研究。不过还好,HR姐姐让我过了。然后的问题都是对于一些学习和工作中的问题,看你如何去处理了。比如,有人问你,你在大学阶段的各项目中很多充当leader的角色,你会不会觉得你过强的leadership会与将来的工作氛围发生冲突。大家想想,如果有这样一个问题该怎样回答呢?这还是一个情绪和理性冲突的问题。我觉得如果一个人真正能够做到个人控制情绪的话,这个问题其实真的很好回答的。一个人并不是为了表现出leadership而去表现leadership,在理性分析了所有的情况之后,我们会发现,在大学这一个环境下,表现出leadership有助于项目的进展,所以这种leadership是个人根据外界环境理性控制的结果,而不是感情的发泄,如果一个人到一个新环境中,首先要做的就是适应这里的环境、氛围、文化,然后分析,做出关于自己工作方式的正确选择,使其有助于自己的发展,有助于公司的发展。
第一面差不多就是这样了,说实在话,前面几个问题因为准备不充分,所以答的不是好,但是后面几个问题,我个人觉得还是很满意的,能够听出来对面的HR姐 姐也是很满意的。这可能同我的性格以及行事风格有很大关系,所有人都说我像个书呆子,很迂腐,而我这个人没事就是喜欢思考人生观和价值观的一系列问题,并 经常可以想通很多事情,比如,如何去接受别人的缺点,如何学会去尊重别人,如何去控制自己的情绪,我经常美其名曰:“提高修养!”,呵呵。所以当HR姐姐跟我探讨起比较趋向于人生哲学的问题时,我基本上还是能够探讨的入木三分,嘿嘿~~~
当然,大家不要像我这么迂腐哈,像我这种迂腐性格也有不少坏处的,打住了,伤心往事不提了~~~反正只是要知道能够找个正确的方向,培养自己,就OK了~~
4.编程素养的提高
前面话题扯的有点多,后面尽量从简了。
第二次电面是一个技术工程师,全英文面试。提前预约,需要用到一个工具Office Live Meeting, 微 软的产品。确切说是远程网面。每轮面试流程都差不多,自我介绍一下,谈谈对于软件开发的理解,都是些很开阔的问题,每个人都会答,但是答的深度就有差距 了,这就取决于在软件开发方面的造诣了,一个基础扎实的人肯定有很深入以及其他人没有的独到见解,这方面临时很难准备的。接下来就是基本算法题目了,出给 我的题目很简单,具体题目不说了,总之真的很简单,没有谦虚,完全没技术难度。这也在告诉我们微软的题目要的不是一个正确的结果,而是在你解决这个问题过 程中所展现出来的综合素质。
这就是为什么要用Office Live Meeting了,这是一个远程会议工具,中间界面有个白板,技术工程师会要求你在白板上现场coding,他那边可以完全看到的。你在解决问题的过程会与技术工程师发生不断的交互。
比如:
在你每写一步的时候,你有没有考虑其他情况呢?
在你开始code的时候,你想过边界条件么?
你知道你现在的这套命名规范,能和其他组员很好的一致么?
你知道一个标准的子程序最佳代码量是多少行么?
你传入的子程序的参数是多少个啊?排列顺序是否是按照输入、修改、输出的呢?
你的子程序编码布局美观么?
你有加注释的习惯么?
你知道什么时候该把一个单独功能模块单独分出去作为另一个子程序最合适么?
……
发现了吧,其实一个再简单的程序,不同的人写,完全不一样哦~~质量参差不齐,夸张一点,一个人写程序的过程,几乎完全就是一个人性格的再现了。能够看出很多问题,一个人的思维是否缜密,这个人是否喜欢耍小聪明,是否够冷静……这里推荐大家读一本书《代码大全》,现在出第二版了吧,这本书里对一个优秀程序员所给出的基本素质介绍的很全面,尽管不是具体的技术,但是真的很受用。这里还要说一点,其他公司我不清楚,不过面微软,他不在意你其他技术的掌握情况,什么UML/J2EE/MFC/.Net,微软要选拔的是具有潜力的人,按照我的经历,就完全是以C++算 法题目的形式展现出来,核心是挖掘你在编制程序过程中的基本素养。技术这种东西,说白了就是产品,一代一代过,过时了就不用了,而一些很经典的东西,数学 基础、数据结构算法、数据库、操作系统、计算机网络等等,是计算机科学的基石,建议学弟学妹们分清主次,否则将来会吃大亏。
写到这里相信大家已经发现了,要准备微软的面试几乎没有技巧,说容易也容易,说难也难。容易是因为,你几乎不用准备,因为考察的是你这大学几年来所培养起来的内在品质,不是一些临时抱佛脚的东西,说他难,是因为你有时候根本准备不来,如果你大学前几年在混……再好的技巧,神都帮不到你了。
对 了这里还要再说明一下,大家其实要学会培养自己的学习和分析能力。再遇到一个没有遇见的问题时,根据现有的知识,做出自己的理性猜测,然后再去寻找答案。在这一面时,我就遇到了一个从来没遇到过的问题,我就是先扯到了一个跟这个问题相关并且我很熟且搞得很深的问题上,讲完之后,告诉面试官,那个问题如果让 我现在去设计,我是这样考虑的,尽管我没遇到过这类问题,但是要向面试官展示出你的学习能力和潜能,本来嘛,计算机学科这么广,一个本科生怎么可能掌握所 有呢,但是其学习能力对于一个程序员来说更加重要。