ACM国际大学生程序设计竞赛是全世界最具影响力的大学生计算机竞赛,圣彼得堡国家信息技术、机械学与光学研究型大学(简称“圣光机大学”)拿下了今年比赛的冠军。有人觉得这毫不意外,因为圣光机大学有一位传奇人物——Gennady Korotkevich。
过去10年,Gennady Korotkevich更让人熟知的是他的网名——Tourist。Gennady Korotkevich来自白俄罗斯,出生在1994年。8岁那年,他在白俄罗斯的一项编程大赛中得到了第2名,这个比赛很有分量,以他的表现,他可以直接免试进入任何一所大学。
从他12岁开始,也就是2015年,Tourist开始了统治编程大赛的历程。他拿下了从2007-2012年6届国际信息学奥林匹克竞赛的金奖,这是高中生参加的最高级别编程大赛。之后,他又帮助圣光机大学包揽了2届ACM国际大学生程序设计竞赛的冠军,而这个比赛规定,每个人只能参加2次总决赛。他拿下的其他由Facebook、Google赞助的顶级编程比赛大奖更是不计其数。
彭博社最近写了一篇长文介绍了他成为传奇的经历,也介绍了并不为人所知的各种编程比赛,很多聪明的学生把它当成获得名校和大公司垂青的途径,还有人在工作后仍然会去参加比赛,还有人甚至把它当成了一种职业。其实,这也可以称得上是一种运动,就叫sport programming(编程运动)。
以下是文章的节选:
21岁的Gennady Vladimirovich Korotkevich已经是个传奇。他在网上被人熟知的名字是Tourist,现在,他是全世界最顶尖的编程运动选手。他和其他的编程高手一起角逐,解决编程难题。他精于此道,或者说,他简直太擅长了。
“或许他是唯一一个可以以此谋生的人,因为Gennady赢了太多比赛了,” Vladimir Novakovski说到,他是一位退役的编程大赛选手,却仍然非常关心比赛,“我们从来没见过像他一样的人。”
Korotkevich可以靠他的技能在硅谷任意一家公司获得一份高薪的工作,但这位白俄罗斯小伙还没打算把编程当成一种职业。今年秋天,他将重回圣光机大学,他说自己可能会选择称为一名研究人员。
我很想告诉你编程运动很好看,这项运动现在的“神”非常有魅力。但实际情况是,这项运动没有那种可以反复播放的慢镜头集锦,也很难发现令人不可抗拒的个人魅力。编程运动在很长时间里,包括现在依然不被人注意。这是一项表彰天赋,坚韧和团队合作的运动。在2015年的今天,成为一个优秀的编程运动选手是帮助18岁的年轻人被那些愿意往天才程序员身上撒钱的公司注意到的不二之选。
Facebook的Hacker Cup是一年一度的编程运动大赛之一。初选在网上进行,选手们要在线解决编程难题。进入决赛的高手们可以去Facebook总部参加比赛,费用全部由Facebook承担。所以你明白了吧,对于来自俄罗斯、东欧、亚洲的年轻人来说,Hacker Cup会是个不错的硅谷之旅,而且他们能在吃着免费寿司的时候接受一两家硅谷公司的面试。
Hacker Cup决赛场地
Hacker Cup的决赛在一间多功能会议室举行,里面有4排颜色单调的桌子,墙上有夸张的海报,写着“专注”(FOCUS),“大胆”(BE BOLD)。几乎所有的参赛者都用相同的方式使用这些桌子:把自己的笔记本电脑连接到巨大的显示器上,手边放着笔记本和笔。
所有的参赛者——这很让人吃惊——都是男人,或者至少在成为男人的路上。他们看起来不是那种健壮的人,平均体重不超过120磅(54公斤)。他们有着让人不安的一套特有的特征,不管是语言还是动作。而且,他们差不多都是锅盖头发型,脸色苍白,衣着邋遢。 如果扎克伯格在这间屋子里,他就是阿多尼斯 (Adonis,希腊神话人物,以俊美著称,是西方“美男子”的最早出处)。
扎克伯格 Vs 阿多尼斯
Hacker Cup和其他编程比赛差不多:3个小时内用任何方法解决5个难题。编写的程序要尽可能高效。最快时间内写出的最干净、最准确的代码获得第一名。通常题目可能是:给定一系列限制条件后问从旧金山到洛杉矶的最短路径,或者是怎样以一个特定的方式铺满地板。这些问题通常是一些著名的算法或者数学解构的全新变种,精英选手们必须快速找出背后的逻辑并相信自己的能力,“你必须很早就确信自己能通过哪种方式解出难题,”Wesley May,一位运营Hacker Cup的Facebook工程师说到。
Facebook Hacker Cup的题目
Hacker Cup开始前,参赛者看起来都很镇定。斯拉夫人来回走动,和来自中国、日本的竞争者们聊着天。一个年轻人开始调试他的工作站,过程中不停的握紧、放松自己的拳头。Korotkevich在和他的克星,来自俄罗斯的Petr Mitrichev聊天。后者已经30岁,是一名Google雇员,如果以编程运动的标准来看,他简直就是个“古代人”。当Korotkevich离开会议室去拿零食的时候,我向他介绍了自己,几句尴尬的交流之后,我问他是否能接受采访。“看看吧,”他回复到,之后他就再也没跟我说过任何话。(他的朋友像我解释,几年前,《连线》写了一篇关于Korotkevich的采访,说他会“以处男之身而死”,之后他就不接受媒体采访了。)
Korotkevich静静地坐在他的桌子前,手边放着一杯水,他看起来就像是个编程刺客:黑鞋、黑裤子、黑色的兜帽,一头拖把一般的棕色头发垂在右半边脸上。水杯旁边,是另一个编程大赛的棒球帽以及他的纸笔。
所有人坐定后,一个Facebook的监考人员会来到会议室前,拿起麦克风,快速的陈述规则后就开始计时,“三、二、一,”他数完,“祝愿最好的程序员赢得比赛”。
这些细节决定了为什么编程大赛甚至没有“拼字比赛”在电视上获得的曝光率高,它甚至比不上同为宅男运动的国际象棋比赛和口袋妖怪锦标赛。一切都是因为它几乎没有“运动”,比赛开始后整个会议室就陷入了沉寂。5分钟之后,终于有人放下写得一片潦草的笔记本,去键盘上敲了几个字。
竞争对手们认为Korotkevich一半是天才,一半是因为他的努力。他从很早时就开始参加编程运动,不断的比赛过程中,他几乎遇到了所有的题型。他第一次让众人震惊是在8岁,他在白俄罗斯的一项编程大赛中得到了第2名,这个比赛很有分量,以他的表现,他可以直接免试进入任何一所大学。12岁那年,他在国际信息学奥林匹克竞赛种排名第20,这是最有影响力的高中比赛,随后他就创造了夺得3连冠的记录。
当Korotkevich开始思考难题的时候,他的脚开始以每秒钟数次的频率抖腿。他拿起铅笔不停地在手背转动,然后拿过水杯,不停地揉捏下巴。比赛开始10分钟后,他终于开始打字。他依然在抖腿,手上却像一个速记员一样以不可思议的速度上下翻飞。每7秒钟,他会眨一次眼。(记者可能看比赛看得实在无聊了,这是我乱入的)
在比赛的第14分钟,图书馆一般的沉静被一声打嗝声打破,但是接下来没有一句“不好意思”。在第19分33秒,Mitrichev提交了第一个答案。我知道他的名字原因是会议室前的选手积分榜上出现了他的名字,积分榜上显示着他解决的问题以及用时。选手积分榜是个难得的吸引人的东西,因为它能帮你一窥比赛的背后。积分榜上只显示Mitrichev解出了这个问题,以及用时,却没有显示他到底对不对。这个信息知道比赛结束才会揭晓。在第24分钟,第二名参赛者提交了答案。1分钟后,Korotkevich的名字第三个出现在了积分榜上。
Korotkevich看起来对对比赛的紧张完全免疫,他更加专注于自己的身体机能。45分钟后,他——我没有其他的方式描述了——开始挖鼻孔,然后看看手里的“工艺品”,继续挖鼻孔,挖出更多东西。之后,他向其他参赛者树着携带大批“工艺品”的中指去了洗手间。这位老兄太优秀了还能抽出时间去撒个尿。
在大部分比赛中,Mitrichev都能拔得头筹。他能解出很多题目,而且速度最快。“Petr以前在Google工作,但后来他们关闭了莫斯科办公室,”Facebook的May说到,“我们是这挖他但运气不太好。”(他现在在Google的瑞士办公室工作)
比赛最后一个小时,终于出现了一些容易察觉的瞬间。所有参赛者都开始坐立不安,一些人站起来咬指甲,很快他的站的地方就有了个“大改观”。Jakub Pachock,一个波兰程序员,第一个解出了3个问题,排名第一。Korotkevich最后排名第二,Mitrichev排名第4。只剩30分钟的时候,一个日本程序员察觉到他翻了一个错误,然后痛苦地把头低在桌子上,喉咙里发出焦虑的声音。然后,只剩5分钟了,Korotkevich成功登上了积分榜榜首,他第一个解出了全部5个问题。
比赛结束后,参赛者们不耐烦地走来走去,和其他人交谈着。Facebook的雇员在检查结果并确认最终分数。最终结果揭晓,Korotkevich解错了第2题,但因为在其他题目上的速度和准确性,他依然赢得了比赛。经常获胜的Mitrichev最终获得了第4名。因为他的努力,Korotkevich获得了1万美元奖金和周围人的掌声,这让他有了一丝微笑。接着,他脱掉了帽衫,把Hacker Cup奖杯举到了空中。
Facebook Hacker Cup 2015
1个小时后,Facebook把所有参赛者接上大巴,开始了一段硅谷美食之旅。
……