25岁的楼天城有“中国大学生计算机编程第一人”的称号,也被参加竞赛的学子们敬称为“楼教主”。他的传奇经历一直激励着众多年轻学子:从2001年开始参加计算机编程竞赛,并连获全国一等奖;2004年入选国家集训队,同年获得IOI金奖并被保送到清华大学;2008年开始在首位亚裔图灵奖获得者姚期智院士的理论计算机中心攻读博士;2007年和2009年两次带队参加ACM/ICPC全球总决赛并获得第二名。《程序员》近日专访了编程奇才楼天城,让他与我们分享一下他传奇的编程竞赛之路。

记者:请简单谈谈你的童年经历。童年哪些人、哪些事对你的影响最大?

楼天城:小时候,我比较爱玩,并不怎么喜欢学习。后来在8岁那年,我跟随父母一起到清华大学游玩。身处中国的最高学府,我不自觉地受到了感染,当时就给自己定下了童年的第一个目标——要在学习上投入更多的精力,严格要求自己,将来一定要到清华大学读书。这是童年中对我影响最大的一件事儿。经过十年的努力,现在这个愿望已经实现了。

父母是童年时代对我影响最大的人,他们特别注重对我心理、性格等素质的培养,而不是局限于学业。他们认为高素质对人的影响远远超过学习能力的影响。在高中我能如愿参加各项编程竞赛,也离不开父母的支持,但前提是数学等智力科目不会受到影响。这类竞赛并不属于高考科目,而且势必会对学业产生一定影响,如果没有父母的支持,参加竞赛这条路是走不通的。父母的支持支撑着我一直在竞赛这条路上走下去。另外,我比较喜欢各种棋类,还喜欢踢足球。棋类可以锻炼人的思维,而运动也会培养人的思考能力。小时候我就考虑,向对方球门底线带球(如果是向球门带球,一定是越向前越好),球门与球的角度是越变越大还是越变越小;往前带球,这个角度是越大越好,还是越小越好。经过计算后,我发现把球带到某个地方时,角度是最大的,再往前带就会变小,而这个地方就是射门的最佳位置。结论是:这个最大的角度与距球门的距离有关。

记者:你是什么时间开始接触编程的?在学习编程过程中,都开发过哪些应用?

楼天城:我从高一开始学习编程相关知识。编程对于高中生来说,确实是一门特别的科目。我所开发的应用中印象比较深刻的是黑白棋。当时在联众的游戏平台上,它有90%的胜率。最初设计的黑白棋只能搜索到六层,它的“棋艺”并不理想,当时很多此类的黑白旗游戏也能做到这一步。为了突破这一局限,我研究了各种优化技术、博弈算法及搜索技术,对算法进行了优化,使原来的搜索增加了四层,它的计算能力、博弈水平也随之提高了很多,一时很多人都难以胜过它。虽然这个游戏并没有像李开复当年写的黑白棋那么优秀,但对我来说,还是蛮有成就感的。另外,我还做过很多其他的应用,但大多是实现一些涉及核心的关键问题,并没有作为产品公布出来。

记者:你第一次参加编程竞赛是什么时间?在之后的竞赛经历中,遇到了哪些挑战?

楼天城:2006年,我第一次参加编程竞赛,是Google编程挑战赛。由于一个失误,我与冠军擦肩而过。大赛结束后,我非常沮丧。后来在父母和老师的鼓励下,我下定决心要再等机会,赢取冠军。

两年后,直到2008年,我才有机会再次参加Google编程挑战赛,并在最后8分钟赶超了当时领先于我2小时52分的南非选手,获得了冠军。这次大赛对我来说可以算作一次真正的挑战。

记者:2010年举办的topcoder公开赛,你取得了一个不错的成绩,对此有什么感受?

楼天城:topcoder公开赛是世界范围内一年一度的编程大赛,2010年在赌城拉斯维加斯举行。我参加的其中两项不同的比赛都进入了决赛,一项是24小时的类似马拉松的Coding比赛,另一项是算法编程。这次比赛比较可惜的是,在最后决赛阶段犯了一个小小的错误,而滑到了亚军的位置。以后再有同样的机会,争取能够获得更好的成绩。

记者:请谈一下现在读博的感受。

楼天城:我从2008年开始在姚期智院士领导的清华大学理论计算机中心攻读博士学位,现在还处于学习和提高阶段,研究方向主要是以组合算法为主。总之,很幸运能够得到姚院士的指导,这段时光注定将成为我人生中最重要的阶段之一,我会用心努力做好每一天。

记者:除了编程竞赛,你之前还参加过很多数学方面的竞赛。有些人认为编程与数学没有太大的关系,你怎么看?

楼天城:可能是我们所遇到的问题不太一样吧。我遇到的问题多侧重于核心部分,往往比较抽象,对效率要求也很高,要解决它们,必须有深厚的数学基础,从这个方面来说对数学要求还是非常高的。

记者:你怎样看待编程竞赛?对有志于投身编程竞赛的人有何建议?

楼天城:编程竞赛是一个“公平、刺激、酷”的脑力游戏,除了能获得乐趣之外,还能很好地锻炼自己的思维,磨炼坚韧随和的性格。参加了多次竞赛,我真实地体会到它的残酷性。编程竞赛是顶尖高手之间全方位素质的较量,即使一时的状态不佳,也会让你与冠军失之交臂,最终换来的将是几年的漫长等待。但也相当刺激、公平。这也是我喜欢它的主要原因。我感觉自己很幸运,能够接触到这些编程竞赛。这种比赛形式,完全符合我的思维方式。在这十多年来,无论在思维的培养还是对性格的磨炼上,它对我都起了很大的作用。

至于建议,像我们这些靠理性思维来解决问题的人,平时过于依赖自己的计算能力,不相信定式、经验之类的东西。而实际情况却是,有一些凭借经验才能做到的事情,我们做得不够好,只是想当然地以为计算等于一切,结果却与目标相差很远。所以有很多非智力因素也需要去掌握。否则,你可能会因此而落后于他人。这算是我的一个建议。

另一个建议就是不要把参加竞赛当作上大学的一个途径。竞赛可以帮助你提高自学能力和综合素质,锻炼思维能力,也可以帮助你提高其他科目,但平时一定要注意协调好竞赛与其他科目之间的关系,不要把其他科目落下,不要让竞赛成为影响正业的事情。

(本文来自《程序员》杂志11年04期,更多精彩内容敬请关注04期杂志)

我的编程竞赛之路 ——中国大学生计算机编程第一人楼天城访谈相关推荐

  1. 中国大学生计算机编程第一人楼天城访谈

    我的编程竞赛之路 --中国大学生计算机编程第一人楼天城访谈 25岁的楼天城有"中国大学生计算机编程第一人"的称号,也被参加竞赛的学子们敬称为"楼教主".他的传奇 ...

  2. 中国大学生编程第一人-楼天城 | 世界顶尖黑客、曾被百度、脸书谷歌青睐

    有「中国大学生计算机编程第一人」的称号,也被参加竞赛的学子们敬称为「楼教主」.李开复说他是未来推动中国互联网产业发展的中流砥柱! 他的传奇经历一直激励着众多年轻学子 他的老师是美籍华人姚期智院士,而姚 ...

  3. 楼天城:中国大学生计算机编程第一人

    从楼天城到"楼教主":我更享受竞赛本身的快乐 5月12日晚8点多,在全球著名的在线编程竞赛平台--TopCoder的网络聊天室内,新增了一群来自中国的虚拟ID,他们正在热火朝天地用 ...

  4. 厉害!国内大学生计算机编程第一人,一人挑战一个队,百度最年轻 T10,现创业自动驾驶...

    作者 | 年素清 责编 | 王晓曼 封图 | CSDN付费下载自东方IC 出品 | CSDN(ID:CSDNnews) 他被公认为"大学生计算机编程第一人",是全球顶级黑客,是To ...

  5. 中国公认的大学生计算机编程第一人:楼天城

    楼天成 求助编辑百科名片 楼天成 楼天城,清华大学毕业生,是目前中国公认的大学生计算机编程第一人,经常以一人单挑一个队,在IOI.ACM界无人不晓其大名,人称为楼教主.TopCoder全球第一,虎视T ...

  6. 中国大学生计算机博弈大赛竞赛经验

    大家好,我是来自东南大学的小轩,目前是一名研二学生,专业是复杂系统与复杂网络.在全国大学生计算机博弈大赛中获得一次全国一等奖,一次全国三等奖,在全国计算机博弈锦标赛中获得季军一次. 我自2016年Al ...

  7. 一种全国产化军用计算机设计大赛,北科大新闻网-我校多支团队在中国大学生计算机设计大赛全国总决赛中斩获佳绩...

    近日,第九届中国大学生计算机设计大赛落下帷幕,我校参赛团队获得一等奖1项.二等奖6项.三等奖3项以及优胜奖1项. 在该项赛事的省级赛中,我校参赛团队获得北京市赛一等奖2项.二等奖7项.三等奖5项.赛后 ...

  8. 计算机大赛获奖团队采访,我朝天空|专访第13届中国大学生计算机设计大赛得奖学子——姜媛...

    原标题:我朝天空|专访第13届中国大学生计算机设计大赛得奖学子--姜媛 中国大学生计算机设计大赛,由教育部高等学校大学计算机课程教学指导委员会主办,始创于2008年,并于2018年纳入全国普通高校学科 ...

  9. 必看!嘉宾寄语 × 赛制 Q&A:2023年(第16届)中国大学生计算机设计大赛大数据主题赛 - 和鲸赛道 正式开赛

    导语:中国大学生计算机设计大赛 - 大数据应用大类 - 大数据主题赛 - 和鲸赛道已于 1 月 28 日正式开赛,作为协办方,和鲸特别邀请到了大赛组委会常务副主任杜小勇教授为广大参赛选手寄语,此外,我 ...

最新文章

  1. Linux常用压缩与解压缩命令
  2. 【转】python编码大坑详解2
  3. Failed to set NvVAD endpoint as default Audio endpoint [0]
  4. 纪念自己的第四个App:秘密Secret
  5. “分库分表 ?选型和流程要慎重,否则会失控
  6. 大数据测试之hadoop命令大全 2
  7. CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 树启 + 状压
  8. java获取panel面板画笔_java - paintComponent()与paint()和JPanel vs Canvas在画笔类型的GUI中 - 堆栈内存溢出...
  9. 飞鸽传书2012发展触摸屏技术发展迅猛
  10. Eclipse中使用google代码风格
  11. 【CART与GBDT】
  12. C++洛谷题解(24)——P1422
  13. 传真SIP会话发起协议(SIP)
  14. java migration_JetPack知识点实战系列九:Room数据库Migration
  15. 31.4k,这是我见过最强横的后台管理系统 !!
  16. 文件上传文件名乱码的解决方法及形成乱码原因
  17. Gravity 的测试调研 Gravity - TiDB
  18. ROS2-Foxy-配置
  19. Android MediaPalyer实现视频播放
  20. 江财计算机排名,江西财经大学排名

热门文章

  1. python开根号函数图像,使用matplotlib / python的平方根刻度
  2. Ansible学习笔记——vault加密
  3. 我的第一篇博文——写下我的规划
  4. 高佣次方递增营销联盟模式
  5. java.io.IOException: No such file or directory之linux权限问题
  6. FTP下载 550 Failed to open file
  7. English Proverbs
  8. Android动态修改icon
  9. 万维考试系统题库答案python_万维题库与试卷管理系统
  10. oracle 定义atp规则,ATP新积分规则详解