微软不同分工不同侧重的面试——开发工程师的面试(摘自《微软360度》) - microsoft360的专栏 - CSDNBlog
2008-02-12 11:30
453 查看
开发人员的工作,主要就是围绕着软件开发的各个阶段,设计,编程,测试,调试等。理所当然,开发人员的面试,就是针对考核这几方面的能力。
(1)编程。有句话说微软的面试不写程序就不是微软面试了。没错,对于开发人员的面试这是真的。编程就是考你的基本功。
如果你的手已经生硬,多年没有写过一行代码,开发人员的面试一定搞砸。“能写程序”(can code)是从大学毕业生一直到架构师,开发部主管都要过硬技术。平时多写程序是唯一的准备应付策略。取巧的人一般会被问得很尴尬。
但这里不是考你的死记硬背的功夫,例如告诉我一个Win32 API的具体调用方式,或者是如何使用ATL或MFC里的一个类。更有可能的编程问题则会是涉及字符串操作,链表操作,二分查找,位操作等等这些不需要特定领域知识的东西。至于编程语言,一般人常用的是C/C++,不过你愿意用什么都行,JAVA,C#,伪代码(pseduo-code)都可以。
这里我想特别的说,要注意白板编程(white board coding)的练习。所谓白板编程,就是直接在纸上或者是黑板/白板上写出程序。看似简单,实际上是很能磨炼能力的。有时候你觉得自己心里面想清楚了,实际上往纸上一写发现完全不是那么一回事。
(2)设计。这也是开发人员面试中必考的分析问题和解决问题的能力。事实上没有什么可以特别准备的。“数据结构/算法”在大学念好了,平时用得多了,这就不是一个问题了。
同编程一样,着重的也是面试者活学活用的能力。在互联网上可找到许多微软面试编程/设计的问题,很多这些问题都没有单一答案。提问者希望面试者通过思考找到最佳算法,而不是只会死记硬背。例如,会延伸问题来验证面试者的优化能力,就像我前面举出的素数的那个考题中展示的样子。
特别的,微软的算法问题一般十分重视优化:运行最快,用最少内存等等。最好的准备是在日常工作中多问自己几次:“这可以更快更好吗?”日子久了,优化就变成自然的本能。微软的很多开发人员都有这种本能。这也是开发队伍引以为豪,一直相传的素质。当然了,如果你问我既然这样,为什么Windows Vista在我的256M内存的机器上还跑得这么慢的话,本人拒绝回答。(玩笑,玩笑,嘿嘿)
(3)测试。开发人员也要管测试?没错,正如测试人员需要懂编程一样,开发人员也要具备基本的测试程序的能力。
开发人员是自身程序的第一个测试者:单元测试(unit testing),就是开发人员来做的。可不是写好了程序,往测试组一丢就行了。想一下,如果测试组在你的不足50行的函数里一口气发现七八个问题的话,他们的工作量倒是上去了,你的面子可就不那么好看了,不是吗?
所以往往开发人员的面试中会有这种情况,让你写出一段程序,然后看你会不会做最基本的测试。当然了,测试不会是开发人员面试的重点,但也必须是准备的一个方面。
(4)调试。从已有程序中判断问题所在,调出错误代码的功夫,是每个有志于开发工作的诸位,必不可少的能力。设想一下,如果测试组发现了问题,也许压根不是你的代码的事,对不起,身为开发人员一份子,你的责任就是要找出症结所在。
所以往往我会在面试者写出一段程序后,看他或她能否发现自己刚写的那段代码中,有没有什么错误或考虑不周的地方。也许,我会直接给出一段有错误的代码,让面试者看看。如果一时没有发现,我会稍许提示。不过我要是心里嘀咕,老兄,这么明显的内存溢出,怎么就看不到呢?那么最终的评价,肯定要有所折扣了。:)
最好的准备,就是平时的实践。写好一段程序,先别急着测试或运行,闭上眼睛想一想,心里走一遍逻辑,看有没有一眼可以发现的错误。
(5)其他。这里主要指其他的软能力,例如交流,团队合作,工作热情等等。这里就不具体说了。
稍许小结一下,就像前面面试故事中提到的,不仅仅要知其然,而且要知其所以然。死记硬背不行,真正掌握,会活学活用才是关键。
本文转自
http://blog.csdn.net/microsoft360/archive/2008/01/03/2021346.aspx
(1)编程。有句话说微软的面试不写程序就不是微软面试了。没错,对于开发人员的面试这是真的。编程就是考你的基本功。
如果你的手已经生硬,多年没有写过一行代码,开发人员的面试一定搞砸。“能写程序”(can code)是从大学毕业生一直到架构师,开发部主管都要过硬技术。平时多写程序是唯一的准备应付策略。取巧的人一般会被问得很尴尬。
但这里不是考你的死记硬背的功夫,例如告诉我一个Win32 API的具体调用方式,或者是如何使用ATL或MFC里的一个类。更有可能的编程问题则会是涉及字符串操作,链表操作,二分查找,位操作等等这些不需要特定领域知识的东西。至于编程语言,一般人常用的是C/C++,不过你愿意用什么都行,JAVA,C#,伪代码(pseduo-code)都可以。
这里我想特别的说,要注意白板编程(white board coding)的练习。所谓白板编程,就是直接在纸上或者是黑板/白板上写出程序。看似简单,实际上是很能磨炼能力的。有时候你觉得自己心里面想清楚了,实际上往纸上一写发现完全不是那么一回事。
(2)设计。这也是开发人员面试中必考的分析问题和解决问题的能力。事实上没有什么可以特别准备的。“数据结构/算法”在大学念好了,平时用得多了,这就不是一个问题了。
同编程一样,着重的也是面试者活学活用的能力。在互联网上可找到许多微软面试编程/设计的问题,很多这些问题都没有单一答案。提问者希望面试者通过思考找到最佳算法,而不是只会死记硬背。例如,会延伸问题来验证面试者的优化能力,就像我前面举出的素数的那个考题中展示的样子。
特别的,微软的算法问题一般十分重视优化:运行最快,用最少内存等等。最好的准备是在日常工作中多问自己几次:“这可以更快更好吗?”日子久了,优化就变成自然的本能。微软的很多开发人员都有这种本能。这也是开发队伍引以为豪,一直相传的素质。当然了,如果你问我既然这样,为什么Windows Vista在我的256M内存的机器上还跑得这么慢的话,本人拒绝回答。(玩笑,玩笑,嘿嘿)
(3)测试。开发人员也要管测试?没错,正如测试人员需要懂编程一样,开发人员也要具备基本的测试程序的能力。
开发人员是自身程序的第一个测试者:单元测试(unit testing),就是开发人员来做的。可不是写好了程序,往测试组一丢就行了。想一下,如果测试组在你的不足50行的函数里一口气发现七八个问题的话,他们的工作量倒是上去了,你的面子可就不那么好看了,不是吗?
所以往往开发人员的面试中会有这种情况,让你写出一段程序,然后看你会不会做最基本的测试。当然了,测试不会是开发人员面试的重点,但也必须是准备的一个方面。
(4)调试。从已有程序中判断问题所在,调出错误代码的功夫,是每个有志于开发工作的诸位,必不可少的能力。设想一下,如果测试组发现了问题,也许压根不是你的代码的事,对不起,身为开发人员一份子,你的责任就是要找出症结所在。
所以往往我会在面试者写出一段程序后,看他或她能否发现自己刚写的那段代码中,有没有什么错误或考虑不周的地方。也许,我会直接给出一段有错误的代码,让面试者看看。如果一时没有发现,我会稍许提示。不过我要是心里嘀咕,老兄,这么明显的内存溢出,怎么就看不到呢?那么最终的评价,肯定要有所折扣了。:)
最好的准备,就是平时的实践。写好一段程序,先别急着测试或运行,闭上眼睛想一想,心里走一遍逻辑,看有没有一眼可以发现的错误。
(5)其他。这里主要指其他的软能力,例如交流,团队合作,工作热情等等。这里就不具体说了。
稍许小结一下,就像前面面试故事中提到的,不仅仅要知其然,而且要知其所以然。死记硬背不行,真正掌握,会活学活用才是关键。
本文转自
http://blog.csdn.net/microsoft360/archive/2008/01/03/2021346.aspx
相关文章推荐
- 微软不同分工不同侧重的面试——开发工程师的面试(摘自《微软360度》)
- 微软不同分工不同侧重的面试——开发工程师的面试(摘自《微软360度》)
- 一道微软面试的智力测验题——王志峰(摘自《微软360度》) - microsoft360的专栏 - CSDNBlog
- 微软不同分工不同侧重的面试——测试人员的面试(摘自《微软360度》)
- 微软不同分工不同侧重的面试——项目经理的面试(摘自《微软60度》)
- 字节对齐面试题 及面试专栏http://blog.csdn.net/hackbuteer1
- 宏与内联函数(面试常考)--转自fisher_jiang的专栏-http://blog.csdn.net/fisher_jiang
- 2015.11--360校招面试-后台C++开发工程师
- 如何开发wince usb 摄像头的驱动 - wincemobile的专栏 - CSDNBlog
- 微软经典面试测试题和参考答案(变态) - TOMB RAIDER - CSDNBlog(转载)
- 一道微软面试的智力测验题——王志峰(摘自《微软360度》)
- 理解和正确使用Java中的断言(assert) - Leichelle的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/leichelle/article/deta
- 应聘.net开发工程师常见的面试题(二)(转载)
- 《大数据工程师(开发)面试系列(1)》
- 六道面试硅谷工程师的变态题目:Adobe、微软、亚马逊、谷歌 试试看吧! - IT公司面试手册
- 20140723曙光-测试开发工程师-实习面试
- 转载:WEB开发工程师面试心得
- sscanf函数的高级用法 - khler的专栏 - CSDNBlog
- Java软件开发工程师实习生面试经验分享总结
- ASP.NET极速DataReader分页程序 - Gerry的专栏 - CSDNBlog