退役10年,OI对我意味着什么?

我从来不谈论自己是一名竞赛选手,因为我只是高考纯裸分考入的上海交大。然而,我也有过一段不长的信息竞赛(OI)经历。

我从小学开始学习编程,但由于身处西部山区落后地区,我身边没有人能够指导我的编程学习。因此,我只能自己摸索学习资料和方法。在相当长的一段时间里,由于能力有限,我只能开发一些简单的玩具项目,走了一些弯路。直到初升高的时候,我才了解到参加竞赛能够拿到加分、降分、保送等升学的机会。结合自己的兴趣,我果断选择了参加学校的信息竞赛队,开始接受系统性的学习。

与我很多竞赛同学不同,他们从小升初就开始学习竞赛,并最终取得了非常优秀的成绩,拿到了北大的一本线录取资格。而我由于入门时间较晚,高一时只拿到了55分,高二才够到了NOIP省一的线。成绩公布的当晚,班主任果断劝退我继续投入时间在竞赛上,让我全身心地回归高考。随后,在高二暑假和高考后,凭借省一的资格,我参加了北大的夏令营和自主招生,但最终没有被录取。

10年过去了,回顾过去的经历,OI对我产生了不可磨灭的影响。那么,OI到底对我意味着什么呢?

虽然由于OI代码仅为一次性解题使用,我一度养成了粗放的编程风格。直到大学后,我通过学习《Clean Code》和架构设计等书籍才得以克服这个问题。

然而,从好的方面来说,OI经历对我来说有着几个宝贵的财富。

首先,它让我坚定了在计算机专业课学习的信心。对许多同学而言,大一的C++课程是他们第一次接触编程,很容易感到不适应。例如,我的本科室友就因为学不会编程而放弃了计算机专业,转而选择了能源动力专业。而我在C++、数据结构等课程中取得了出色的成绩。正是因为有竞赛奖项的支持,我才能够在学分不高的情况下成功转入相关专业。

其次,它让我养成了追求极致性能的习惯。在个人项目和日常工作开发中,我会思考性能更优的实现方案。例如,在Golang中,我会选择使用类型断言,而不使用JSON Marshal/Unmarshal。我相信这种习惯将使我受益终身。

OI经历对我来说是一段宝贵的历程,它塑造了我坚定的学习态度和追求卓越的精神。我将一直珍惜这段经历,并将其应用于我的学习和工作中。