您的位置:知识库 » 求职面试

小城故事年前的面试经历

作者: 小城故事  来源: 博客园  发布时间: 2010-03-09 10:15  阅读: 3969 次  推荐: 0   原文链接   [收藏]  

  去闵行紫竹路挺远,周五六点半就出发了,好几年都没起这么早过了。先要到上海南站再转上沧线,面试通知说要乘上沧线(区间),没读懂是什么意思。结果坐上了非区间车,又花了一个多小时才到莲花南路站。

  街道很宽阔,绿化不错,而且看不见人影。向前走着,路过交大的大门,看到路口“紫竹欢迎你”几个大字。这应该就是紫竹科技园了,走不多远,看到了Intel和微创的楼牌。问了问保安,很快找到了面试所在的楼。一看时间,才九点多点。

  进一楼大门,保安问我来做什么,我说来微创面试。他摆摆手说,这里没有微创,有微软。我说就是这里,保安说你肯定弄错了,微创在那边,来来你看,指着不远处的微创大楼。我不耐烦地说,我知道,但人家邮件是说这栋楼。保安说那你给他打个电话,我打了,经理叫tony,这位保安兄还要跟Tony确认一下,然后才让我进去。保安都这么看得起我,难道我长得像什么客不成?

  上了五楼,一走出电梯,发现迎面墙上,真有一个字写歪了的"Microsoft"。坐前台不是美女,是两个帅哥(估计也兼保安)。我问他们这里是微软吗?得到肯定的答复,过了一会从对面的玻璃门走出来一个三十多岁的中年人,问我说:“你是XX吗?”我说是,他说:“我是XX组的Manager,跟我进来吧。”出乎意料,我就这样来到了MS面试。

  在办公区Tony先找了个位置让我坐下,然后去里面了。我打量着这里的环境,这个办公区很大,只有少数位置上有人,每个办公桌上都有一个电源插座,我座位对着的墙边齐整地摆着好几排台电脑主机。难道这里就是微软?我读过唐骏的自传,记得上海微软是在徐家汇啊。过了一会,一个员工拿来一份试题让我做,说做完了之后去找Tony。过了一会,他又拿了一瓶矿泉水给我。

  试卷题目里有 Microsoft Global Technical Support Center 几个词。题目难度不大,笔试题主要是英文,选择题不少(有的纯粹考语法),智力题和编程题是中文。另一道将一句话,就简答题纠结点,用英语描述NTFS和Active Directory等几个概念。最后是给客户回邮件解决技术问题。大约一个小时就写完了。觉得时间还早,正想检查一下,Tony从身后过来,说他要离开一会,写完的话就去找谁谁。我干脆说我写完了,于是他把试卷拿走了。

  接着,另一个年轻人过来,打了下招呼,领我到办公区比较深旁边没人的地方,说就在这里吧。我们坐下,他看着我做的题目,我打量着他,穿着灰色高领毛衣,戴着黑框眼镜,有些乱糟糟的头发。突然他抬起头,指着第一道编程题:已经写到麻木的飞波拿鸡,问:“你的程序,如果别人传进一个负数,会怎么样?”好家伙,上来就将我一军。(附代码,以助理解对话):

class Program
{
static void Main(string[] args)
{
string s = Console.ReadLine();
int num;
if (int.TryParse(s, out num))
Console.WriteLine(
"The result is {0}",countFibonacci(num));
else Console.WriteLine("Invalid Input...");
}

static int countFibonacci(int n)
{
if (n == 0 || n == 1) return n;
return countFibonacci(n - 1) + countFibonacci(n - 2);
}
}

  要是平时,我肯定会反将,原来你们要求参数检查啊,这里我还是老实应将吧:“会无限递归,导致栈溢出”。“那你看应该改进呢?”我说在Main函数调用递归函数前,先判断一下num……还没说完他就打断:“这怎么行呢?等于把参数检查的职责交给用户,那是十分危险的。”一面瞪着我,潜台词应该是“你平时就是这么编程的吗?”我努力告诉自己要镇静,说“还没说完,最好是在递归函数里检查参数范围”。他突然笑了,说其实你只要改一个地方,我马上明白了,说把 n==0 || n==1改成n<2。他说是,不过处理负参数并非使用函数的本意,对吧?我说对,这种情况我应该throw一个ArgumentException。他说还有一种不错的方式,只要把递归函数的参数类型改一下,“你说改成什么”,我说uint,他这下才算比较满意,翻过卷子继续看。

  刚舒一口气,没想到第二道编程题我写得更糟糕,题目要求将字符串如"A car is running" 变成"running is car A",我刚来时大概还在晕头转向,只是把字符串倒过来了,变成了"gninnur si rac A"。人家当然有兴趣了解下我是如何理解的,我只好说我只是忘了加行代码,将每个词再倒过来( 事后想,应该是 result = Regex.Replace(result,"\\w+",m=> new string(m.Captures[0].Value.ToCharArray().Reverse().ToArray())) )。不知他对我的奇思妙想觉得蛮新鲜还是蛮无语,说了一句“那倒还可以”,这道题就过去了(大家就别笑话我了,现在想起来都很汗)。

  然后这哥们如天马行空般提问题。Active Directory我完全是在瞎编,他没管,不过指出NTFS要用更多磁盘空间而不是像我写得那样节省空间。问我GC的理解,我说用来回收堆上分配的内存,他问我堆上的空间在系统回收时会全部扫描吗,我想了下说“应该不会。”看我确实不清楚原理,他略讲了一下,又问“那一些非托管的资源.Net中如何处理”,我说可以定义析构函数清理非托管资源,也可以由程序员自己控制回收,.Net提供了try...finally和using语法支持,接着他又让我说了下这两种的用法。他纠正了我两处说得不准确的名称,大体是予以了肯定。

0
0
标签:求职经历

求职面试热门文章

    求职面试最新文章

      最新新闻

        热门新闻