转别人MS经历

这转载自:http://blog.donews.com/windshow

在MSRA的几个月里,自己还是学的很多东西,不光是学术和编程方面,包括做人也有很多好的体会,自己记录下来以后留着自己慢慢嚼:

(1)一定要注意及时与别人沟通,特别是你的上级。一个新人出来乍到一个新的环境,肯定对周围所有的人都有抵触情绪,周围的人对你也都有抵触情绪,就象一个人刚换一个心脏,心脏会抵触其它的器官,其它的器官也会抵触心脏。这个时候唯一的解决办法就是磨合,在人与人之间就是沟通。我刚来时,很多观点也是怕得不到别人的认可。譬如有的时候你要向上级提出一些请求,可是又深感自己准备的不够,所以就一直没有及时的沟通。我发现这样会带来很多的问题,准备不够,不等于没有沟通。如果不及时沟通,可能后来就到了一个大家都没有办法解决的地步。相反我发现在大公司,譬如在微软这种地方,大家都非常注重沟通,希望获得别人的帮助。

(2)学会如何将话说的委婉。这是我在微软感受比较深的地方,微软的人都非常注重沟通,自然他们就都非常注重说话的技巧。学会如何将话表述的委婉,是必修的课程。而这一直是做的不好的地方,女友经常说我用命令的口气说话,自己一定要注意,慢慢去改变自己。说话之前做preprocess。

(3)要尽可能记准记对别人的名字。在微软我认识了很多人,可是有的人能够叫出我的名字,我却没有办法叫出他的名字,所以有时候别人给我打招呼,总是忽然想不起他的名字。这一点其实是一种致命的疏忽。大凡有领导才干者,都会去培养自己记名字的能力。特别是作为一个manager,你能对你的众多手下叫出名字,这是对他们的一种认可,也会激励他们的斗志,使他们更好的团结在你的周围。所以这方面自己以后应该加强,可以用一个小本记载别人的名字,多写两遍。切记,更不要将别人的名字打错或者拼错,那是对于别人的侮辱。

(注:感觉第三点有点过了,不过我也有时会忘记别人的名字,确实另人感觉很尴尬.我以后也要注意了~~~)

虽然自己在来MSRA checkin之前,也有过面试!但是感觉问的问题要比下面这些简单些,可能也是mentor手下留情,或者mentor看我水平太烂,不忍心问我了!呵呵,转贴一篇别人写的文章,以后自己慢慢细读一下!


2004年10月20日13:03:47 星期三

大概是他半年前的面试记录,在vchelp上发表过。最后他还是接受了微软support的职
位,并且表示,6个月以来学到了非常多的东西。绝不后悔当初接受这个职位的决定。

通过朋友的推荐,我得到了一次和微软全球支持中心接触的机会,全球技术支持中心就
是GTEC(Globle Technical Engineering Center),地点在上海美罗大厦二十楼。
三天前,我接到一个微软工程师打过来的电话,要求我找一个座机他打过来,进行电话
面试。因为当时找不到座机,我也就告诉对方可以在手机上进行面试。先请我作一个两
分钟左右的自我介绍,我说了:姓名,学校,专业,爱好,技能情况,获奖情况。对方
没有对我的介绍做评价,直接进入提问阶段。第一个问题是进程和线程的差别。这算一
个热身问题吧,我对Windows NT基础掌握得不错,从线程,进程的定义,相互联系情况
,线程,进程之间的通信,同步方法作了详细的介绍,我觉得我回答得比较好,是一个
很好的开始。第二个问题是heap/stack的差别。嘿嘿,这个问题我在论坛上跟朋友讨论
过很多次了,我直接说出他们实质上的一致性和用法上的差别,然后具体到heap管理AP
I,并且结合C/C++中的new/malloc进行了讨论。对方听见到我说到malloc,立刻就要我回
答C/C++中heap的管理和系统API之间的关系。其实我要是不了解这两个的关系,我在前
面是不会他们结合起来讨论的。我直接切如CRT进行讨论,对方比较满意,然后问了一些
CRT的相关问题,比如CRT除了调用系统api,他自己要不要做一些工作等等。以上的问题
我自我感觉非常好,因为这些都是我平时关心的话题。接下来的问题是关于COM的,对于
COM,我是理论大大多于实践,我对COM的知识完全来源于Essential COM。我讨论了COM
的目的,C++的缺陷,COM为什么是better C++,COM的线程模型等等。我回答得有点乱,
因为对方没有问COM具体某方面的东西,我就尽我所能,按照章节把essential COM里面
的东西说了一遍,基本上抓住了要点。这是对方突然又会过去问内存方面的东西,问Wi
ndows 下的内存是如何管理的。我一时没反应过来,本来应该先说内核空间/用户空间
的区别,然后说进程空间,然后再深入。结果我直接就开始从分页机制开始说,我说每
个进程都有独立的32bits空间,寻址通过分页完成。分页其实不是Windows NT内核做的
,主要是IA32 chips做的。然后具体说了32bits地址如何映射成物理地址,GDT/LDT,导
致虚存转换的GP异常等等。我说完了对方沉默了几秒钟,我想大概是在考虑下一个问题
是什么。果然,下一个问题就是安全性。我平时不太注意安全性,只是在看inside win
2k的时候了解了一部分。我说用户登录的时候会带一个token,通过token来对这个用户
访问的object做限制,然后对方要我说windows privilige,我不清楚这个权限到底是什
么,问他是不是要我说ring 0/ring 3的东西,对方说不是,那我也猜不出这个是要我说
什么,我也就只有大概介绍进程独立阿,用户态不能访问内核态阿一些基本的东西,感
觉对方不太满意。到这里,面试基本上进行了2/3,接下来有两个问题,介绍.net和.ne
t的安全性。天,我上个星期才开始了解.net,而后来才知道对方是ms GTEC .net方面最
牛的。还好我看的是bible: essential .net,我就大概背了一些书上的内容,better
com ,具体的优越性是什么,是如何实现的。然后对方问我客户端如何访问.net组件实
现web service,我心里在想,调用远程的.net 组件就可以了阿,不知道他要问我什么
。于是只有说了说web service跟传统的application的差别。现在想起来对方可能是想
问我xml/soap,可惜当时没想到。最后一个问题就是.net的安全性。My God!security是
那本书里面的倒数第二,三章,我恰好看到倒数第四章。没办法,我只说了我了解的数字
签名保证组件完整性,关键的domin我就没有说,只有承认自己还不太了解。当然,中间
还插了一些小问题,比如是否了解Windows DNA阿,可惜我不太了解,只知道是个三层结
构.电话面试基本上就到
此为止,对方让我等下一步通知,掐掉电话,一共用了17mins,自己感觉还好,不过太
仓促,我是躲在实习公司的厕所里面打的电话,中间还被扫地的大妈赶出来了一次。更
寒的是,我还不知道如果我申请的到底是什么职位。
电话面试完后,我才开始整理一下自己的思路,打听微软大概给我提供什么样的职位。
结果发现自己的手机居然被打欠费9块钱。立刻下楼买了张卡。中午我了解到微软是不可
能提供正式员工的职位的,因为现在微软对正式员工的head count控制得非常紧,招进
去的都是有工作经验的。他们可以向我提供的职位是其他公司派驻微软的技术支持,在
微软工作,mentor是微软的工程师,只是签约不是跟微软签,而是跟第三方公司签,待
遇和福利也没有微软正式员工那么好。不过我还是非常满意,因为在电话面试里面我所
听到对方提出的问题,都是非常专业,一针见血的,而且在这几个问题中,的确能够非
常好的反映出我的实际技能情况,而且我也通过朋友了解到,在目前情况下,对一个应
届生,除了现在正在招聘的微软研究院,这基本上算一个最好的出路,能够学习到很多
东西。
两个小时后,我又接到微软的电话,约我星期一上午九点去美罗大厦20楼面试,还问了
我什么时候可以开始工作。我感觉对方对.net非常重视,于是在周末看完了
essential .net剩下的部分。
星期一来到美罗大厦,走到楼下一看,上电梯都要排队!不过还好,美罗城的电梯是能
装20个人的哪种,很快就上去了。因为我只知道我是来面试的,不知道是面试什么部门
,也说不出对方的名字,这让前台比较为难。帮我问了二十分钟后,终于领我到了一间
会议室,里面有一个工程师等着我。坐下来以后对方也没要我自我介绍,而是在看一份
东西。我仔细一看,大吃一惊,这东西是我半年前随手写的一个简历,里面什么具体的
东西也没有写,立刻拿出新准备的简历递过去。因为新简历比较有条理,对方看起来也
比较快,很快就知道了我的大致情况和技能情况。然后就我简历里面写道的熟悉C/C++编
译器实现细节开始提问,问题是虚表是如何完成的,其实这是一个小问题,但是VC里面
对于虚表实现的细节非常的多,我也都有了解,所以我还不知道从何所起。整理一下思
路后,我先说我是从inside the c++ object model入门的,然后谈了什么情况下有虚表
,保存在什么地方,成员函数调用的时候如果访问到虚表,虚函数重写是如何实现的。
然后对方问我纯虚函数和虚函数的差别,我直接回答对方除了在语义层面上虚基类不能
具现object外,再续表上没差别。然后对方要我说说多重继承下的内存布局,于是我就
分普通多重继承,虚多重继承讨论,说到这两种情况下如何修改虚表里面的内容,各个
编译器在实现上哪些是一致的,那些是不同的。说完C++,对方就开始要我讨论COM的线
程模型。这东西我当初了解得很清楚,不过很久没用,忘记不少,MTA这个名字我都忘记
了,只有用中文给他说.我说道为什么会存在线程模型,为什么要列集,散列,进程内的STA
通过hidden windows message queue实现安全性,本地通过LPC,远程通过PRC等等.把基本
上的说清楚了,具体缓解比如代理,存根接口,我只说了通过MIDL会自动生成标准的.c 文
件,更具体的由于我不太清楚,也就没有深入讨论了.然后对方又问道IA32下的分页机制,
我还是照着电话面试里面的内容说了一遍,说完以后就问我有没有用过VB,我说我高中用
过,大学里面用过VBA,在Excel里面调用COM,还用过ASP.然后还问了我对数据库是不是熟
悉,我说我刚刚开始学.然后问我对.net熟悉不,我大致介绍了一下我学习.net的情况.问
题就到此结束.整个过程中的谈话我们都是越来越放松,还不时说到一些平时自己如何学
习的话题等等,最后对方让我等一等,说让下一个人来面试我.走的时候对我笑一笑,我觉
得他对我是比较满意的.
等啊等,过了五分钟没人进来,我就在办公室到处逛.无聊了就坐下来,大约一共过了十二
分钟,终于来了一个瘦瘦的工程师,很热情,进来就主动跟我握手.做下来也没有要我自我
介绍,直接问我对数据结构了解的如何,我说我了解得不错,于是他就出题问我.题目是:给
两个变量,如何找出一个带环单链表中是什么地方出现环的.我看过expert C programmi
ng,里面最后有一个短文是介绍微软面试的,第一个题目就是如何判断链表出现了环,里面
讨论了四种情况和各自的特点.虽然问题跟这里不同,但是既然我看到了,我就要突出自己
一下,于是个他说了如何判定是否有环.他非常满意,但是申明他的问题是要找出环出现的
节点,因为受到判定环算法的定向思维,我在一分钟内没有找出一个很好的答案,于是就问
了一些"是否一定有环"这样的问题来拖了一下时间.后来我想到对方主要是考验我的思维
能力而不是一定要解答出这个问题,我就说了一种不一定行得通的方案,做法就是先找到
环内部的一个节点,遍历环一周,把访问到的节点地址相加,然后在第二周,把访问到的节
点相减.因为出现环的节点会被多计算一次,所以最后得到的值就是出现环的地方.其实当
时我就知道这个方法基本上行不通,但是对方还是对我这种做法感到非常满意,虚惊一场
.第二个问题还是IA32,问我在IA32中一共有多少种办法从用户态跳到内核态.这方面的东
西主要是IA32 vol3里面介绍的,我只记得Windows 跳入内核态的方法.于是我就开始说,
说到一半,我突然想起以前讨论CIH病毒实现方法,就是通过任务门跳进去,想到这个,接下
来的中断门,陷阱门也就想到了.好像对方对IA32比较有兴趣,问道我是如何用汇编做的W
indows平台下的mp3播放器,于是我就说资料来源主要是网上的,同时用汇编编写win32程
序其实跟用c语言调用sdk没什么差别,然后还老实承认mp3解码部分不是自己做得等等.接
下来的,还是COM.第一个问题还是COM的线程模型,然后讨论进程内/外组件的差别.我的回
答跟一面的回答差不多,回答完以后,对方问我知不知道IUnknown接口!哇,他这不是放我
发挥嘛.于是我针对这个接口的三个函数作了讨论,重点是 queryinterface,讨论了esse
ntial COM里面强调了三个特性,对方终于满意了.接下来的话题就很轻松了,问我看过哪
些原版书,我问他那方面,他说不管什么方面,说出名字就可以.嘿嘿,偶的强项啊!从C++开
始说,五本宝典说完了就说windows SDK方面的aw/inside win2k,然后说调试方面的wind
ows debugging,然后说TCP/IP方面的两本bible,我还准备说msj里面的under the hood和
看过的ms无错编程这些更专业一点的东西,但是对方笑着把我打断,看来后面的不用说了
.最后问我对.net知道多少,.net啊.net,我最不熟悉的东西.他让我介绍process/thread
/domin/thread pool的差别,还好,我仔细看了domin,前面两个我本来就知道,thread po
ol我知道是什么东西,于是说就说了我自己知道的部分.说完了看得出来我也了解我.net
的水平很有限,然后问我如果一个class里面只有一个private成员,客户怎么访问,我想了
想,实在不知道,一点都不知道,就只有说不知道了,他笑着给我介绍了一下,然后再问了一
个.net的名词解释,我还是不知道,他说没关系.总的来说挺不错,他让我等着,然后出去了
.
这次等得更久,估计有四十分钟吧.我前面说得好累,好想喝水,不过找不到,也就只有算了
.第三个面试官是个女士,估计是他们的专业hr.没有问我技术问题,一来要我自我介绍,我
估计他不是搞技术的,于是就大致介绍了一下我的情况.然后他给我说,前面几个工程师对
我的印象是,底层掌握得还不错,但是对上层的知识比较欠缺,但是他们主要做的就是上层
的支持,所以在考虑我是不是适合这个职位.其实这也是我考虑的问题,因为就我个人来说
,我欠缺的是.net方面的东西,但是我对.net是非常有兴趣,所以我有信心做好.于是我就
给他说了我的想法,说到我为什么要先深入学习底层的东西,自学能力如何,兴趣如何.但
是对方还是担心如果让我做支持,接触到的不是一些sdk开发,我会不会反感,会不会觉得
自己大材小用之类的.天啊,在ms里面我敢说我大材小用???!!!!这不是在张三丰面前耍太
极嘛!于是赶忙说出自己的看法.对方接着问如果客户老是问一些简单问题,我会不会厌倦
.其实我在论坛上有时也挺反感一些重复的简单的问题,但我不能直接这样给hr说啊.我说
当年我就是问这些菜鸟问题的菜鸟,所以我不会觉得这些问题是没有意义的.但是对方强
调说就算暂时不这样,那你会不会觉得自己的能力没有得到发挥.我接着说,就算一个简单
问题,不同的人有不同的回答方法.如果技术好的人,他的回答会有前瞻性,能够从用户的
问题和问问题的上下文了解到用户实际上的需求,除了解答当前问题,还能够给出建设性
的意见等等.说完这些,对方基本上满意,没有继续问了.然后问我有什么问题,我说我想详
细了解这个招聘的流程和我实际的职位.于是她告诉我今天面试完了一个星期后会有通知
,看我是否适合这个职位,同时也要看有没有空余职位.然后再给我强调了这个职位不是正
式员工等等.看来他是非常了解刚毕业大学生的心态.总的来说,这一轮面试不好不坏,我
们双方的印象都一般,但良药苦口,我们双方还是得到了更多的了解.她最后让我等着,说
还有面试.天啊,还有???
这次没有等太久.过了五分钟,来了一个pp的年青女士,非常有魅力.一进来就跟我握手,然
后说"nice to meet u!".坐下来后,她用英语说这个技术支持的职位可能会是国外的客户
,在电话或者email方面都会是英文的,所以要考我的英文能力.我开始还准备问她是不是
要我用英语回答,但是自己想想,摆明了是要你用英语回答,你问她她肯定拿你当方脑壳看
,于是立刻调整语言习惯.一来就是用英文自我介绍.还好自己心里面有个中文提纲,于是
就发挥发挥,用英语开始说.基本上还可以,我说的她都能够挺懂,我自己也觉得突出了要
点.接着她要我描述一件自己克服过的难题,于是我就举了一个例子.然后她就简单介绍我
会面临的工作,口头英语和笔头英语.问我英语哪方面最欠缺,我说口语,因为书面英语在
看资料的时候我就得到训练了,但是口头英语平时是没有机会训练的.她点头表示满意.然
后问我给自己书面英语打分会是多少分,满分十分,我开始没听懂,没办法,就只有说coul
d u give me a n example?然后她说比如她觉得他口语一般,她会给自己6分.明白意思后
,我说我给自己书面英语8分.开始想谦虚一点的,但想想,说不定她会觉得你会夸大自己,
最后她会在你的自我评价上再减个几分,反正平时看资料基本上都是英语,心一横,说了个
8分,她听了觉得不错,说我对自己很有信心.sigh,想想自己cet6 62分过的,悬阿!然后开
始问道对客户的态度,什么算是good service,什么算是bad service,如果有的用户一直
blablabla说个不停我会怎么办.如果用户说的我基本上听不懂我该怎么办等等.整个过程
中我说得比较流利,中间只有她的一次问话我没有听懂,用一些中性词代替过去.问题本身
比较有难度,英语到不是很难,所以只要自己能想到答案,说清楚还是可以的.同时她会非
常真诚的跟你交流,有的时候会帮你补充一些你没有想到的词语等等,我觉得这次英语面
试还是听成功的.最后,她说让我等等.算了,麻木了,懒得管后面还有多少轮了...
哪里知道只过了两分钟,第三轮面试我的hr又来了,直接给我说今天的面试结束.我跟她一
起出来,开始还以为她要帮我按电梯,那里知道她直接去另外一个办公室.其实ms对我也够
好了,面试一共花了两个小时,看得出来还是很重视的。我也尽量发挥了自己的优点,
我相信我的能力他们还是觉得不错的,就看他们觉得我是否适合做这个support的工作了
。电梯下到一半,我才觉得好累,不过整个过程还是很好,至于结果其实已经不重要的
。除了电梯,打开手机,立刻就收到一个短消息,是我朋友发过来的,内容是ms的对我
比较满意,获得这个工作有比加大的可能性。


(注:看了上文:如果是我来答,1,估计我回答的很乱,因为说起来自己看了操作系统也不下十遍了,但是因为平时自己时间很少花在理论上,没有时间真正的来探讨os中的一些细节问题,也许我会花时间去看看os实现这本书,也是我一直想做的,包括编译原理与实践,一直没有充裕的时间来把这些基础知识加以总结,始终不能很有信心的回答这些问题。2,我觉得我会回答得很好,因为平时也比较的关心这个问题。3,COM目前自己在看关于com的知识,而且比较的顺利,所以肯定可以回答许多的问题。4,安全性,我肯定也可以答好,因为自己比较关注这些问题,也学过关于信息安全的一些知识。5,.net用得比较的多,所以不怕问,但是关于.net的安全性,不是很了解,倒是java的安全性我比较的清楚里面的机制,因为,根据我的学习路径,安全始终被放在了最后。5,英语口语和听力也是非常重要的,这方面自己也比较的欠缺。综合上面分析,我估计我即使在微软,目前可能也只能做个support了,还要修炼啊,发奋了~~~)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值