ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:25.35KB ,
资源ID:16655969      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16655969.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微软面试 经历Word格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微软面试 经历Word格式.docx

1、WMI中有一个CIM做为类似于数据库的东西,然后有Provider向CIM中提供数据,然后WMI查询器去CIM中查询数据。第一次慢的原因是因为LazyLoad,第一次调用的时候Provider先去进行数据的准备,把找到的数据放到CIM中,然后再查询,这样以后再执行WMI查询的话就快了。这只是我的猜测,我没做过验证”,我认为这样回答是比较好的,首先我将我了解的WMI的架构说了出来,然后说了我对于“第一次慢”的理解,但是这个理解是我推测出来的,没有得到验证,因此我强调“只是我的猜测,我没做过验证”,那么及时我的推测是错的,面试官也不会因此而降低给我的打分,反而会因为我善于进行分析、推测而给我加分。

2、接着面试官把他的笔记本电脑放到面前说“我给你出一个很简单的题,你把它用程序实现出来”,他的题是“有一个字符串是用空格分隔的一系列整数,写一个程序把其中的整数做如下重新排列打印出来:奇数显示在左侧、偶数显示在右侧。比如2 7 8 3 22 9显示成7 3 9 2 8 22。要求在30分钟只能运行起来”。说实话拿到这种题,我也懵了。虽然我经常和咱们如鹏网的同学们说“要学好数据结构、算法这些基础知识”,但是工作很多年了,编的很多软件使用的都是语言、第三方提供好的函数库、类库,突然让自己写这种算法的题目也一时无法适应过来。不过很快我心态就调整过来了,就像我在软件方向应届生求职面试指导那个视频教程中提到

3、的“面试官让当场写程序的时候不是只有写出来与写不出来两种结果,而是面试官是想看你怎么思考、解决问题的”,而且我也提到过“面试时写代码一定要把边界条件、异常情况考虑到,并且和面试官解释在做什么、为什么这么写”。我定了定神,想“具体算法怎么实现不管,但是要先检查特殊情况,也就是给出的字符串是否是用空格分隔的一系列整数”,因此我先编写了如下的校验代码:String input=” 7 3 9 2 8 22”;String items = input.Splits( );foreach(String item in items)int i;if(!int.TryParseInt(item,out i)

4、throw new Exception(item+“不是合法的数字,给出的字符串格式错误”);很显然,这段校验代码的时间复杂度为O(N),那么整体的复杂度不可能比O(N)更低了,因此下面要写的代码的复杂度只要不高于O(N)就可以了。然后想了几种可能的解答思路,包括根据字符串的特点直接进行操作、排序等,但是都没想到非常好的方法。因为有一段时间没写C#程序了,程序调试了几次才编译通过,而且也不太习惯面试官的笔记本电脑的使用,把上面的代码调试通过并且进行刚才的下一步的筹划已经过去10分钟了,我打算在20分钟之内把这道题做完,这样就能有更多时间和面试官交流自己擅长的领域。既然没想到更好的方法,那只能写

5、“老土”的代码了,毕竟能够运行起来是第一位的。我写了下面的代码:List listEven = new List();/奇数队列 listOdd = new List/偶数队列int i= int.ParseInt(item);if(i%2)=0)listOdd.Add(i);elselistEven.Add(i); listResult= listEven.Join(listOdd);/将偶数队列拼到奇数队列之后原理很简单,就是建一个奇数队列、一个偶数队列,从前向后扫描各个整数,依次判断整数,如果是奇数则将将整数放入奇数队列,否则放到偶数队列。最后将偶数队列拼到奇数队列之后形成最终的“奇数在

6、做,偶数在右”的队列。接着我发现在校验合法性和判断奇偶的地方我遍历了两次items数组,因此我又把这两部分代码合并,这样就只用遍历一次,虽然没有降低复杂度,但是还是降低了执行的步数:写完这个程序调试通过。又想到这个职位要求有一定的测试能力,因此又写了一个单元测试用例。一看表用了15分钟。因此把这个程序给面试官看,给面试官解释了我的思路。面试官说“不错,能在面试的压力下写出可以运行的程序已经很不错了,而且还对异常条件进行了校验,编写了单元测试用例,也用了List、Linq等C#中的高级技术。这道题确实只能将时间复杂度最多优化到O(N),但是你这里用了两个额外的队列进行存储,空间复杂度为O(N),

7、我最期望的解答结果是你能用交换排序等排序的思路进行解决,这样最多占用一个中间变量就可以实现这个程序,无需消耗额外的内存空间。”因此在这里提醒如鹏网各位同学,很多像我这样的人写程序的时候总是想着降低时间复杂度,却忘了空间复杂度也是要去尽力降低的。不过据后来面试官说,他当时对于我在那么大的压力下能写出可以运行程序比较满意,因为这题主要就是想考察我在将近一年没有写C#程序的情况下会不会“手很生”。接着,面试官又出了一个题“编写一个区间类,并且编写一个进行区间加运算的算法”,由于距本轮面试结束仅有15分钟了,因此面试官说“大体体现你的思路就可以”,因此我首先编写了一个区间类Region,并且为它添加了

8、MinValue、MaxValue两个属性和一个构造函数。接着我想进行加号的运算符重载,这样使用Region类的人用r3=r1+r2的方法使用了,但是我忘记C#中运算符重载的语法了,因此我就和面试官“我想写一个运算符重载方法,但是忘了C#中运算符重载的语法”,面试官说“没关系,不用关心具体语法,把想法表达出来就可以”,因此我写了一个Add方法:public Region Add(Region anotherRegion)/然后就和面试官交流这个方法实现的细节,包括怎么表示开闭区间、怎么考虑边界条件等问题,而且在面试官说道“区间中的值可能有整数、浮点数、枚举等很多类型”的时候,我抢在他之前说出了

9、“可以用范型来解决,这样实现了IComparable接口的类都可以使用这个Region类”,这向面试官表示我知道范型、IComparable接口等知识。 面试最后面试官说“刚才问你的问题中你没有完全回答出来也没关系,我们只是想从各方面了解你”。第二轮面试这轮面试主要侧重对于具体技术点的考察。问了很多技术问题,由于这些技术问题可能大部分咱们如鹏网的同学都没接触过,因此我这里只讲具体的对应届生求职有用的信息。下面列的问题我的回答并不是正确答案,只是对当时面试时我回答的一个真实记录而已。问题1: 看你用过Powershell,能说说Powershell的运行过程吗?我的回答:Powershell其实

10、也是编译执行的(这句话一出来,面试官的眼睛就亮了,问了一句“是吗?”),然后我就将我分析的为什么Powershell也是编译执行的分析过程讲给他。从这个问题开始我把面试官引导到自己擅长的各个技术的原理、运行机制的层面上。问题2:说一下net framework程序的工作过程。我把CLR、mscoree、mscoree的main、JIT编译等讲了一通,唾沫横飞,基本把面试官“喷晕了”。问题3:在以太网中怎么优化网络通讯的效率?改用UDP协议,然后在需要可靠通讯的地方用UDP协议自行实现Ack。面试官说:因为TCP协议是需要三次握手的,但是在HPC通讯中这个三次握手是没必要的,因此微软实现了一个W

11、inSockDirect的技术解决这个问题。问题4:看你的项目中用到了SNMP协议,说一下用到了哪些地方?我就把使用SNMP进行数据汇报,服务器控制agent端等讲了一下,并且讲了MIBOID等我知道的SNMP相关的东西。问题5:在团队中有几个人。以前在金蝶中,整个EAS Team是100人左右,但是一个项目组是7、8人,在赞同的Team中也是这个规模。问题6:WCF在之前的项目中的作用是什么?我就将之前的项目的架构讲了一下,并且说了WCF是怎么在项目中做服务器、客户端的通讯、回调的讲了一下。问题7:Silverlight和WPF的区别是什么?我首先从微软对Silverlight和WPF的战略

12、定位的角度来分析了Silverlight和WPF的关系,然后又从xaml的共同、xaml的执行机制的不同、执行引擎的不同、Silverlight的受限等方面进行了阐述。基本把自己知道的Silverlight和WPF相关的东西都说出来了。问题8:项目中哪些地方用到了WF?项目中只是把WF当成了流程执行引擎,并没有用其中的长流程的部分。(我的言外之意是我对WF的长流程不了解,面试官你就别继续问了)问题9:说说工作原理。我首先说了http的工作原理,然后说了viewstate、aspx、postback等的内部机制。问题10:Powershell中怎么调用一个别人写好的Assembly呢?我回答可以

13、自定义cmdlet,也可以在Powershell中通过LoadAssembly加载Assembly,然后调用Assembly中的类、方法。我知道面试官希望我回答第二种方式,但是我借这个机会表示自己知道Powershell自定义cmdlet的东西,也相当于给自己加分。“回答要出乎面试官的意料”问题11:用到过AJAX吗?我回答在如鹏网的“输入标题自动显示相关帖”这个功能用到过AJAX。问题12:C+掌握的怎么样?纯C还能写一些程度,C+长时间没用了,需要熟悉一下才能拾起来。(我的意思还是“不太熟,别继续问了,问其他我更熟悉的吧!”)问题13:看你的简历说对Windows SDK比较熟?熟到什么程

14、度?我回答:可以用纯SDK写程序。SDK可不是.net呀。当然了,我说的SDK就是指的CreateWindow、SetWindowLong那些Win32 API。面试官问:哪些场合用到了SDK?.net并没有封装所有的Win32的功能,还是有一些功能点是需要使用Win32的,我举了“WPF中Host外部程序”的需求中是怎么使用FindWindow、SetParent等Win32 API的。问题14:这个职位有可能有时需要到客户现场为客户搭建环境、排除故障等,你能胜任吗?我就回答了在以前公司做项目、准备演示的时候一直是负责安装硬件、安装OS、安装软件、调试网络等一条龙的,还说了有一次在客户现场调

15、试多台服务器、解决网络故障的故事。“用真实的案例来说明问题比简单的堆砌形容词更有说服力”问题15:对网络管理有了解吗?比如三层交换机、两层交换机之类的?我首先说自己和以前公司负责IT运维的同事(其实指的就是咱们如鹏网的朱阳光老师)非常熟悉,经常听他讲到怎么用交换机划分VLan,也听到过三层交换机是怎么回事,不同的数据包在交换机中是怎么流转的,不过我强调这些只是平时了解和自己涉猎的,并没有很系统化的知识。这句话的意思还是:我不是一点儿都不知道,但是也不是很精通,所以就别继续问这方面的问题了。问题16:用过SharePoint吗?我回答说对SharePoint没有系统性的接触过。不过在参加Tech

16、ed的时候对SharePoint印象非常深,回去也系统了解了一下Sharepoint,知道SharePoint能做门户、文档管理、知识库、讨论组等功能,而且也建议过以前公司的IT部门用SharePoint来代替Lotus Notes。问题17:用过AD吗?说自己用到AD的地方并不多,但是知道AD可以实现单点登录,谈了域和工作组的区别。然后很快的把面试官引导到我熟悉的领域,我说我写过程序连接到AD上进行用户名、密码的验证,就是把AD当成普通的LDAP服务器在用。这番话顺利的把面试官引导到我熟悉的LDAP上,他就问我“LDAP是什么东西?”,我就谈了LDAP、关系数据库、树状结构数据、LDAP和A

17、D的关系等我熟悉的东西。问题18:如果给你自己的开发能力打分,你打几分?8分。面试官问“那2分差在哪儿”,我就说虽然自己在大学期间系统自学过计算机专业的课程(趁机把这个提出来,就是一个给自己增加砝码的过程),但是毕竟不是科班毕业的,在复杂的算法方面还是有欠缺的,因此这2分差在这里。这一关面试问的技术点非常多,本着“懂就懂,不懂就说不懂”的原则,然后在自己不懂的领域也尽可能的说自己了解的一些东西,并且适当的引导面试官到自己熟悉的领域。第三轮面试第三轮面试主要侧重于测试、程序故障排查、程序调优等方面。面试官一上来就说“我看过你的博客了,写了好多文章啊”。在这里我建议咱们如鹏网的同学们可以经常写博客

18、,无论是平时学习的感想还是一些技术文章,都可以发表到自己的博客上,以后求职的时候你的博客就是说明你学习历程的证明。但是一定要注意不要把一些影响自己形象的言论放到博客上,否则很可能给别人造成不好的印象。 接着面试官问“你都知道哪些测试呢?”,我就把自己知道的白盒测试、黑客测试、单元测试、BVT、压力测试(LoadRunner)、界面自动化测试等做了一下介绍,也说了在以前两家公司的测试流程:开发人员提交代码、日构建、BVT测试、测试人员测试提交bug、开发人员修正bug、标记bug已处理、测试人员重新测试。面试官又出了一道题“有一个只能计算两个数加法的计算器,你会怎么测试它”,我就写下了测试两个普

19、通整数的加法、其中一个数含有非数字字符、包含负数、数值超过整数表示范围、重复计算10W次看计算性能及是否崩溃等。面试官又问是否用过windbg进行过调试,我就说和一位懂windbg的同事一起使用windbg解决过一个VisualStudio崩溃的bug,并且详细讲了解决的过程,但是自己没经常性的用过windbg。面试官又说“看你简历还写过SQL方面的书,你对SQL掌握的怎么样?”,我回答:一般的SQL问题都能解决。面试官就给我出了一道题:有如下的一张表t:Nobookcnt1a1002150b50180No是人的编号(人的编号不止有1、2两个),book为书的名字(一共就a、b两本书),cnt

20、表示这个人手中拥有这本书的数量。要求写一个SQL对这个SQL语句进行转置,输入如下的表格刚拿到这道题的时候脑子又一片空白,因为最怕这种有点BT的SQL题,甚至有点想放弃。不过面试官加了一句“这道题很简单”,估计是面试官在给我定心丸,让我不要紧张。因此我对自己说“不要否定自己,我一定可以”,因此我稳定了一下情绪,然后尽力回忆写程序员的SQL金典这本书中的时候参考的那些书中和这个题类似的问题,思路打开,很快写出了下面的SQL语句:select No,SUM(a) a SUM(b) b(select No,a,0 from t where book=aunion allselect No,0,b f

21、rom t where book=b) group by No对这段SQL不理解的同学可以参考程序员的SQL金典的关于Union、子查询等章节的内容。面试官又问了碰到数据库运行非常慢的时候怎么解决。我就回答先使用数据库提供的性能查看工具,找出最耗时的SQL,然后逐个进行优化,直到没有明显异常情况的SQL。具体的优化手法包括:使用动态参数而非动态拼字符串的方式进行动态查询;为经常进行查询的字段简历索引、联合索引等;调整WHERE子句中的连接顺序;避免隐式的全表扫描。面试官又问“怎么测试记事本的saveas功能”,我说了“文件已经存在、文件不存在、用户指定了文件后缀、用户取消了保存动作、大文件的保

22、存、覆盖只读文件、文件名过长”等情况,面试官问“还有其他的吗?”,我想了一下没想到其他的,就果断的说“想到不其他的了”(如果思考几秒钟没有想到其他了,就果断的说想到不了,千万不能延迟太长时间),然后面试官有补充了“文件名中包含非法字符”等情况。最后面试官问了“如果一个程序一运行就自动退出,你认为可能的原因是什么,怎么排除故障”。我就说可能是GDI、内存等资源不足造成的,也可能是程序中指针处理错误(但是这种情况会显示内存错误对话框),如果不是这些原因,那么我会查看程序的运行日志、EventLog等,如果还找不到原因的话就会使用Windbg等工具进行深入的调试,然后又复述了一下和同事一起用Windbg排除VisualStudio自动退出bug的过程。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1