第9部分(第2/4 页)
的一个电话面试,主要询问了一些关于项目、程序设计语言方面的知识。不久,他说我还得亲自去面试,同时把去微软公司总部Seattle的来回机票寄给我了。
说实话,当时我试图用Word 软件写毕业论文,功能很多,但是并好用,我后来是在一个很旧的Macintosh机器上用Mac的软件写完了论文。在这之前,我已经得到了几家软件公司的Offer。并且因为以前有过在一个大型公司工作不愉快的经历,我对大公司的兴趣倒不大。但是又一想,免费的机票、还有Microsoft 的名声,于是我抱着去看看的心理就上路了。
那天清早,我从底特律经匹兹堡飞到了西雅图,由于时差的关系,到达时还是早上。Richard 接了我,从机场到微软的路上,他和我聊了我在国内做过的项目。听说我们在目标码上汉化了SCO Unix(由于没有源代码,我们反汇编Unix的代码,然后在上面修改,让汉字能显示出来,比较Hacky)。他吃了一惊,拍拍我的肩膀说,那你做这个工作是没问题的了。
我进了微软17楼的门厅,觉得气派不小,一个叫Gary的人把我领到他的办公室,屋里堆满了各种各样的玩具,一个大盒子上好像还有日语写的“棋盘”二字。寒暄之后,他就直奔主题。
他问道:“在一个含有DBCS的字符串中,如何从当前的位置向字符串头退一个完整的字符?”
读者看到这个地方可千万别笑,当时的不少文字编辑器不能处理这些问题,编辑的光标时不时会跑到一个汉字的中间去。我在黑板上写算法,他在旁边提问。这个问题的关键是了解DBCS (双字节字符集系统) 中 leading byte和trailing byte的区别,然后向字符串开始处搜索。写完大概的算法后,又继续把所有细节都实现了,然后讨论了优化的问题。最后,他好像挺满意。
(现在想不起来午饭是如何解决的了,一般情况下吃午饭时也要安排面试,问一些和技术有关的问题)
第二个见面的叫Daniel,看样子像中国人,他叫我做了几个指针的程序,大概是把单链表倒过来之类的。然后要我分析各种算法的优劣。这一关很顺利就过了。
第三个见面的叫Matt,他跟我谈了他们正在做一个叫Outlook的email和个人信息管理程序,远东版(Fareast; 中日韩语言)进度很慢,需要做不少处理双字节的工作,以及各种和中日韩环境有关的问题。我问他:“你们为啥不用 Unicode ; 我觉得Unicode一出,就再也不用DBCS了。”他有点尴尬地说,我们的程序是建立在一个叫MAPI 的平台上的,它还不支持Unicode。正说着,门外一阵骚动,有人推门进来说:“哥们,快去……”。征得我的同意之后,Matt 带着我来到一个大厅,一帮人围着看一个人在被剃光头,有人还在起哄。被剃者面带微笑,岿然不动。Matt介绍说,他叫Mike,是Outlook的开发总经理 (development manager)。他和大家打赌,如果在某月某日之前整个团队的bug数量减少到一定数目,他就以光头回报。
看完剃头事件,我从堆满饮料的冰箱里拿了一听Mountain Dew,继续面试。Matt叫我实现标准函数itoa()功能,就是把数字转换成为字符串输出。或许是累了,或许是Mountain Dew里大量的咖啡因起了作用,我觉得用简单的循环方法太平常了,就写了一个用数学函数的做法。他说,这是我第一次看到这样的解法,你为啥不用简单的方法?你知道数学库函数有多慢么?其实,我当时的想法是想用这种解法向面试官证明自己懂得挺多的,现在看起来比较幼稚。J
下午,Richard送我到机场附近的旅馆,路上他问,要不要在西雅图一带兜兜风?我说,我觉得我肯定会来这里上班的,以后有的是机会,这次就不用了。吃晚饭时,我还买了一份报纸,拿了几份房地产的广告,和中西部的价格比较了一下,当时比较的是租房子的价钱,不是买房子的价钱。J 电子书 分享网站
你的工作就是最好的面试 邹欣(2)
回到底特律一两天后,Richard来email说,前两个面试都挺好,好象第三个面试官有些看法……又过了几天,他说,你可以来上班了。于是,我就推掉了其它公司的offer,来到了微软公司所在的雷德蒙,在微软里开始为远东版
本章未完,点击下一页继续。