一个传奇:有个人不断赢得世界算法冠军
英文原文:In the Olympics of Algorithms, a Russian Keeps Winning Gold
摘要:楼天城在接受采访时称,Petr Mitrichev 能力全面、处事稳重以及准确率很高,是 TopCoder 前几名选手中,唯一没有明显弱点的选手。是的,这位只有 27 岁的俄罗斯传奇人物,他赢得了很多编程大赛的冠军,通过这篇文章,我们一起来回顾下这个牛人的传奇故事吧。
Petr Mitrichev 全神贯注地比赛
如果俄罗斯总统普京在适当的时候透过克里姆林宫的窗口往外望,或许他有机会看到世界上最好的电脑程序员在河对岸的谷歌莫斯科办公室里工作。
这位世界上最好的电脑程序员是谁?是的,他就是只有 27 岁的传奇人物 Petr Mitrichev,Petr Mitrichev 是一名俄罗斯人,虽然他只是工作于谷歌的搜索部门,但他还是赢得了编程冠军头衔。
算法是种另类的美
在众多编程比赛中,大部分电脑爱好者都只是为了追求奖金、旅行机会和到达一个新的高度。“当你在比赛中解决一个问题,你会发现有一种满足感。”,在加利福尼亚州山景城谷歌总部前的草坪上,和蔼可亲但有点苍白的 Petr Mitrichev 却如此说道。
自 2005 年 Petr Mitrichev 从莫斯科国立大学毕业后,他就一直在全球算法编程领域保持领先地位。在这种国际最高规格的编程比赛中,往往涉及无限棋盘游戏或N+1个奶牛哞哞声分贝等 级,这通常需要参赛者强悍的数学分析能力和键盘操作速度,而 Petr Mitrichev 则以他的“短暂停顿”而出名,也就是说,Petr Mitrichev 差不多就是在刚看完问题后就开始着手回答问题。
对 Petr Mitrichev 来说,这类编程比赛犹如在主观世界中提供了一个难得一见的小岛,他说:“这类比赛的美就在于它是完全无意识的,不会受到人类认知的干预”,他还补充到,这是他见过最公平的比赛。
不过并不只是有 Petr Mitrichev 才能看到算法的美。因此技术公司常利用这种比赛来寻找世界上最聪明和速度最快的程序员,像 非死book 和谷歌等巨头就会赞助编程竞赛里的一些顶级赛事。
Petr Mitrichev 崭露头角是在他十岁那一年,当时他拿起属于他哥哥的一本计算机编程书,尽管 Petr Mitrichev 莫斯科家中还没有计算机,但他依然在第二年百位全国高中生编程比赛中获得了第 60 名的成绩,由于他还只有 11 岁,评委特地奖励一台电脑给这位少年天才。15岁时,Petr Mitrichev 赢得了这个比赛的冠军,不久之后,他开始参加国际大赛,他首次亮相是在北京举办的奥林匹克信息大赛。
编程语言从 Pascal 换成 C# 后登顶
Petr Mitrichev 获得现在的世界排名则是在加入编程竞赛世界联赛之后,这一系列的每周和年度竞赛是由美国康涅狄格州 TopCoder 公司举办,它吸引了来自世界各地超过四十万名的程序员参加。而 Petr Mitrichev 自从把他的编程语言从 Pascal 换成 C# 后,他在世界的头名位置从 2005 保持至今。
这样的技术与风度造就了 Petr Mitrichev 极客式英雄的形象,每当他贴出一个在线视频时,论坛就会有帖子仔细分析他的每次表现。在规模宏大的年度竞赛中,几百个程序员都聚集在酒店的宴会厅,大厅的大屏幕都会实况直播参赛者的电脑屏幕。
“当观众看到 Petr Mitrichev 在比赛中出现一个 Bug,后来再次看到他修复这个 Bug 时,围观人群总是出现一阵骚动”TopCoder CTO Mike Lydon 如此说到,他继续称,对于外行这些没什么可看的,但对这些现场观众而言却是如此的迷人。
比赛中的问题往往涉及描述物理的状况然后用数学方式表达出来,而这就需要参赛者现场写一个算法。比如 Petr Mitrichev 最近参赛的一个问题就是,在一个无限的国际跳棋中预测某个棋子的位置,参赛者写的程序只要能够正确处理试验数据就可以得分。而在有些比赛中还包括一个挑战 阶段,提交数据让竞争对手的程序出错便可得分。
在这样的竞赛中当然也有奖金可拿,头等奖金达2.5万美元(Petr Mitrichev 获得过好几次),除此之外,参赛的程序员还可以被硅谷的一些公司相中,因此许多顶尖的程序员都获得了高薪工作。
Petr Mitrichev 不同寻常的地方在于,他会一直参加比赛然后获得冠军,即使他在 2007 年获得了一份在谷歌的工作。他称,他将一直去参赛,因为对于他而言写代码就是种享受,而 TopCoder 的每周比赛只要花费 90 分钟即可,而这点时间你可以看一个电视节目或选择参赛。
据悉 Petr Mitrichev 在谷歌从事改善搜索的工作,他称,这非常不容易,因为绝大多数简单的技术已经得到了应用,同时包括网页页面、标志性的算法都由谷歌创始人搞定了,而现在改 进搜索结果,主要是涉及更细微的调整,如从用户的搜索条件中发现同义词或其他语言技巧来提取额外的意思等。
即便是如此,Petr Mitrichev 也是一股不可忽视的力量,在 2011 年,他赢得了 非死book 首届编程比赛(也就是现在的 非死book Hacker Cup)的冠军。
被超越,但依然是传奇
提到算法比赛和 Petr Mitrichev,国内的人们或许会立马联想到楼天城“楼教主”,是的,作为 ACM/ICPC 全球总决赛第二名 、Google 编程挑战第一名以及 2011、2012年 非死book Hacker Cup 的季军,他在读大学时就被冠以中国公认的大学生计算机编程第一人,成为国内众多程序员所称赞的传奇。
楼天城在接受 CSDN 记者邮件采访时对 Petr Mitrichev 评论称,Petr 在竞赛中能力表现的很全面,他处事稳重,有很高的准确率,对于各种类型的问题都有很好的洞察力和判断力,或者更精确地说,他是 TopCoder 前几名选手中,唯一没有明显弱点的选手。
另外楼教主还表示,Petr 很重视也很愿意与其他选手交流和分享,Petr 在赛后经常回答一些新人的问题,并分享自己比赛的视频供大家交流学习,甚至将自己竞赛的经历写下跟大家分享。就算在他没有参加的现场比赛过程中,Petr 也会写 blog 及时报道比赛的进程。
需要指出的是,在 Topcoder 和 Codesforce 等编程竞赛的网站上,Petr Mitrichev 目前排名已不再是第一名,现在他已被白俄罗斯的 18 岁“小将”Gennady Korotkevich 取代,他同样也在国际信息学奥林匹克竞赛中获得了许多金牌,而 Gennady Korotkevich 在 IOI 获得银牌时,他才 11 岁,尽管如此,Petr Mitrichev 在这个领域仍然是一个传奇。