文 | 雪球首席架构师 唐福林
我有一本《算法艺术与信息学竞赛》,作者签名版。不是普通的作者签售,只签了作者名字的那种,而是写了我的名字作为抬头,有单独的寄语。这是我的书架中最宝贵的一本书。
那是 2003 年底,我在北京过的第一个冬天,感觉很冷。身体冷,心也冷。刚刚过去的 2003 年夏天,高考失利的阴影依然未能散去,考的不如预期,分不低,但因志愿填的“不服从专业调剂”而落榜,依靠 NOI (国家信息学奥赛)的获奖而被补录到北师大。来到大学,曾经所有骄傲的过往都成了往事,再也不是老师眼中的尖子生,再也不能轻松拿高分,我变成了以前自己嘲笑的对象:非常努力的学习,却怎么也追不上前面的优等生。
唯一的安慰是,我还在做编程比赛。只是比赛的名字从 NOI 换成了 ACM,比赛的形式从单人作战变成了 3 人的队伍,比赛用的语言从 Pascal 换成了 c/c++。在师大的 ACM 集训队里,牛人很多,我依然不是主力,只能非常努力地追赶,努力地保持自己的位置。每天上完课后,我都会跑到位于演播楼里的集训队训练室里默默地码代码。一度短暂地上过 poj(北大在线题库)排行榜第一页。真怀念那些年在 poj 上玩各种搞笑 Nick Name。
那段时间那些牛人队友们给了我很大压力,同时也给了我很大的动力。还有一些经常一起做题一起讨论的朋友,和一些久闻其名但一直无缘得见的前辈。《算法艺术与信息学竞赛》的作者刘汝佳老师就是这样一位前辈,虽然我们年龄相仿,但他大一时即参加 ACM/ICPC 国际大学生程序设计竞赛,获得 2001 年亚洲-上海赛区冠军和 2002 年世界总决赛银牌(世界第四),并担任 2002 年和 2003 年北京赛区裁判。
我对他仰慕已久,终于因偶然的机会见了一面。当时我们相谈甚欢,临别时我主动跟他说希望能送我一本他新写的书,由于书还没有正式出版,他答应说等第一批样书印出来就送我一本,让我帮忙找找有没有印刷错误。后来果然收到快递送过来的书,打开一看,还有作者的亲笔签名和寄语。
这本书陪伴我度过了后来 ACM 所有的时光。ACM 比赛时,每道题都会分配一种颜色的气球。当某个队伍做出这道题后,就会在他们的桌子上挂上一个气球。比赛过程中可以抬头看见别的队都挂了哪些颜色的气球,从而知道他们都做出了哪些题。《算法艺术与信息学竞赛》,和我一起见证了那些飘荡在赛场中的五颜六色的气球,那些 Accept,Wrong Answer 和 Time Limit Exceeded(注1),那些快乐和失落,那些荣耀和沮丧。
两年后的 2005 年冬天,ACM-ICPC 北京赛区,我带领的 Bnu Arbiter 队获得铜牌。走出赛场后,我登录 poj,最后一次修改签名“停止做题,离开 acm--2005 年 11 月 13 日 晴”。从 2000 年高一第一次接触编程,到 2005 年底以这样一种方式结束,我觉得自己还有遗憾,但是已经可以结束了。
后来的日子里,我依然写着各种各样的代码,从 PHP 到 C,从 Java 到 ObjC 。偶尔我还会想起那些算法,虽然我再也没有写过它们。
11月28日,唐福林在“UPYUN 架构与运维大会『北京站』”的架构产品专场发表了题为“关于java运行时容器的一些想法”的精彩的主题演讲,文中的这本《算法艺术与信息学竞赛》也在会议现场进行了展出。
注1:含义见 Frequently Asked Questions Answered
查看&下载他现场分享的课件请访问:http://lock522.b0.upaiyun.com/tfl.pdf