偶尔也要写一些怀旧的文章(4)——计算机竞赛

上一篇怀旧文章写的是游戏(上)篇,这次的怀旧文章先跳过游戏这个话题,主要来回首一下我中学时期参加各种计算机竞赛的经历。虽然这些经历在之前的博文中都或多或少地提到过,但是这里还是把它们串联起来好好回顾一下。

初中的信息课上,老师说有一个全国性的信息学竞赛,问是否有同学有兴趣参加。由于父母给我买了一台电脑,于是我就举起了手,同时举手的还有另外一位女同学 Y。下课后老师把我们叫过去,说我们参赛的语言是 BASIC 语言,你们先买本书学习一下吧。放学后我跑到书店去买书,当时的我啥也不懂,也没说清楚需求,当时 VB 相当火爆,店员给我推荐的是一本 Visual Basic 的书籍,我随意翻了一下就带回去了。后来发现比赛是用的 QBasic,不过我并没有让这本书吃灰,反而饶有兴趣地学了起来。现在回想起来,如若不是可视化编程环境勾起了我对软件开发的兴趣,即使以后还是走上了码农这条道路,在中学时期的这段宝贵经历也完全体会不到吧。

初中时参加信息竞赛的人并不多,于是我和 Y 同学没花多少功夫便轻松进入了复赛。记得复赛当天,老师慌慌张张地跑过来告诉我们说今年的上机评测的规则改了,是使用文件输入输出的黑盒测试。当时我们并不知道怎么用 QBasic 去操作文件(练习的时候都是屏幕输入输出),黑盒测试意味着你没有输出的话,不管怎样都得不到分,所以当年绝大多数人都是得的零分。由于复赛大多数人几乎是零分,所以没法评奖,最后是按照初赛成绩设置的奖项,我也莫名其妙地得了一个省二等奖。

到高中时,信息学竞赛便被不少人重视起来,因为按照当时的高考政策,竞赛得了一等奖是可以保送到某些大学或是高考直接加 20 分的,于是我便有了高中的两次参赛经历。

高一时去长沙下属的县级市浏阳参加复赛,同行的还有几个高年级的学生。我的姑姑正好住在浏阳,因此我的父母便陪同我一块到浏阳去了。学校为我们在赛点周围安排了宾馆住宿,与我同一个房间的是一位高三的学长。当晚他跟我说,这个比赛玩玩就好,不要看得太重要。当时我并不理解他说的话,因为关系到切身利益,我们对比赛是非常重视的,怎么会玩玩就好?比赛完后觉得自己做得不错,毕竟是第一次参加提高组(高中组)的竞赛,很多东西都不懂,而自己又做出来了一些题。比赛完后父母和姑姑、姑父到赛场外面来接我,他们并不太关心我考得怎样,于是带我在浏阳玩了一会。其实家人并非不关心我的成绩,只是他们不想给我任何压力。同其他望子成龙的家庭一样,家人在我身上很舍得花钱,不过与大部分家庭不一样,他们至始至终随着我的兴趣让我自己选择,只是想要我过得开心就好。

最终我拿到了一个二等奖,离一等奖差 20 分,也就是差两个测试点。其实要拿到这两个测试点的分是很容易的。例如最后两道不会做的题,你按照样例随便输出一个常数便经常能混到一二十分,或者某道题考虑一个很简单的情况也能拿到一两个测试点的分数。虽然有点可惜,但毕竟还有机会,所以我也没放在心上。

高二参加竞赛时,便感觉到压力倍增,因为这也是我的最后一次机会,我也花了不少心思在比赛上,不想让自己的努力付之东流。部分同学大概也看出来我有点紧张,在我去参加复赛的前一天,P 同学跑到机房来给我送了一袋水果,W 同学则在学校的小卖部买了一个棒棒糖给我,说祝我好运。

于是我满怀期待地再次来到长沙参加复赛(此时由于赛点不在浏阳而在长沙市区,家人便未同行了),可是当天由于太过紧张加之肚子不舒服,导致并没有发挥出理想水平,便再次得了一个二等奖。记得当时带我过去的信息老师还问我是否要等成绩出来再回去(由于是机器自动评测,因此比赛过后两个小时左右主办方会把测试的成绩贴在门上),我说好吧。当我看到最终成绩的前几名全是 400 分满分时,我便知道了差距。参加完比赛回家,吃过晚饭后我倒头就睡,一直睡到第二天早上。妈妈说从来你从来没有睡得这么死,看来你还是有不小的压力把。

后来我认真分析,发现得奖的人几乎都被长沙几个有名的学校垄断,而全省的其他学校每次比赛只能偶尔出现一两个人得一等奖(相较于全国其他的省,湖南省的一等奖名额是非常多的,因为平均成绩高,即使名额多,分数线也比大多数省的高)。这些学校都有专门的老师培训信息竞赛,而省里大部分其他学校又没有这种培训体系,不像我们这种野狐禅完全靠自己的兴趣瞎搞。这也就是为什么那么多的家长这么看中孩子的教育,一定要去好的学校,有好的老师教导,对于考试乃至比赛来说,没有掌握好的方法或是引导到好的方向,是很难在竞争中胜出的。

从我自身的角度来说,也有不少原因导致没有拿到理想成绩,原因是:(1)没有抓住重点,这个比赛非常喜欢考动态规划和数学算法,而我又把大量精力放在了压根没考几次的图论、二叉树上;(2)基本功不扎实;(3)比赛太过于紧张。

如果说信息学竞赛完全是因为能力不足而失利,那么高中时参加的另外一个比赛——电脑制作活动则是另外的故事了。

高一时教其他年级的一个信息老师对我说,你的能力不错,可以考虑参加一下“制作活动”这个竞赛,如果能得到全国前十名,高考便可以加分。抱着这份期待,加之自己的兴趣,我便毫不犹豫地报名了。制作活动有好几个参赛类别可供选择,对于高中生来说,有动画、网页和程序设计可供选择,我自然是参加“程序设计”了。“程序设计”是按照你自己的想法做一款贴合高中生活实际的一款创新产品,每个省选出几个作品报送到全国参加评选,最终确定获奖名单。

我想了很久不知道做什么。有一次和小学同学 T 出去玩的时候,T 和我说,既然是贴合学习生活,那不如你做一款提升学习效率的软件。这个提议让我很是欣慰,有了灵感后立即全身心投入到开发中。做了一段时间后觉得做得并不好,首先思路比较乱,做的东西看上去东拼西凑;其次是界面实在是太丑陋,每个界面都是毫无设计感的按钮+文本框堆砌而成。我当时找到班里的某些同学,听取他们的意见。按照同学们的意见,我把软件分成了四个板块,每个板块里有四个功能,为了增加趣味性,还在里面做了一个射击的小游戏,看上去总算像那么回事了。上文提到的那个给我送水果的 P 同学还给每个功能专门写了介绍性的文字,我把这些介绍以滚动文本的形式加入到界面中(P 同学的文学功底很好)。在界面上,我也下了很大功夫,在网上找了很多图片素材,凭借自己毫无艺术细胞的审美在 Power Point 里调来调去,虽然算不上好看,但至少活泼鲜明。

当时我做这个软件是花了非常多的心思的。后来据妈妈回忆,我几乎是整整忙活了两个多月,每天一放学回来就打开电脑,经常做到十一二点,第二天早上五六点就爬起来,做到七点多去上学。这个软件现在还能比较完美地运行在 Windows 10 的电脑上(^_^)。

作品提交后被省里的评委一眼相中,邀请我去长沙参加复试,父亲也陪同我一块参观我的答辩。这个复试实际上就是确认这个东西是不是你自己做的,我记得我的复试题目是,给你的程序加入用户登录功能,当时湖南省的程序组一共只有四个作品去复试,最终复试的时候评委还毙掉了一个,所以最终湖南省就选了我们三个作品去参加评选。

然而比赛结果出来后,我被排在了第 11~20 名,也就是没有进入前十,这令我大失所望。我当时还跑到一个比赛的论坛里询问我的作品有哪里做得不好,于是得到了一个这样的回复:

“好孩子,离开这里吧,在这里你找不到你寻找的东西!想一想,某位老师为你说了句话,你就连后来补充的三个都没进去!那位老师不小心还把一个已经上榜的他认为好的作品也拉下去了,你明白是为什么吗?但愿你不明白!
“好孩子,离开这里吧,记住你是优秀的!如果你能从这里悟出一些让社会认可你优秀的方法,你就不白来;如果你从这里走出去之后还能坚持诚实努力,你就一定能成功!”

这很明显是在说比赛的黑幕,能入选的基本都是关系户。但当时还是高一的我并不理解他说的是什么意思,我跑过去问带我去参赛的老师,老师只是说:“我也不知道,这也没办法啊。”很明显,老师是知道的,她只是不愿意告诉我这个残酷的现实而已。不过没过多久,我自己便悟出来了。因为在我看了排名前十的作品后,发现了几个猫腻:(1)半数以上的得奖作品(前二十都有奖,这里指排名前十,因为只有前十高考才能加分)都是某市某个学校的;(2)有一些作品完全不可能是高中生做的,一看就是一个需求、功能做得非常完善的商业软件(例如我记得有一个取暖收费的,这也叫贴近学生生活的作品?),还有一些粗制滥造的作品;(3)和我一同送过去的其他两件作品水平比我不知道高到哪里去了:一个是至今仍然火爆的信息竞赛评测平台,另一个则是一个高中生自己写的操作系统引导程序和驱动,还有自研输入法。我的作品和他们的一比简直是小儿科,而他们并未获奖。

虽然有些心灰意冷,但我还是决定高二再次参加这个比赛,此时我并不想要得奖,参加完全是为了自己的兴趣。高二时我花了一些时间学习了 OpenGL,知道怎么去绘制三维图形,配合高中数学正在学习的立体几何,各种空间坐标系正好有了用武之地,设计了一款三维的演示软件。

于是我又被邀请去了长沙参加复试,此时省里只选了我这一件程序作品,便省去了测试环节直接让我上台答辩。我演示完我的作品后发现程序设计的评委还是去年那位老师,这位老师一上来就直戳痛点问了我几个尖锐的问题,不过好在我反应快,回答得都比较好。在我临走时,这位评委说:“我看你还设计了一个向导的功能,挺用心的,做得非常不错。”

比赛的结果当然是以各种黑幕告终,但是这位评委说的最后那句话,还是多多少少地改变了我做事的态度。

他提到的这个“向导”功能是我做了很久自己都不太记得的一个功能,而且是隐藏在某个菜单里,这位评委居然都看了,可见他在看我的作品时的用心程度,所以也直接能提出一些比较尖锐的问题。

之前的我太过于功利化,做事情都想要实现自己的目标以得到想要的利益。如果仅仅是为了得奖,只要把主要的功能做好,这些边边角角的需要花一些小心思的小功能完全没有必要去做。但是这位评委为我做的一个不起眼的小功能叫好,说明我在每一个细节上做出的努力,都会有懂得欣赏它的人去品味。 在此次比赛中,有这位非常赏识我各个方面努力的评委,有在全国评奖过程中压根不认识我而为我的作品打抱不平的老师,还有在论坛里教我做人做事的人。 所以我决定做好每一处我能做好的细节,以不辜负这些人对我的期望。

现在高考取消了这些竞赛的加分项目,显而易见地会使原先因为高考加分而参加比赛的学生避而远之,名校里的各种“培训班”也成了明日黄花,此时还能冒着耽误高中学业而参加比赛的应该大多都是真正有兴趣的人吧。然而不可否认的是,如果没有这些功利性的因素,我也不大会在意这些比赛,即使有兴趣,也不会像当时花那么多心思。

回首中学时参加的计算机竞赛,我似乎并没有达到自己预先设想的目标,反而使我认识到生活并不是为了这些名利,而是更加重要的东西。

与我一同参加制作活动的那两位选手,由于社会的现实而未给他们应有的荣誉,但是凭借他们过人的眼光和出色的技术水平,我想现在应该过得相当不错吧。也许他们仍然未得到社会上普遍认同的名利,但大隐隐于市,能做自己真正想做的事情,难道不是一件很幸福的事情吗?

对于我而言,我有一直支持我的家人,有关心我、看着我成长的老师,还有一群一直陪伴我做任何事情、一起长大的好朋友。

时至今日,我和他们很少回忆起这段往事,因为我们一同走过的路太长,共同经历的事情太多。当时挂在树上让我垂涎已久的果实,在整个旅途中只是一处风景罢了。

✏️ 有任何想法?欢迎发邮件告诉老夫:daozhihun@outlook.com