我在卡内基梅隆大学毕业找工作的时候,经常和其他同学一起交流面试的经验。当时“闻面色变”的公司有微软,研究所有DEC的SRC。每次有同学去微软或SRC 面试回来都被其他人追问有没有什么有趣的面试题。我也是那时第一次听说下水道井盖为什么是圆的。
我 自己申请微软美国研究院时被面试了两天,见了15个人,感觉压力很大。 至今还记得被一位面试官不断追问我论文中一个算法的收敛性的热烈讨论。在微软工作的十几年中,我自己也面试了非常多的新员工。特别在微软亚洲研究院的九 年,经常感觉很多刚刚毕业的优秀学生基础很好,但面试的准备不足。我非常欣慰地看到邹欣工程师和微软亚洲研究院其他同事们努力编写了这本好书,和大家一起 分享微软的面试心得和编程技巧。相信更多的同学会因此成为“笔霸”,“面霸”,甚至“offer霸”。
程 序很美妙,虽然很难写。程序要想写的好,需要学好一定的基础知识,包括编程语言,数据结构和算法。程序写的好的人通常都有慎密的逻辑思维能力和良好的数理 基础。还需要熟悉编程环境和编程工具。古人说“见文如见人”。我觉得程序同样也能反映出一个人的功力和风格。好的程序读来非常赏心悦目。我以前常问的一道 面试题是“写一段自己觉得写过的最好的程序”。
编 程很艰苦,但是很有趣。本书的作者们从游戏中遇到的编程问题谈起,介绍了数字和字符串中的很多技巧,探索了数据结构的窍门,还发掘了数学游戏的乐趣。我希 望读者在阅读本书是能找到编程的快乐,欣赏到编程之美。本书适合计算机学院、软件学院、信息学院高年级本科生、研究生作为软件开发的参考教材。也是程序员 继续进修的优秀阅读材料。更是每位申请微软公司和其他公司软件工程师面试的必读秘笈。
人类的生活因为优秀的程序员和美妙的程序而变得更加美好。
沈向洋
微软公司杰出工程师
微软公司全球资深副总裁
2008年春节于香港