姓名:金斌
■最牛项目:程序设计 ■年龄:18岁
■学校:江苏常州高级中学2006级13班
■爱好:算法、开源软件、自行车
■曾获奖项:2008年全国青少年信息学奥林匹克竞赛一等奖;2009年Topcoder全球中学生锦标赛冠军;2009年Topcoder全球公开赛冠军
如今信息学专业的学生越来越多,可常挂上省级、国家级比赛“光荣榜”的总逃不出那几个名字,在世界上获奖的更是凤毛麟角。来自常州高级中学的金斌,前不久在美国举行的Topcoder Open (简称TCO)Algorithm(算法)冠军争夺战中,击败各路好手,一举夺得世界冠军。这是他继今年一月夺得Topcoder High School(简称TCHS,即高中生比赛)世界冠军后,一年内取得的第二个Topcoder系列赛冠军。在和记者的对话中,金斌介绍了自己学习程序设计的故事与经验。
“转行”前已是数学竞赛高手
如今信息学多是“从娃娃抓起”,金斌接触信息学却已经是初二了,不过此前时间他也没有闲着,那时他专攻的是数学竞赛,并且已经是个竞赛高手了。金斌开始接触数学竞赛是四年级,小学时拿过《小数报》一等奖,初一、初二都拿下了全国数学竞赛省一等奖。
初二时接触信息学,金斌说只是“玩票”的性质,现在想来连入门水平都算不上。不过他对信息学的兴趣却是与日俱增,“感觉和数学竞赛完全不一样,能解决平时生活中解决不了的问题,很好玩。”数学、信息学“两头兼顾”的日子到高一才结束,金斌选择了遵从自己的兴趣,放弃数学,一心研究编程。“感觉数学是越学越枯燥了,不过有了那么多年学习数学的基础,对学信息学肯定是有帮助的。”
一年“刷题库” 成绩突飞猛进
对于算法类程序设计竞赛,被全世界广泛公认的有3项大赛,分别是代表了高中生学科竞赛最高荣誉的国际信息学奥林匹克竞赛;由美国Topcoder公司举办的在个人程序设计竞赛中最具权威的Topcoder Algorithm比赛;以及在团队程序设计竞赛中最具权威的国际大学生程序设计竞赛。从高一开始,金斌开始参加Topcoder的单回合比赛,最初的排名在中国选手中也是500名开外。
金斌说,高一一年的时间,他在学校接受了正规的训练,频率为每周两次,每次三小时。课堂之外,金斌还在网上“刷题库”。“网上有很多信息学的题库,不同国家的题库里包含了不同的题目,全部做完当然不可能。”金斌的筛选有两个原则,一是好玩的,二是有一定难度的,“我做的题不算太多,但遇到什么欠缺的知识就会立刻补起来。”
有电脑的时候练练编程,没有电脑的时候就在脑子里凭空写程序,一年的时间,在一次次单回合赛后,金斌的排名从中国500名爬升世界前100名,随后又稳定在前50名。
战胜职业程序员 成TCO最年轻冠军
TCO的比赛分为网络淘汰赛和现场赛两个部分。在网络淘汰赛部分,参赛的几乎都是毕业或就读于世界著名大学的优秀选手,经过5轮竞争,金斌脱颖而出,进入了世界前18位,从而获得了赴美国拉斯维加斯参加TCO现场比赛的机会。与金斌一起代表中国参加现场赛的还有来自清华大学的两名学生,而金斌是这18人中唯一的高中生。
在现场比赛的半决赛中,金斌发挥稳定,成了唯一进入现场赛决赛的中国选手。此时与金斌对抗的,多是身披无数荣誉的大学生,甚至是职业程序员。“这时就不想紧张不紧张了,做好自己的题目就好。”题目很难,凭借着尽量拿分的解题策略,金斌取得了梦幻般的成绩,他成了历史上第一个一年内取得TCHS和TCO两项冠军的选手和历史上最年轻的世界冠军。现场赛的出色表现也让金斌在Topcoder排名进入了世界前十——可以说创造了一个奇迹。
学计算机编程要有突发奇想的能力
早在一年前,金斌就获得了全国青少年信息学奥林匹克竞赛一等奖。此项荣誉在手,包括北大、清华在内的全国12所名校的计算机系都可以任其选择。和很多一等奖学生直奔清华不一样,金斌选择了上海交大。说起这个选择的原因,金斌谦虚地说感觉自己在学科上有偏科,自觉够不上清华的条件。目前已在上海交大军训的金斌说今后也会努力不断进步,不让关心他的人失望。世界级的荣誉再加上名校的橄榄枝,信息学在学生中的号召力也越来越强,怎样才能学好信息学,金斌有三点建议:一是要有兴趣,被逼着学肯定学不好;二要有筛选材料的能力,现在信息学的资料在网上都是开放的,对这些资料要有鉴别,要有把好的材料挑出来的能力;三要会突发奇想,“编程主要考察建模能力和转换模型的能力,一个题目,不是把其他人其他题目的算法搬过来就可以解决的,很多时候需要比较大胆的转换,需要突发奇想。”
(本报记者 杨彦 扬子晚报