一个传奇:有个人不断赢得世界算法冠军 - 爱悠闲,快乐工作,悠闲生活!



一个传奇:有个人不断赢得世界算法冠军 - 爱悠闲,快乐工作,悠闲生活!

如果俄罗斯总统普京在适当的时候透过克里姆林宫的窗口往外望,或许他有机会看到世界上最好的电脑程序员在河对岸的谷歌莫斯科办公室里工作。

这位世界上最好的电脑程序员是谁?是的,他就是只有27岁的传奇人物Petr Mitrichev,Petr Mitrichev是一名俄罗斯人,虽然他只是工作于谷歌的搜索部门,但他还是赢得了编程冠军头衔。

算法是种另类的美

在众多编程比赛中,大部分电脑爱好者都只是为了追求奖金、旅行机会和到达一个新的高度。"当你在比赛中解决一个问题,你会发现有一种满足感。",在加利福尼亚州山景城谷歌总部前的草坪上,和蔼可亲但有点苍白的Petr Mitrichev却如此说道。

自2005年Petr Mitrichev从莫斯科国立大学毕业后,他就一直在全球算法编程领域保持领先地位。在这种国际最高规格的编程比赛中,往往涉及无限棋盘游戏或N+1个奶牛哞哞声分贝等级,这通常需要参赛者强悍的数学分析能力和键盘操作速度,而Petr Mitrichev则以他的"短暂停顿"而出名,也就是说,Petr Mitrichev差不多就是在刚看完问题后就开始着手回答问题。

对Petr Mitrichev来说,这类编程比赛犹如在主观世界中提供了一个难得一见的小岛,他说:"这类比赛的美就在于它是完全无意识的,不会受到人类认知的干预",他还补充到,这是他见过最公平的比赛。

不过并不只是有Petr Mitrichev才能看到算法的美。因此技术公司常利用这种比赛来寻找世界上最聪明和速度最快的程序员,像Facebook和谷歌等巨头就会赞助编程竞赛里的一些顶级赛事。

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年,他赢得了Facebook首届编程比赛(也就是现在的Facebook Hacker Cup)的冠军。

被超越,但依然是传奇

提到算法比赛和Petr Mitrichev,国内的人们或许会立马联想到楼天城"楼教主",是的,作为ACM/ICPC全球总决赛第二名 、Google编程挑战第一名以及2011、2012年 Facebook Hacker Cup的季军,他在读大学时就被冠以中国公认的大学生计算机编程第一人,成为国内众多程序员所称赞的传奇。

楼天城在接受CSDN记者邮件采访时对Petr Mitrichev评论称,Petr在竞赛中能力表现的很全面,他处事稳重,有很高的准确率,对于各种类型的问题都有很好的洞察力和判断力,或者更精确地说,他是TopCoder前几名选手中,唯一没有明显弱点的选手。

另外楼教主还表示,Petr很重视也很愿意与其他选手交流和分享,Petr在赛后经常回答一些新人的问题,并分享自己比赛的视频供大家交流学习,甚至将自己竞赛的经历写下跟大家分享。就算在他没有参加的现场比赛过程中,Petr也会写blog及时报道比赛的进程。

需要指出的是,在TopcoderCodesforce等编程竞赛的网站上,Petr Mitrichev目前排名已不再是第一名,现在他已被白俄罗斯的18岁"小将"Gennady Korotkevich取代,他同样也在国际信息学奥林匹克竞赛中获得了许多金牌,而Gennady Korotkevich在IOI获得银牌时才11岁,尽管如此,Petr Mitrichev在这个领域仍然是一个传奇。


Read full article from 一个传奇:有个人不断赢得世界算法冠军 - 爱悠闲,快乐工作,悠闲生活!


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts