第一篇:微软研究院面试题目
1、猴子过河,ABC三个大猴,各自的孩子是abc三小猴。河上只有一小舟,每次最多坐2猴,岸上和船上,如果某小猴的家长不在,会被其他的大猴吃掉,ABCa会划船,如何过河。
2、10个箱子,每箱10瓶水,每瓶重一斤,但是有一箱次品,每瓶仅重9两,如何称一次找出次品箱。解答:
1、题意有让人误解的地方,应当理解为上下码头交接的时候是不允许吃的,否则此题无解。(如果有解请写信告诉我)如此,则充分利用a的不对称性。反复画一下就可以。我差不多5分钟搞定。
2、依次10、9、8、7、6……共取55瓶称一下,如果重量为54.9则为剩9瓶的箱;依此类推。2分钟搞定。来源:博客中国
第二篇:微软面试题目
第一组
1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?
5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
6.在9个点上画10条直线,要求每条直线上至少有三个点?
7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
8.怎么样种植4棵树木,使其中任意两棵树的距离相等?
第二组
1.为什么下水道的盖子是圆的?
2.中国有多少辆汽车?
3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?
4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?
5.多少个加油站才能满足中国的所有汽车?
6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?
7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?
8.你怎样将Excel的用法解释给你的奶奶听?
9.你怎样重新改进和设计一个ATM银行自动取款机?
10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?
11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?
12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?
13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?
第三组
1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费?
2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这只鸟共飞行了多长的距离?
3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。只称量一次,如何判断哪个罐子的药被污染了?
4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?
5.人民币为什么只有1、2、5、10的面值?
6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子,随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少?
7.给你两颗6面色子,可以在它们各个面上刻上0-9任意一个数字,要求能够用它们拼出任意一年中的日期数值
第四组
第一题.五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: 抽签决定自己的号码(1、2、3、4、5)
首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案 进行分配,否则将被扔进大海喂鲨鱼
如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼
依此类推
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?
第二题.一道关于飞机加油的问题,已知:
每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)
一箱油可供一架飞机绕地球飞半圈,问题:
为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
第三题.汽车加油问题
一辆载油500升的汽车从A开往1000公里外的B,已知汽车每公里耗油量为1升,A处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从A到B最少需要多少油
第四题.掷杯问题
一种杯子,若在第N层被摔破,则在任何比N高的楼层均会破,若在第M层不破,则在任何比M低的楼层均会破,给你两个这样的杯子,让你在100层高的楼层中测试,要求用最少的测试次数找出恰巧会使杯子破碎的楼层。
第五题.推理游戏
教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数
甲说:“我猜不出”
乙说:“我猜不出”
甲说:“我猜到了”
乙说:“我也猜到了”
问这两个数是多少
第六题.病狗问题
一个住宅区内有100户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否有病,现在,上级传来通知,要求住户处决这些病狗,并且不允许指认他人的狗是病狗(就是只能判断自己的),过了7天之后,所有的病狗都被处决了,问,一共有几只病狗?为什么?
第七题.U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。BONO需花1分钟过桥,EDGE需花2分钟过桥,ADAM需花5分钟过桥,LARRY需花10分钟过桥,他们要如何在17分钟内过桥呢?
第八题.监狱里有100个房间,每个房间内有一囚犯。一天,监狱长说,你们狱房外有一电灯,你们在放风时可以控制这个电灯(熄或亮)。每天只能有一个人出来放风,并且防风是随机的。如果在有限时间内,你们中的某人能对我说:“我敢保证,现在每个人都已经至少放过一次风了。”我就放了你们!问囚犯们要采取什么策略才能被监狱长放掉?如果采用了这种策略,大致多久他们可以被释放?
第五组
1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半(不是冲放电时 间),解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的 用户写信告诉解决方案。
2.一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念,按国家 规定,任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导,将城砖 取回。
3.营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生,王小姐的经理
怎么写信给李先生试图将钱要回来?
4.给你一款新研制的手机,如果你是测试组的组长,你会如何测试?
5.如何为函数int atoi(const char * pstr)编写测试向量?
第六组
1.链表和数组的区别在哪里?
2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?
4.请编写能直接实现char * strcpy(char * pstrDest,const char * pstrSource)函数功能的代码。
5.编写反转字符串的程序,要求优化速度、优化空间。
6.在链表里如何发现循环链接?
7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。
8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码
9.给出一个函数来输出一个字符串的所有排列。
10.请编写实现void * malloc(int)内存分配函数功能一样的代码。
11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
12.怎样编写一个程序,把一个有序整数数组放到二叉树中?
13.怎样从顶部开始逐层打印二叉树结点数据?请编程。
14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?--
15.请编写能直接实现int atoi(const char * pstr)函数功能的代码。
第一组题答案:
1)三根绳,第一根点燃两端,第二根点燃一端,第三根不点
第一根绳烧完(30分钟)后,点燃第二根绳的另一端,第二根绳烧完(45分钟)后,点燃第三根绳子两端,第三根绳烧完(1小时15分)后,计时完成2)根据抽屉原理,4个
3)3升装满;3升-〉5升(全注入);3升装满;3升-〉5升(剩1升);5升倒掉;3升-〉5升(注入1升);3升装满;3升-〉5升;完成(另:可用回溯法编程求解)
4)问其中一人:另外一个人会说哪一条路是通往诚实国的?回答者所指的那条路必然是通往说谎国的。
5)12个球:
第一次:4,4 如果平了:
那么剩下的球中取3放左边,取3个好球放右边,称:
如果左边重,那么取两个球称一下,哪个重哪个是次品,平的话第三个重,是次品,轻的话同理
如果平了,那么剩下一个次品,还可根据需要称出次品比正品轻或者重
如果不平:
那么不妨设左边重右边轻,为了便于说明,将左边4颗称为重球,右边4颗称为轻球,剩下4颗称为好球
取重球2颗,轻球2颗放在左侧,右侧放3颗好球和一颗轻球
如果左边重
称那两颗重球,重的一个次品,平的话右边轻球次品
如果右边重
称左边两颗轻球,轻的一个次品
如果平
称剩下两颗重球,重的一个次品,平的话剩下那颗轻球次品
13个球:
第一次:4,4,如果平了
剩5颗球用上面的方法仍旧能找出次品,只是不能知道次品是重是轻
如果不平,同上
6)
o o o
o o o
o o o
7)
23次,因为分针要转24圈,时针才能转1圈,而分针和时针重合两次之间的间隔显然>1小时,它们有23次重合机会,每次重合中秒针有一次重合机会,所以是23次
重合时间可以对照手表求出,也可列方程求出
8)
在地球表面种树,做一个地球内接的正四面体,内接点即为所求
第二组 无标准答案
第三组
1.分成1,2,4三段,第一天给1,第二天给2取回1,第3天给1,第4天给4取回1、2,第5天给1,第6天给2取回1,第七天给1
2.求出火车相遇时间,鸟速乘以时间就是鸟飞行的距离
3.四个罐子中分别取1,2,3,4颗药丸,称出比正常重多少,即可判断出那个罐子的药被污染
4.三个开关分别:关,开,开10分钟,然后进屋,暗且凉的为开关1控制的灯,亮的为开关2控制的灯,暗且热的为开关3控制的灯
5.因为可以用1,2,5,10组合成任何需要的货币值,日常习惯为10进制
6.题意不理解...*_*
7.012345 0126(9)78
第四组 都是很难的题目
第一题:97 0 1 2 0 或者 97 0 1 0 2(提示:可用逆推法求出)
第二题:3架飞机5架次,飞法:
ABC 3架同时起飞,1/8处,C给AB加满油,C返航,1/4处,B给A加满油,B返航,A到达1/2处,C从机场往另一方向起飞,3/4处,C同已经空油箱的A平分剩余油量,同时B从机场起飞,AC到7/8处同B平分剩余油量,刚好3架飞机同时返航。所以是3架飞机5架次。
第三题:需要建立数学模型
(提示,严格证明该模型最优比较麻烦,但确实可证,大胆猜想是解题关键)
题目可归结为求数列 an=500/(2n+1)n=0,1,2,3......的和Sn什么时候大于等于1000,解得n>6 当n=6时,S6=977.57
所以第一个中转点离起始位置距离为1000-977.57=22.43公里
所以第一次中转之前共耗油 22.43*(2*7+1)=336.50升
此后每次中转耗油500升
所以总耗油量为7*500+336.50=3836.50升
第四题:需要建立数学模型
题目可归结为求自然数列的和S什么时候大于等于100,解得n>13
第一个杯子可能的投掷楼层分别为:14,27,39,50,60,69,77,84,90,95,99,100 第五题:3和4(可严格证明)
设两个数为n1,n2,n1>=n2,甲听到的数为n=n1+n2,乙听到的数为m=n1*n2
证明n1=3,n2=4是唯一解
证明:要证以上命题为真,不妨先证n=7
1)必要性:
i)n>5 是显然的,因为n<4不可能,n=4或者n=5甲都不可能回答不知道
ii)n>6 因为如果n=6的话,那么甲虽然不知道(不确定2+4还是3+3)但是无论是2,4还是3,3乙都不可能说不知道(m=8或者m=9的话乙说不知道是没有道理的)
iii)n<8 因为如果n>=8的话,就可以将n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要条件是x=6即n=10,那样n又可以分解成8+2,所以总之当n>=8时,n至少可以分解成两种不同的合数之和,这样乙说不知道的时候,甲就没有理由马上说知道。
以上证明了必要性
2)充分性
当n=7时,n可以分解成2+5或3+4
显然2+5不符合题意,舍去,容易判断出3+4符合题意,m=12,证毕
于是得到n=7 m=12 n1=3 n2=4是唯一解。
第六题:7只(数学归纳法证明)
1)若只有1只病狗,因为病狗主人看不到有其他病狗,必然会知道自己的狗是病狗(前提是一定存在病狗),所以他会在第一天把病狗处决。
2)设有k只病狗的话,会在第k天被处决,那么,如果有k+1只,病狗的主人只会看到k只病狗,而第k天没有人处决病狗,病狗主人就会在第k+1天知道自己的狗是病狗,于是病狗在第k+1天被处决
3)由1)2)得,若有n只病狗,必然在第n天被处决
第七题:(提示:可用图论方法解决)
BONO&EDGE过(2分),BONO将手电带回(1分),ADAM&LARRY过(10分),EDGE将手电带回(2分),BONO&EDGE过(2分)2+1+10+2+2=17分钟
第八题:
约定好一个人作为报告人(可以是第一个放风的人)
规则如下:
1、报告人放风的时候开灯并数开灯次数
2、其他人第一次遇到开着灯放风时,将灯关闭
3、当报告人第100次开灯的时候,去向监狱长报告,要求监狱长放人......按照概率大约30年后(10000天)他们可以被释放
第五组无标准答案
第六组部分题参考答案:
第三篇:微软面试经历中英文面试
微软面试经历中英文面试
微软面试经验一:
上周三晚上,我收到了ATC的面试通知(邮件)周四晚上,整整复习了一天,直到晚上2点钟,主要看数据结构,重点看了排序,检索,二叉书,自己还想了想怎么存储一个二叉树到文件中,怎么从文件恢复(这个据说今年考过),怎么不用递归实现前序,后序,中序遍历。图论部分稍微看了一下。结果,上周五(19日),我参加ATC的面试时候,我看的一个都没有考到2,惨啊。第二轮的时候,考官的问题是:怎么实现在一个图中,判断能否沿所有边走一遍且只走一遍,如果能够,写出走法。需要自己定义数据结构和写算法。其实,这个就是著名的七孔桥问题,反正我当时一下就有点懵了,幸亏考官给我一些提示,后来还简化了一些条件和要求,但是我自己感觉答的不是很好。不过,幸运的是,我还是能参加了下午的面试,只有一个人面试,呵呵。现在等待结果中。。
总之,大家还是看看图论的一些东西吧,当然二叉树还是要看的。至于其它一些编程题,主要要考虑编程习惯,边界条件(保证程序正确),以及算法效率,估计都得靠临场发挥了。就像版上所说的,自己不会的时候,一定要和面试官多聊,试探性的说出自己想法,他总不会让你往一个明显错误的方向走下去吧1
微软面试经验二:
ATC PM 面经 首先声明,我是被人推荐面试去的。不要和现在的校园招聘混淆了,面试的流程应该是不一样的。感谢推荐我的Darren.Wang,这位ee的师兄是我的伯乐,虽然我们就见过2面。注:以下的面试都是全英文,就最后报告offer的是中文。ok,首先是电面,9月中旬,是hr打过来的,问了一些基本问题,问了简历上的问题,然后问我最熟悉的编程语言是什么,我大言不惭的说c#。于是她问了我3个c#的问题,都是概念性问题,期间听到有用笔在记录什么东西(汗)。
分别是thread pool, overload/overri de, 还有一个忘记了。大概就是看你能不能流利的说出来的把。这一轮的重点大概就是英语。最后告诉我给我一个on-site interview, 过了一周左右,通知了我是在10-17号面试,天,一个月。折磨阿,早上7.45??折磨阿基本上是从10月12号之后开始准备的,在此推荐一个pdf,programer interview,有中文版。17号早上6.30点钟起床,东川路么,很近的。但是我还是打了车。在上车之前的准备工作有:上厕所,吃半块德福的白巧克力,喝了一点水。其他都带着上车了。7。30到了,5个人,3个工作的,一个intern,还有一个我 8点开始面试,一共5轮,2轮中国人,3轮外国人,遗憾的我一个名字都没记住。每轮 1个小时 1面,很nice的gg,英语说得很慢,明显照顾我。先问了问简历的问题,然后开始做题,首先是“TestString“->”StringTest"的问题,而且第二个单词是给定位置的,用区间反转解之。然后是一个随机数字的数组,求和是100的两个数字位置,用两边夹逼解之。这两个都要写detail的程序的。然后问了一道open question,怎么样在拥有很多书的情况下把书摆的适合查找,而且增加的时候也要保持查找的顺序。后来觉得这道题就是数据库的文件系统怎么设计么。还不用考虑删除,用物理索引解之。
2面,很有气质的gg,感觉是里面的资深工程师。先给我解释了一下sde,sdet,pm的区别。然后问了我简历上的问题。编程上问了我两个sorted single list的merge问题。让我写代码。我是真的从上完数据结构课就没写过c 的东西了,居然把节点指针写成了in t *。费了半天劲终于写好了。结果指针移位的时候多用了个temp指针,被指出,道歉,改正。然后继续讨论sde,sdet,pm的选择问题。真的是很有风度,恩。3面,很有趣的foreign gg,感觉是开发部的lead。先简单问了我实习的问题,然后问了我毕业论文的情况。令我惊讶的是我毕业论文写的是本体的进化,他居然懂得。紧张阿,不是遇到这方面的大牛了八。还好没有继续问下去(虽然我不是没做,但总是心虚阿)。然后出了一道我至今见的最巧妙的面试题(大概是我孤陋了)。
首先,写个power(x, y)的test cases,就是x的y次方拉。然后,用循环实现,不用循环实现(用递归),递归费内存如何解决。我到写递归的时候已经晕了,test case 写了7,8个,自己写程序的时候每个都要注意,真正的test case driven...这面感觉最不好。4面,很pp的foreign jj,是test lead(我问的,确定)。先问我sde,sdet,pm有没有讲过,我想当哪个。我说sde,pm把,sdet不干。后来最后才知道她是test lead。汗阿。首先问了我一个设计问题,让我设计一个媒体播放器,越细越好。我一顿mvc,3层架构,设计模式,插件结构,哈哈,我强项阿。然后吹了一通我的设计的健壮,完整,扩充。恩。然后她让我写个算法,一个随机整形数组,找出里面第一对相同的item。我当时吹得太兴奋了,头脑还是处于结构性状态中,于是只想出了排序的nlogn,没有能做出n的算法(但是我用空间换时间的办法得到了n,就是开一个65563的数组。)。
4面结束 5面,很有气质的foreign jj,是unit manager。先问我sde,sdet,pm选哪个,我说sde,pm.她说为什么每个人都是sde。我辩解一通。然后她给了我一个case,说如果一个世界冠军给你1/4 billion dollar让你造一台自行车,但是轮子是别人造的,而且要time-critical你怎么办。我当时想,这造火箭都出来了。
我用标准流程应对之,plan,采购,评估。,后,她继续:如果造轮子的说好了周二给你又没给怎么办。我说首先通知客户,这是 integrity问题。然后push那边快点,实在不行就换人!反正老子钱多。问题1结束。问题 2:假设现在你有几个best developer,你想做一个什么软件?并解释,设计它。这真是天赐良机阿,我前一周刚和allen讨论过要做一个personal的高级收藏夹一样的东西。于是略作思考,提升至personal knowledge center的级别一顿猛说,激动阿。感觉那个manager 跟你说话就能感染你,让你很有passion。基本上说完,中间她就提了一两个问题,还是我接下来就要说得,问题2结束。
离开atc.感觉后两轮就是按照pm来面试我。等待睡不好,吃不好。听到手机响就紧张。周五我一个好久不见的高中同学过来了,陪他了一天,期间作了一点心理咨询。送他去车站的时候,电话响了,通知我给我pm的offer。至此我job的**面试结束。总结一下:英语是基础,尽量做到能流畅的表达自己的意思,我觉得后两轮我能通过有很大部分是因为我的想法充分表达出来
了。简历是过去,要有漂亮的实习和奖学金。前者是你证明自己能力的最好方式,后面是补充。热情是必须,当你表达出你对这个job的热情并且面试官也很high的时候,offer就来了。恩,bless all who will have their interview and wish they get what they want.微软面试经验三:
12月上旬面的(迟了点,希望对后面的人有一点点用,MS看见还有人要面)在美罗城体会上上下下的(可不是享受啊!每次上上下下都好紧张啊,谁让我不是牛人呢?DDMM们一定要好好学习啊,基础课是很重要的,唉,从前别人跟偶这么说的时候偶也是左耳进右耳出,但是基础课(特别是DATA STRUCTURE)真的非常重要(真的不是我罗嗦啊,实在太重要了)似乎面试官都是从北京飞来的,(包括HR JJ,PP哦),除了上海的DIRECTORHR JJ告知是3+1轮,不过实际面了3+2轮(3轮后淘汰或者是直接录取(这个偶不知道)了1/4,呵呵,其实就是1个人拉,一共才4个人那天)偶面的POSITION是SDET(不敢面SDE,本人实在太弱)
第一轮:自我感觉还比较良好,问了STATIC和POINTER的一点东东,然后是一个ITOA的实现+如何测试,然后问了二叉排序树中如何删除一个结点第二轮:让偶写那个删除结点的CODE,写的乱七八糟,错误多多,被强烈BS,不过MS的人都很和蔼,说还有机会第三轮:是ATC的一个VICE PRESIDENT,先问了些问题(非技术),智力题好牛(应该说是我弱),答不出,和蔼的告诉偶:今天辛苦了,感谢来应聘!(智力题是12球未知轻重问题)RP爆发了一下,竟然在如此情况下还有下面的2轮,感谢党,感谢**,感谢微软 第四轮:老外出现,负2进制,循循善诱后总算答出一点,英语太差亚,有人同去学口语不?然后是写STRCMP+如何测试,汗啊,KMP俺背不出。第五轮:BOSS出现,就是上海的DIRECTOR,颇有亲和力,上来聊了会,然后出了一个WORD COUNT 的实现+TEST,还有一道智力题然后HR就告诉说结果下周一会通知,确实非常准时。周一下午就收到了。
总结一下偶的一点心得,仅供参考:千万不要紧张,答不出不是问题。偶就是太紧张了,丢脸啊(XDJM不要BS偶啊)。答不出应该保持风度,或者请他换道题也可以。(这个感觉是面试经验问题,偶的面试经验确实是太少了,不过充分牛的话应该就不会遇到这个问题了(好像多嘴了,牛人应该不用看面
经?!@#$%))还有英语是真的太重要了,那里人人都是讲英语的。偶就是太[被过滤],洋文这个东东啊,是一定要学好的,不仅要GOOD,还要BETTER,BEST!偶是下定决心学习口语+听力了,望懂行的XDJM给我支个招,上什么班比较好?要自信,感觉微软的确不是只根据你的强弱来录用你的,我想这个也是MS的风格吧,虽然以前也有所耳闻。
第四篇:微软亚洲研究院创始人李开复在演讲
微软亚洲研究院创始人李开复在演讲(全文)
新浪科技讯11月5日“二十一世纪的计算-探索计算之源”国际学术研讨会在北京国际会议中心举行,微软公司高级副总裁Rick Rashid博士、菲尔兹奖获得者丘生桐博士、图灵奖获得者Raj Reddy博士、微软亚洲研究院院长兼首席科学家张亚勤博士、微软公司副总裁李开复博士等知名学者做了主题演讲。新浪科技对本会议做了全程独家直播报道。
以下为微软亚洲研究院创始人李开复演讲全文
我记得在五年前的今天是我们微软亚洲研究院成立的时候,我曾经说过这么一句话身为在软件界工作的人能够在微软工作感觉非常幸运,身为炎黄子孙,我能够在中国工作感到非常幸运,在五年之后的今天,回顾这五年在微软研究院的成就,看到今天多种研究结果辉煌的演示,而且见到这么多中国年轻的朋友、学生,让我感到非常欣慰,而且非常自豪。微软,亚洲研究院我为你们的成功感到自豪,中国,我为你未来的潜力感到自豪,中国的学生,我为能够在中国出一点力量,帮助你们成长,感到自豪。谢谢。我从一个幸运的人变成一个自豪的人,今天我演讲的题目是一个让我工作了20多年,也感觉非常幸运,因为我有非常多好的老师。如果我们从计算机界能够找到两位非常有哲理的计算机教授,他们分别是两位MIT的教授,他们曾经说过这样的话,语音和语言是人类的一个工程,是人类的一个创作。因为在数千年前人类并没有语言和语音这个东西,人创造发明这个东西是希望能够通过语言来做沟通,做人际交流,因为有这样的人际交流这样一个习惯,这样一个工程,希望让机器也能够用同样的方法和我们沟通。计算机界上两位非常有哲理的哲学家,两位非常务实的专家分别是英特尔和Microsoft的创始人,他们认为过去人类为自己人际交流的工具,也将是未来人机最自然、最表达性的用户界面的方式。所以我们可以看到的是过去这五六十年来科幻片里面用的人机的科幻界面用的都是语言和语音,而且我们能够看到微软、苹果等公司对未来技术的展望,作出一些录像让人们对未来的展望非常乐观,这些录像也都是用语音的界面,现在我们来看两个例子,第一个例子是很有名的科幻片。
这是一个70年代很有名的科幻片,在这里面计算机虽然是有会话式的交流,但是是一个非常邪恶的计算机,最后我们看到这位主人翁被会话性的计算机所谋杀了,这是一个例子。但是并不见得这种用户界面都是邪恶的。我们看另外一个例子,这是苹果公司非常有名的一个例子,它是非常经典的一个会话式用户界面的创作,这里面没有任何一个技术是真的,它只是对未来的展望。
我就放到这里,但是我们可以看到这是一个教授他在和经过新一代会话式的用户界面他和另外一个教授进行了合作,而他有一个非常聪明得力的助手,随时都有无限而且精确的信息能够帮助他更好地工作。这两个例子都是一个非常长远、非常科幻的甚至是不可达到的一个目标。但是我们可以从这两个例子看出来,为什么这么多人都对这样的未来多么向往,因为我们就可以和机器有很好的沟通,能够自己工作更有效率。所以人们不能避免地都对这个未来的前景非常看好,而且很多人对未来,包括我自己做的一些预测,而这些预测今天并没有达到,但是从1950年MIT的校长就认为说也许十年之后我们就可以做人机的机器翻译,1957年诺贝尔的得主就预测十年之内计算机能够做很多工作,包括人工智能方面的预测。在1969年,这不是一个人,而是一个美国专家协会他们预测在1978年语音的输入和输出将成为一个自然交流的方式。在1993年,很不幸的是我做了一个预测2003年所有语音都会作为一个计算机的功能,虽然现在有很多计算机都有语音的功能,但是几乎没有用户在用它。在1998年美国最受尊敬的在商业方面的一个专家组预测在2003年PC会有语音输入的能力,而且会成为用户界面的一个重点方向。2003年这个预测也没有达到。所以在这些非常乐观的人对未来的前景非常看好,做了一个非常乐观的预测,而今天这一个又一个预测,从1950年到1998年都没有达到,那么今天在此我们是应该对未来感到一份绝望呢?还是应该对未来有一个新的乐观,这就是我今天想要讲的主要的题目。如果我们把会话式的计算机能够拆分出来,比较简单的,刚才舒教授给了比较完整的图片,如果我们简单来看的话有三个部分,语音识别、语音理解和语音合成,这是三个最重要的部分,我们我将介绍这三个部分过去十年的进展,这十年进展有没有给我们一些启示我们应该是乐观还是悲观?
在介绍完这三个技术之后将探讨是不是十年之后可以达到未来这些非常好的前景还是会有更大的挫折,我很勇敢地将再做一次对十年之后的预测,希望十年之后来到中国能够证明这次预测比上次预测成功。首先我想讲的是语音识别。语音识别在二三十年前更多人是想用专家系统的方式来模拟人听的方式,用专家系统来做一个很好的语音识别。但是在80年代在IBM的工作更证明用下列的方法能够得到更好的结果,基本上概念很简单,如果X是我们讲的音波,W是所有可能的词或者是句子,要做一个语音识别系统就是要搜索所有可能的句子W,挑选一个W把这个值能够做的越大越好,也就是说我听到X这个音波之后,在所有的句子里要挑一个概率最高的。怎么去做这个问题呢?要把这个拆成两各部分,可以得到这个基本上是挑选最大的值,第一个是所有的句子里面能够产生这样一个音波的概率有多大,再乘上每一个句子它出现的概率有多大,如果我们能够做两个模型,能够很好地模拟这两个模型的话,就做成了一个很好的语音识别系统。第一个部分就是作为的音的模型,就是我们要预测对于一个句子对于一个字它将造成每一种音波的概率有多大,而W是任何一串字它出现的概率又有多大。既然这是概率的一个模型所以就用统计的方法来优化它。怎么优化音的模型呢?就先做一个统计的模型能够很好地模拟每个字、每个音,这每个字、每个音可以有非常细腻的细节,但是刚开始可以假设每个音、每个字有自己的模型,针对这个字、这个音会收取非常多的数据。有一句话在语音界非常出名的,就是最多的数据就是最好的数据。我们发现如果你有很好、很平衡而且很是完美的数据,反而部署得到十倍多的数据它不是很完美、很平衡的。所以多的数据能够构成一个很好的模型参数。我们用这个数据训练这个模型,可以再回去这个音已经做得很好了,现在能不能再收十倍的数据,做一个模型收集很多数据,根据这个数据把模型好好训练好,然后做更大的模型,这个时候需要更多的数据,再用更大的数据训练更大的模型,这样源源不止,一步一步地把语音的识别做得更好。
我们也可以同样用统计的方法来做,有一个非常简单的每一个句子的概率就是每个字的概率相乘,当看到前两个字,第三字出现的概率有多大,这就是它的概率了。怎么样训练这个东西呢?又需要很大的语量,无限大的语量,其实这是跟音的模型是一样的。这样让数据模型都有一个很大的进步。语音模型达到的进步都是更多的数据加上很好的模拟来得到这样的进步的。
其实Moore’S对语音来说是一个必须条件,而不是充分条件。当三者结合之后,我们发现摩尔定律每十八个月翻一番,所以对未来应该说带着一种乐观,但是不是特别乐观的乐观。我们乐观因为它确实每60个可以翻一番,但是不能特别乐观,因为它的速度不如纯粹的Moore’S来的那么大。我们从微软公司的结果可以详细看到60个月翻一番的结果。每五年错误率降低一半,96年黄博士第一次在微软演示一套新的系统,很多用户对这个非常兴奋,但是认为精确率还不够,但是我对未来还是非常乐观的,我们可以预测每60个月翻一番,对未来我们将有希望可以达到人的错误率大概是在2%左右。如果我们往前推测的话,应该在7年到10年之内有和可能近或者是达到人类识别的精准度。
第二语音的合成,我们看到的很多很好的例子,但是语音合成和语音识别是非常类似的。在80年代末90年代有另外一种方法是更合适的。其实就是一个统计的方法来做语音合成。语音合成有两个部分,一个是前端处理,一个是后端处理。前端处理要做一个名词或者是动词其他词的处理,然后断定在什么地方停顿,怎么样把韵律做得更好,怎么做很好的节奏、轻重等等。它会把这个信息传给一个后端,现在我处理的这些字你要去找最好、最大、最合适的,一段一段曾经录过的语料库,然后找出一段段音、字、词,让这些串字之间做的越平滑越好。而且有很好的方法能够评估怎么样挑选最好的单元,怎么把单元衔接在一起,怎么样优化他们之间的平滑度,而不是调一些参数。因为我们发现调一些参数其实和人对自然的期望并不是非常合适的。所以这和语音识别有非常大相似的地方。因为我们也是收集很大的语音库、语料库,在合成的时候做一个非常好的优化和挑选。当库越大,参数越好,你的指标更接近人类对语音字的要求,你就会做到更高的质量。从82年到2001年做的1是很糟,5是非常完美的结果。现在我们放一些过去中文语音合成效果你们可以听出来有很显著的进步,这是82年。这就很接近人的一些表现了,但是新闻播报人员可以达到大约4.5,可以像木兰这样的系统2001年的还是有一些距离,但是比较接近了。纯粹不要考虑理解,只要考虑到语音的识别和合成可以看到的是经过了语音的识别和合成确实有很大的进步,其实已经慢慢接近人的能力。但是并不是因为所谓的人工智能而做出来的,更是一个优化的过程、一个统计的过程做出来的。
话说回来了,虽然语音识别期望在七年能够达到人的识别率,但是如果很多人一起讲的话,语音识别系统就不行了。而且人可以做很快地学习和适应,我们听一个人的讲话只要一个音节就可以识别一个人了,而语音系统可能需要一个小时两个小时之后才能达到。纯粹靠语音识别和语音合成就已经有很多很好的应用了,在语音识别来说我们可以做听写的工作,我们看到了一些语音搜索的例子,还有教一个中国人怎么样把中国人教的更好,或者是美国人怎么把中文讲得更好,或者是小孩怎么学好外语,这些都是很好的应用。同样语音合成也有很多很好的应用。比如说做一个个性化的语音合成,这次我来中国这边语音组给了我一个小小的礼物,我现在把这个礼物放给你们听。就是把我的声音加上一个很标准的北京腔调。
下面我们谈的是比较困难的问题自然语言的理解,其实是结合了多种问题,英文BOOK可以当做书也可以当做订购票,但是怎么知道在什么情况下用什么语法的?还有语意。另外还有需要很聪明的能够结合多种的知识,如果BOOK作为名词和动词哪一个概率比较大,这就要看哪个网站了。如果知道个人住在什么地方,喜欢什么地方都会影响语音理解,这些都是一些需要结合的因素。
这些听起来是很困难的,但是如果能够在自然语言理解上面挑选一个领域,不要奢求做一个像人一样的自然语言理解,如果只挑选一个领域,收录很多语料,刚才语音识别的方式完全用在自然语音理解上面。有一个音波X进来,同样也可以是一个W进来,M是语意,我要求的是给我这这一串字最大可能的语意是哪个,最后需要训练两个模型,第一个模型是当我有这个语意的时候,每一种可能表达句子的概率是多大。第二是每一种语意的概率有多大,回到刚才订票的例子就可以看到,我们对于一个BOOK是动词或者是名词的概率有多大,或者是要定某一种票和另一种票概率有多大,都可以从已存的语料上求出来。如果我们是做一个领域的,而且能够收集到很多数据,完全可以做到非常好的语音的理解。但是人真正很深的理解是非常非常广、非常的。甚至今天看起来机器是不能达到的。因为要把不同来源的知识能够结合起来,而且人的理解不在一个领域,而是可以跨领域。就像我今天做这个演讲,如果突然加上一句今天油条很好吃,各位都能懂我讲什么,但是和订票系统讲的话,就不行了。所以今天看来是没有解决的方式。什么是合理的什么是不合理的,这对机器来说也是很困难的。还有幽默感的问题等等这些都是人所具有的,但是可以说今天完全不知道怎么样让机器有这样的一个理解、一个智慧。所以真正说AI能够和人一样的智能,当我们解的AI的问题之后这些问题都解了。但是解决AI的问题可能是遥遥无期的,可能在这一代、下一代、很多代之后都不知道能不能够解决的。
虽然很大的问题很难解决,但是在过去四十年中,如果很宏观来看其实都是有很大的进步的。为什么我们总是十年,为什么过去的预测都不正确,我们还敢不敢再做预测。我认为有几个很重要的事情,一个因为技术还不成熟,当你做一个演示的时候看起来技术很好,但是真正做产品就不是那么回事了。当你没有过去的数据做未来的推测是很危险的事情。第二个是科幻片对人们有一个非常高的期望,期望一高要达到就很困难了。所以我们现在做的工作就是给很低的期望而超过它。还有一件事做DEMO是很漂亮的,但是只有一些句子能够做得很好,并不是能够马上成为产品化的工作。当一个演示成为产品的过程还有是用户要需要它,用户要愿意改变他们过去的一些习惯。另外还要知道开发新的语音的应用要花多少代价,有多少回报,有没有足够的商业价值。
我认为今天我们学到了很多教训,但是今天看来远景和过去是不一样的今天我认为技术慢慢达到了成熟,而且我们学多了很多教训。第一个教训就是不要乱做预测,尤其如果你没有过去的数据能够证实你的预测是合理的。第二数据的力量是无穷的。第三我们知道的不要期望一次彻底地改变所有的事情,一步步地改变世界,一个个领域地来做是非常合理的。而且我们经过数据、经过努力的工作,能够得到很好的应用也是很值得的工作,虽然它不见得是最高科技的发明。还有不要去做一些非常科幻、未来的一些应用。而要开始做用户愿意做的事情,要挑选一些真正有商机的一些可能。如果今天看有什么样商机的可能?下列是几个可能的方向,第一个是在PC上做应用软件,第二是做听写,第三是把会议做一个很精准的音字转换,第四是残障人士手不方便用的时候语音是很好的方法,第五个是行动上,最后一个是呼叫的时候做很好的语音的工作。如果我们看有没有用户需要它?除了语音,有没有别的好的方法,市场需不需要它,还有技术是不是足够成熟?如果我们看这些方面的话,在Telephone上面有最大的机会。
我们在这个录像里面看到的是在移 动和电话环境之下能够做到很好的应用。现在我想很迅速做两个产品的演示,这两个演示是实际的产品,而不只是研究的一些结果。第一个演示是我们刚刚看到电话上的应用,我们公司在昨天推出了一个新的产品,这也是一个电话。我现在做另外一个例子,这个例子能够帮我们找到很好的地图和开车的方向,这是在微软附近的一个体育球场,如果要开去的话可以看看怎么样开是最好的路,它可以给我怎么样开车的路线,这个演示到此为止。我们现在利用语音能够随时随地查询我们要走的方向。
这是我对三年的一个展望,如果我们对三年看起来电话对行动、对残障人士特别看好,我想再过三年之后慢慢就会发现有更多在电话方面更主流的一些应用,比如说随时随地可以搜获你所有的信息,包括E—mail等等,我们也期望所有的电话都有语音的能力。我们会发现听写可能在五年之后慢慢接近人的识别能力,也会有更多的人使用它。我希望能够看到语音不仅成为一个主流,而且成为一个核心的角色,而且我们也会发现在那个时候可以慢慢做到一个主流的状态,我希望刚刚看到苏教授一些例子能够在2010年做到一些代理式的用户界面。当你告诉你的机器要达到什么样的目标,让它一步步地去做这些工作。在十年之后,我想能够看到苏教授的一个例子,这也是比较困难的工作,我们希望能够在家庭的使用,比如说电视,甚至在厨房语音都能够使用。但是这些方面需要用户做更大的转变,能够接受这样的技术。我希望语音在十年之后能够成为一个部分,我并不认为它会成为一个主要的用户界面,但是成为用户界面主要的部分之一。
前三个电话、设备和PC是今天我们考虑到语音的使用方式,其实未来语音当中的数据也是非常重要的一个方向,慢慢地我想我们可以搜索我们自己所录的语音,再未来我们可以做一些真的能够把开会的过程很精准地录下来,所以我希望在下十年能够看到这一系列令人兴奋的应用,他们是在一个领域,许多数据进步,在摩尔定律帮助之下能够完成的任务。语音确实能够得到摩尔定律的帮助,但是我们不仅需要很快的PCU,也需要很多数据和更好的算法,我们希望能够在十年之内能够在语音合成、语音识别达到人的能力。但是语言的理解是更难的一个问题,我不认为在短的时间我们有可能解决不分领域的自然语言理解,也不能够达到真正的人类自然语言理解的程度。但是在针对某个领域或者是某几个领域,我认为在两到三年之内我们会看到很多电话和移 动的和残障人士的应用,而在七年到十年我们的机会是更大的,包括很聪明助理式的服务,包括搜索开会的程序,希望语音不仅是在电话一些必须要用语音的设备上,而是可以在每一个机器,真正能够做到在任何地方任何时间任何方式来使用语音。
第五篇:微软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++算 法题目的形式展现出来,核心是挖掘你在编制程序过程中的基本素养。技术这种东西,说白了就是产品,一代一代过,过时了就不用了,而一些很经典的东西,数学 基础、数据结构算法、数据库、操作系统、计算机网络等等,是计算机科学的基石,建议学弟学妹们分清主次,否则将来会吃大亏。
写到这里相信大家已经发现了,要准备微软的面试几乎没有技巧,说容易也容易,说难也难。容易是因为,你几乎不用准备,因为考察的是你这大学几年来所培养起来的内在品质,不是一些临时抱佛脚的东西,说他难,是因为你有时候根本准备不来,如果你大学前几年在混……再好的技巧,神都帮不到你了。
对 了这里还要再说明一下,大家其实要学会培养自己的学习和分析能力。再遇到一个没有遇见的问题时,根据现有的知识,做出自己的理性猜测,然后再去寻找答案。在这一面时,我就遇到了一个从来没遇到过的问题,我就是先扯到了一个跟这个问题相关并且我很熟且搞得很深的问题上,讲完之后,告诉面试官,那个问题如果让 我现在去设计,我是这样考虑的,尽管我没遇到过这类问题,但是要向面试官展示出你的学习能力和潜能,本来嘛,计算机学科这么广,一个本科生怎么可能掌握所 有呢,但是其学习能力对于一个程序员来说更加重要。