English readers can read the English version here.
这份转录可能有遗漏,顺序可能不对,因为是靠我的回忆写出的。以“我:”开头的是我说的话。在一节内,如果只有一个考官说话,则用“考官”表示,否则用不同的数字表示不同的考官。面试官有 8 人左右。
2014 年 3 月,在自主招生之后,我立刻记录了 英文版(面试是用英文进行的),同年 7 月 18 日翻译为中文。没有“译注”的括号表示场景或者原本就有的注释。
这份转录是在保密期之后发布的。
1 自我介绍
考官:在两分钟内介绍一下你自己,说你最想让我们知道的。
我:我叫 Gee Law。(译注:中文名省略。)我热爱计算机技术和数学,并且都擅长。我目前是 MSP,它和 Microsoft 有点联系,比如宣传这个平台的最新技术。我喜欢代数学,特别是线性代数,我认为线性性是它的内在美。我也喜欢数学分析。(译注:别问我为什么突然觉得线性性是美的!反正我就是这么一说。)
2 编程语言
考官:你知道什么编程语言?
我:C#、C++
考官:举几个编程语言?
我:VB6、VB.NET、C#、C++、C、Ruby、Python、Java
3 C++
考官:你怎么看 C++?(译注:我不是元芳!)
我:我认为它太复杂了,对我来说,对所有人来说,很难对他了如指掌。不喜欢这么复杂。
考官:怎么复杂?
我:看起来(译注:应该是 seemingly,但我原文用的是 lookingly。)相同的句子在不同的上下文可以有非常不同的意思。(我想说的是 Hack vector, vec, my_struct; vector<vec> my_struct;
的例子,其中 Hack
的 operator <
和 operator >
都重载了。)
考官:比如?
我:现在很难说出一个具体的例子。
4 Ruby
考官:你怎么看 Ruby?它为什么是一个成功的语言?
我:我没用过 Ruby,只是知道名字罢了。
考官:好吧,那说点实在的,你用什么语言呢?
我:Visual Basic、C 家族。
考官:那你读读这段代码,输出什么呢?
void f(int p)
{
if (p < 200) f(p + 2);
else p + 200;
}
int main()
{
int i = 8;
f(i);
printf("%d", i);
}
我:是……八?
考官:好的。
5 MSP
考官:你说你是 MSP,你在 Microsoft 做了什么?
我:我不在 Microsoft。
考官:我知道,但是和 Microsoft 有联系,说说你做了啥。
我:我制作了几个 Windows 应用商店应用,发表了一些网络广播,宣传它的技术。MSP 就像是一个 Microsoft 布道师(译注:这里我因为太激动老想说 evangelion,但是正确的是 evangelist,讽刺的是,它们读音迥然不同)实际上我得到了 Microsoft 授予的荣誉——2013 年度优秀 MSP。
考官:哇,但是你简历上没写啊?
我:是的,最近才收到证书。
6 数学分析
考官:你说你喜欢数学分析,为啥?
我:它是物理的基础(译注:就是这么一说)。用数学分析可以描述物理的东西。
7 成绩的起伏
考官:我看你简历,成绩有起有浮啊,你……
我:有时候我因为一些“干扰”,像是竞赛或者是什么的。回到正常的学习生活的时候,我的成绩就恢复了。
考官:那就是说除了干扰之外你都不错?
我:是吧。
8 快速排序算法
考官:你知道快速排序吗?(译注:好激动!终于有公司面试程序员的感觉了!)解释它的算法,不需要代码。
我:它使用了分治法。首先选定一个特定的元素,叫它支点,然后把所有小于支点的放在支点左边,大于的放在右边,然后递归地做下去,最后就排好序了。
考官:对。你知道堆排序吗?
我:知道。
考官:哪个更快 / 更好?
我:堆排序更稳定。平均来说,快速排序更好。
(我说的是稳定,但是实际上这种说法错误,应该是“数据敏感度低”。)
考官:是吗?
我:是……吧?有随机优化的肯定是。
考官:你知道复杂度吗?
我:是的,都是 。(译注:指渐近时间复杂度。)
考官:那为什么快速排序更好呢?
我:常数。
考官:是的,常数。
9 最高奖项
考官:你获得过最高的奖项是什么……在信息学方面?
我:NOI 二等奖。
考官:NOIp?
我:不,NOI,全国信息学奥林匹克联赛。还获过 CCC 的奖和其他的小奖。
10 竞赛经历
考官:你在竞赛中有怎样的经历?好的?坏的?
我:我学习了很多算法和它们背后的思想,这是好的。坏的嘛,就是我习得了很多糟糕的编码习惯。(译注:其实没有。)
考官:比如?
我:比如,所有的变量都是abcdefg……
(大笑)
11 无限个素数
考官:你知道如何证明有无限个素数吗?
我:知道,我见过很多证明。(译注:当时有点逞强啦 >_<)
考官:(笑)说一个就行。
我:是 Euclid(欧几里得)完成的,用……反证法。(译注:这里我一时忘了怎么用英语说“反证法”。)
考官:反证法(译注:by contradiction),说说证明大概。
我:假设只有有限个素数,它们的积加一和所有的素数互素……
(微笑)嗯,对。
12 线性代数
考官 1:你说你喜欢线性代数。当你做矩阵乘法的时候,你可以按照一个规则……就是规则。它的背后的含义是什么?我的意思是,规则就是规则,但是有什么背后的含义?(译注:原文是 physical background,但是我觉得并不需要是物理的、实体的。)
我:这个地儿我得说汉语。就是映射的复合嘛。(译注:刚刚这句说的是汉语。)啊对了,就是两个变换的“组合”,或者说两个映射的。它产生第三个变换。(译注:这里我说成了 combination,稍后可以看到别人更正我。)
考官 1:是的。并且,你会说英语嘛。
我:是啊,刚刚就是突然想不起怎么用英语说了。
考官 2:(对考官 1)他说对了吗?
考官 1:(对考官 2)是的,他是对的。(对我)不过你或许想说的是“复合”。(译注:composition。)
我:啊,对,是“复合”。(译注:欲哭无泪啊。)
13 阶乘
考官:你能估计 有多少位吗?你知道阶乘吧?
我:知道,就是阶乘嘛。(译注:我翻译了一下 factorial,表示我知道意思。)
考官:好。
我:这里我们需要一点点积分,我们需要估计 ,或者用那个……那个“我忘了叫啥名字”公式。
考官:是 Stirling 公式(斯特灵公式)吗?
我:啊对,对于 它的位数估计很准,我以前试过。
考官:好吧,但是我只是想让你估计一下。如果有计算器,那就简单死了。不过现在可没有计算器哦。
我:好吧……(开始计算,估计 ,悲剧是忘了除以 )大概是 400(位)?
考官:好吧。(译注:这个估计比较准确了,除了忘了除以 ,而且这个估计的错误是很明显的,因为 100 个两位数乘起来不可能有 400 位。)
14 职业规划
考官:你的职业怎么规划的呢?你以后想干啥?
我:我想做纯学术研究,嗯,学术研究。
考官:你为什么想要加入我们呢?
我:嗯……在交叉信息学院(译注:“交叉信息学院”用的是汉语,因为我当时不知道怎么说)我可以从基础开始学起,从基本的开始学起。只有有了这些基础的东西,我才能在学术研究中越走越远。
考官:可以叫“姚班”(译注:Yao class)😊
15 最长的代码
考官:你写过的最长的代码?
我:读过的?(译注:当时没听清。)
考官:写!
我:我认为应该是一个 Windows 应用商店应用吧。是一个叫“哔哩哔哩”的视频网站的客户端,它允许在视频上直接写评论。(译注:这个拙作我都不敢看了现在!)
16 Lync
考官:你知道 Lync 吗?
我:知道。
考官:它是 Visual Studio 的一部分。
我:不。我认为他是 Office 365 的一部分。(译注:我好厉害,居然说的是三、六十五,而不是三百六十五,特别地道!)
(注:我后来猜测他说的可能是 linker / link,想考我链接器、链接的知识?)
考官:哦?咱们先存异……(计时器响铃)
我:时间到?
考官:是的。
我:我应该把这张草稿纸带走吗?因为用过了。
考官:不,不用,你不用带走它。
我:好的,再见!
……
面试后,面试者对后勤说:这次休息时间长一点儿。
(注:这个我认为是“后勤”的人后来证实是 IIIS Student Affair Officer 张燕老师。)
请启用 JavaScript 来查看由 Disqus 驱动的评论。