医药网站 备案,wordpress 网络公司,安卓app定制,北京的it外包公司http://www.newsmth.net/bbstcon.php?boardMicrosoftgid48785
有人提问: 看了很多的面试题之类的#xff0c;感觉虽然自己数据结构与算法基础知识很扎实#xff0c;但还是做不出来#xff0c;所以请高人指点。 这个问题看似迷惑, 其实提问的人搞混了两件事 - “数据…http://www.newsmth.net/bbstcon.php?boardMicrosoftgid48785
有人提问: 看了很多的面试题之类的感觉虽然自己数据结构与算法基础知识很扎实但还是做不出来所以请高人指点。 这个问题看似迷惑, 其实提问的人搞混了两件事 - “数据结构与算法基础知识很扎实: 知识; “在实际面试中解决问题: 能力。 知识和能力是两码事。 知识和能力的例子1: 知道圆周率pi 小数点后面20位甚至100位: 知识看到一个不规则的圆柱体, 能估算出它的体积: 能力. 这个时候, 我们用 pi 约等于3 都可以解决问题。 知识和能力的例子2: 一些在校学生都有鲲鹏之志, 都觉得自己自己怀才不遇, 流落至此, 一旦逃出樊笼, 定可大显身手。 有些时候, 大家都知道你有某些知识, 都成了众所周知的事实 – common knowledge. 但是你有没有越狱的能力, 和在监狱外独立谋生, 实现梦想的能力呢? 知识和能力的例子3: 三个代表到底是哪三个: 知识 三个代表如何抓贪官, 平房价, 立法制: 能力。 在其位者为什么做不了呢? 非不能也, 是不为也。 扯远了, 扯远了… 咱们说什么来着? 基础知识很扎实 - 但是面试就是做不出来, 怎么办?BBS上就有一个靠谱的回答: 你好我以前也觉得自己算法不错有认真学过数据结构看过算法的书但是后来再准备找工作面试的时候一开始遇到问题也发现无从下手主要遇到两个问题不知道是否跟你的情况一样。 一个问题是有些知识在自己感觉里理解了但是遇到实际的题目要深入细节了却使用不上这些知识。比如n个元素的数组取前m大的元素这个题有一个思路是利用快排的思想每次partition把数组分成两类大于partition元素的小于partition元素的然后递归地根据两类中元素的数量与m的关系再某一类中再做partition当然这只是一种思路我们会快排的算法了但是如果没有真正理解到它的思想往往给不出这个思路。所以说在学习算法的时候建议是不要流于表面要认清算法的本质思想。这里当然推荐看英文版的算法导论比如我看了里面动态规划的四个题目以后可以根据里面的讲解举一反三得到一些规律性的东西收获颇丰。还有就是邹欣老师主编的《编程之美》里面的题目解法思路很详细给人很多启发。 另一个问题是有些题目会做但是一提笔写code就遇到障碍就是不习惯在纸上写code严重依赖IDE这个问题只能通过多写多练来克服了。这里我推荐topcoder这个site上有和北大online judge一样的在线做题系统你可以在上面脱离IDE而用类似记事本的方式写code同时里面的题目也有不同层次的开始可以做一些SRM里面DIV1的简单题目慢慢的练习使得code一次写完编译通过然后再开始做难一点的题目。当然也要在白纸黑字上写我写了五六公分厚的16开纸的code最后终于在笔试面试时可以写得非常顺畅了。。。以上是我准备笔试面试过程中的一点经验最后也拿到了理想中的offer希望对你能有帮助欢迎拍砖~下面是摘自 《编程之美》 一书中有关面试的内容
背景
每年从金秋九月起校园里的广告栏中、BBS上的招聘信息就逐渐多了起来。小飞是一名普通高校的应届计算机专业毕业生他勤奋好学成绩中上爱好广泛。看到身边的同学都在准备精美的简历参加各种各样的招聘会笔试、面试他也坐不住了。他在BBS上看了各式各样的“面经”也挤过招聘会上的人潮长叹“行路难行路难好工作今安在”
小飞从网上了解到了有关招聘的各种术语他整理了一个列表 名词 解释 面经 面试的经历。 默拒 投了简历进行了面试但是公司从此再也没有消息询问也不回答。 Offer 公司给学生发的入职邀请。 群殴 通常指一群人一起参加面试一般以多对多的形式同时进行最后总是会有人被不幸淘汰这一过程就叫做“群殴”。 听霸 凡校内招聘演讲会都出席旁听的。 投霸 凡公司招人都投简历的。 笔霸 凡投出简历都能得到笔试机会的。 面霸 凡参加笔试都有面试通知的。 巨无霸 在招聘过程屡屡被拒、机会全无的江湖人称“巨无霸” 霸王面 “霸王面”指没有获得面试资格却主动找用人单位要求面试的人源自吃饭不给钱的“霸王餐”即“没机会面创造机会也要面”。
小飞获得了一个在微软亚洲研究院实习的机会在工作中认识了一位有丰富招聘经验的研发经理。他对经理进行了非正式的采访希望能得到第一手的“内幕”消息。下面就是小飞整理出来的问答。小飞的问题用Q来标注经理的回答用A标注。
典型面试
备注在本文中应聘者英文为candidate, interviewee指应聘公司职位的学生或其他社会人士面试者英文为interviewer指公司里进行招聘和面试的人员。
Q 经理您好。我就开门见山能否分享一下当年您第一次去面试的故事
A 好大学毕业后我进入了学校“产业办”开的公司。有一天一家美国公司我们姑且叫它H公司来招人这是我的第一次面试。那个公司的代表和我寒暄之后递给我一道题目题目大意是“写一个函数返回一个数组中所有元素被第一个元素除的结果”。我当时还问了一些问题以确保理解无误所谓clarification是也。那位面试者简单地解释了一下然后就在电脑上敲敲打打也不理我了。我想这也不难如何能显示我的功力呢于是我就把循环倒着写 for (in; i0; i--)因为我当时看到一本Unix书上是这么写的。
代码大概是这样的
void DivArray(int * pArray, int size)
{ for (int i size-1; i 0; i--) { pArray[i] / pArray[0]; }
}
写完之后他看了看就问我你为什么要这么写循环如果不这么写可以么我说也可以呀。他问了两遍如果正着写循环会出现什么问题。我想能有啥问题就把循环正着写。噢原来陷阱在这里你知道这个陷阱是什么吗
Q 让我想一想知道了如果循环从数组的第一个元素开始并且不用其他变量的话在循环的第一步第一个元素就变成了1然后再用它去除以其他元素就不符合题目要求了。
A 对同时还有另一个陷阱——看看你是否会检查除数为零的情况以及对参数的检查等等。
Q 这不是很简单么一会儿就写完了。
A 面试题大多数不难但是通过观察应聘者写程序的实际过程面试者可以看出应聘者的思维、分析、编程能力。面试者一般还会有后面几招留着。比如如果你要测试刚才写的这个函数你的测试用例有多少或者改变一些条件能否做得出来
Q 很多人说面试是一个不公平的游戏因为信息不对称。比如面试者知道问题的答案而应聘者不知道面试者知道今年公司要招几个人而应聘者不知道。
A 但是应聘者手头有几个Offer面试者也不知道。应聘者是否喜欢公司提供的职位和薪酬面试者也不知道。一方面应聘者在“求”职另一方面面试者也在“求”才。面试也是一个增进双方互相了解的有效途径。
既然扯到了“信息不对称”我再讲一个我的故事当年H公司来我校面试的时候我对H公司的了解仅限于H公司捐赠给我们计算机系的一个有些过时的小型机系统。我想这个H公司是不是还有一些新东西那时候还没有互联网于是我就托人借了几本原版的Byte杂志来看那是很厚的一本杂志非常多的广告看了半天夹在杂志中的小广告掉了一地。我只看到杂志对H公司新出的一个桌面管理软件“NewWave”的评价我琢磨了半天大概搞懂了这是一个什么东西市场上还有什么竞争对手等等。
过了两天面试开始了对方端坐在沙发里问“你对我们H公司有何了解”我先说了H公司的小型机系统然后说“By the way我还了解了NewWave”。于是我把看到的东西复述了一下。没想到对方坐直了身子说这个NewWave就是他曾经领导的项目。于是我就根据杂志上的描述问“您怎么看某某竞争产品”他很兴奋地跟我谈了NewWave 是如何的领先等等。后来我们又聊了不少相关的东西。
最后所有人面试结束之后我们的领导说美方觉得我很突出知道不少东西包括NewWave口语也很好。领导就要求我给所有人都介绍一下NewWave我只好把看到的东西又复述了一次。不久H公司过来面试的另一个经理不解地对我们领导说“为什么你们这么多人知道NewWave”
前不久我在面试的时候问一位同学“你对微软亚洲研究院有什么了解”他说“没啥了解昨天打电话叫我来面试我就来了……”对于这样的同学信息的确是非常不对称那他吃亏也是难免的了。还有一位在面试中发挥得很不好的同学跟我说他特地没有做任何准备因为他想显示他的“raw talent”……
Q 关于Test测试的职位有没有一些典型的题目呢
A 有哇典型的题目如给你一支笔让你说说你如何测试——据说要测试12个方面再比如判断一个三角形的特性直角、钝角、锐角、等腰——据说有20多个测试用例这是要考察大家思考问题的全面程度和逻辑分析能力测试用例见4.8节“三角形测试用例”。
Q 网上有些非常流行的问题都号称是从大公司流传出去的是真的么
A 对是有一些题目比较常见例如“下水道的井盖为什么是圆的”还有一个问题一度非常流行据说早期应聘PMProgram Manager程序经理职位的应聘者大多曾碰到这个题目 房间里有三盏灯屋外有三个开关分别控制这三盏灯只有进入房间才能看到哪一个电灯是亮的。请问如何只进入房间一次就能指明哪一个开关控制哪一个灯传说在晚上微软一些会议室的灯忽明忽灭那就是一些还没有搞懂的同事们在实地钻研。Q 我大概了解了Dev/PM/Test 这三种工作的典型面试题那么这些题目的答案别人都知道了还怎么面试呢
A 对会有不少题目流传出去这本来无妨。但是一些人知道答案之后就开始背诵或者原封不动地拿它去面试应聘者忘了“知道答案”和“能做一个好员工”的关系。知道了题目的答案就能做一个好的开发人员、项目经理或者销售经理么一个极端的情况会是公司里每一个人都知道哪盏灯是由哪一个开关控制的如何测试三角形的类别等但是这个公司真能从此开发出更好的软件么
一句话关键不在于答案而在于思考问题的方法这也是我们没有“题库”的原因。 求职攻略之决胜面试
经历了笔试、电话面试之后许多同学接到了微软公司的邀请——来公司进行面对面的考察。
Q 既然微软这么重视实际的能力每一个人都会经过几轮面试的考察在学校时的学习成绩是否就不重要了
A 也不一定。同样关键不是在于静态的成绩而是通过成绩了解成绩取得的过程了解一个人的特质。曾经有一个面试者详细询问了一个应聘者在学校里的各种表现最后在面试报告中写道“我详细询问了她从中学到大学、研究生的情况她在学校里没有一科的成绩是非常拔尖的也没有太坏的成绩。她从来没有做过出格的事情如逃课、自己写一些程序、打工等。我在她身上看不到对卓越的追求也没有看到她有实现自身价值的想法……所以我认为本公司不应该雇用她。”
Q 虽然我没什么想法但我觉得微软太有名了我也不用多想了我就是要进这样的公司你叫我干什么都可以
A 我们恰恰不太需要没什么想法的人这也许和企业文化有一些关系。在中国一些企业的文化中往往是领导安排你做什么你就做什么。在微软我们认为每个人都是独立的个体我们希望雇员能够“在其位谋其事”同时能考虑到自己三五年后的发展并且能自己制定计划去实现事业目标这是公司的文化。
Q 面试的时候要穿什么衣服
A 在没有特别规定的情况下穿你觉得舒服的衣服就行。我们看到不少应聘者穿着明显不舒服的西装来面试这样不会给自己加分当然也不会减分。但是自己太不舒服会影响发挥。
Q 不舒服没关系只要你们公司觉得舒服我就舒服。
A 我们刚刚说过微软更看重的是“你”是否觉得舒服“你”要做什么以及“你”有什么创意。
Q 有没有在面试中作弊的呢
A 说起来还真有。有一天我在微软外面的一个中餐馆吃晚饭这个餐馆很小大家坐得比较挤我不得不听到邻座的高谈阔论。原来是一个刚刚在微软面试过的学生在和几个同学聚餐他很兴奋地谈着当天面试的经历——
“他问了那个在链表中找回路的问题了么”
“问了我假装思考了一下稍稍试了试别的解法然后就把你说的那个解法讲了出来……”
对于这种人我们内部叫“Poser”——摆姿势的人。如果你在面试时恰好被问到了一道知道答案的题目你可以向面试者提出来。摆姿势的话万一被戳破会比较难堪。既然你已经花了时间了解解法不妨和面试者深入地探讨一下。
Q 大家发表在BBS上的面经公司看不看
A 公司的一些员工也在看有一次HR 在某BBS 上看到一篇很详细的面经文笔生动此文章从他看到HR JJ的那一刻写起直到做了什么题目、怎么做的、说了什么话、最后如何走出了公司大门他都做了详细记录。从描述上看我们很容易就能推断出这是哪一位应聘者。他似乎发挥得很不错可惜他忘了在开始面试的时候HR JJ给他讲的他也签了自己大名的保密协定。对于这样的同学我们只能遗憾地放弃了。
Q 整个面试过程中我觉得自己答得很不错了面试者指出的问题我大部分都能回答出来为什么我还是没有通过
A一个原因是有比你更厉害的应聘者另一个大家容易忽略的原因是应聘者和面试者对于“不错”的定义是不一样的参见对笔试问题的回答。
对于在校学生觉得自己写的程序涂涂改改大概逻辑能通过就行了面试者指出的问题能答出来一些就行了。但是对于将来的公司员工我们要考察程序设计的思路如何编程风格如何细节是否考虑到程序是否有内存泄露是否采用了最优算法是否能对程序进行修改以满足不断变化的需求是否能举一反三
另外除了专业技巧我们在面试中还会考察应聘者的职业技巧professional skills, 也有人称为 soft skills。 这个人的交流能力、合作能力如何对自己的评价和期望是什么在有压力的情况下能否发挥水平是否追求卓越这些“非技术”的因素相当重要。
Q 很多有名的企业面试只要求谈谈就可以了为什么微软一定要写代码
A 我们的绝大部分工作都是通过代码而来很大一部分的问题也是由代码所导致的。所以我们不能不重视写代码这件事。当然有很多其他工作不需要写代码但这不在我们的讨论范围内。
有一次我在过道上碰到一个同事陪着一个应聘者走出大楼这位应聘者边走边侃侃而谈。后来我问这位同事详情。他说“这位先生表达能力不错但是当我叫他写一个小程序的时候他死活不动手。他说在以前的工作中如果要写代码从MSDN上拷贝一些下来就行了。我和他僵持了一会儿之后只好说那你要是不写我们就没什么可谈的了。所以后面的面试都没有必要了我直接送他出了门。”
有一次我收到我们开发总经理的邮件上面强调了面试的时候一定要让应聘者动手写代码等这时对面的一位同事不好意思地说他今天碰到的应聘者是以前朋友的朋友。两人聊了很长时间的闲话后来他不好意思叫他写代码时间也不够了于是就写了一些反馈说这人看起来还行。没想到开发总经理眼尖把这个问题揪出来了。
另外我们的这一番对话应该给微软的技术面试做了相当的“去神秘化”demystified的工作。我还要提醒同学们要“去粉丝化”——不要像极品粉丝追逐明星那样如果明星不能满足自己见一面的要求或者其他要求就觉得天旋地转痛不欲生。如果你经过努力仍然没有进入微软公司你并非一无是处天也不会塌下来。微软公司不过是很多软件公司中的一个它要寻找“合适”它条件的员工这个公司不合适你还有下一个或者干脆你自己开创一个吧。
Q 技术面试还有什么特别的诀窍么
A 微软全球资深副总裁亚洲研究院的前任院长沈向洋博士经常讲的一句话是“Nothing replaces hard work”既然同学们知道技术面试不外乎就是这些类型的题目那大家就自己动手做一遍好了。如果实在做不出来可以学习《编程之美》或其他书上详细的讲解。
Q 我自己解答问题太慢了能把《编程之美》书上的解法背下来这也是一种捷径吧?
A 有时要小心这样的“捷径”。我想起以前考大学的一件事儿。当时有一本很厚的英语标准化考试模拟题不少同学都买来做。另一位同学从学长那里得了一本做过的书我们在做题的时候他说“我不用做了我已经有答案了我平时看看答案就行了一样的。”结果高考的时候他的英语考得很不好。
所以对于认为只要买了一本《编程之美》或者其他宝典就好像得到了入职捷径的同学我要提醒一下小心这样的捷径纸上得来终觉浅绝知此事要躬行。
小飞的总结
结束了和研发经理的几次对话之后小飞陷入了深思。他发现面试并不一定是用难题、偏题来考倒人笔试和面试考察的都是自己在编程、解决问题、与人合作等方面的全面能力。运气和背好的答案并不能帮助他解决所有的问题。微软公司花费很多人力物力来寻找合适的人才1那自己如何能展现能力让伯乐相中他做了如下的总结。
1 知己知彼。知己就是要了解自己的能力、兴趣、职业发展方向知彼就是要了解公司的文化、战略方向和择才标准。
2 笔试就是基础用扎实的理解和考虑完备的解答来征服阅卷者。
3 面试就是探讨用缜密的代码和严密的分析赢得未来同事的尊重。思考问题的方法比结果重要面试者会更加在乎你解决问题的思考过程。
4 你的工作就是最好的面试不要把时间花在寻找捷径和背诵答案上要通过实际的工作和产品来体现自己的水平。
千里之行始于足下要想在入职竞争中脱颖而出自己得先下苦功夫在平时就要用职业的标准来要求自己。他相信只要自己付出了足够的努力就会有收获——“长风破浪会有时直挂云帆济沧海”。 要更多地了解微软特别是微软亚洲研究院的方方面面请访问研究院网站www.msra.cn 和博客网站http://blog.sina.com.cn/msra