比赛失利了以后

今年参加了法国最佳程序员(Meilleur Dev de France)比赛,结果第一轮就惨遭淘汰,非常可惜,总结一下失败的教训,希望下一年能比的更好。

之所以止步第一轮,有几个主要原因。

首先,是太在意得失了。第一次取的了不错的成绩,大伙包括自己,都有很高的期待。开赛前,老板还给我说,如果进了前二十就请客吃饭。越是在意得失,就越难集中注意力。

除了心态,另外是解决问题的方法。越是到关键时刻,越不能像无头苍蝇一样乱撞。乱撞的成本太高,这次浪费了不少时间,纠结是大于等于,还是纯大于的一些操作上。越是乱,越要冷静的思考,可以画个图,演算一遍算法,每个细节都要有理论的支撑。

冷静之后,还要提高考虑问题的层面,不要着急的直奔方案,而是要先申清楚所期待的输入输出,避免做一些错误的假设。如果开头的假设,是不正确的,就像盖楼一样,盖得再高,也要推到重做。具体的来讲,就是可以花上一分钟的时间,把题目举得例子都先扫一遍。

最后一个原因,就是生搬硬套。这些年来,大大小小的比赛也参加了不少,自己也积累了一些常用问题的解决办法。可过多的依赖已经写过的代码,也是有风险的。已经写过的代码,往往是经过提炼和抽象,解决一类问题的。如果要重用这些代码,必须把现有的问题转化成既有方案能适用的样子。这个转化的过程,很容易拖慢解题速度。比如这次我遇到的问题,其实是一个很简单的深度遍历的问题,如果生写代码,几分钟也就能搞定了。我却过度的依赖一个已有的框架,做了一些转换,结果转换的过程中,出现了一些差错。

可归根结底,还是平时训练的少,自己如果真的掌握的已经炉火纯青,也不至于在压力的情况下就败下北来。

失败的滋味,很不好受,特别是这种有排名的比赛,就觉得你都工作七八年了,还比不过,那些还没有毕业的大学生,情何以堪!当天晚上回来,就一直懊悔,为什么会犯那么低级的错误。虽然会难过,但也会暗示自己:不能只注重结果,过于的在意输赢,很容易就导致一个人在失败的时候,完全放弃。参加比赛,更重要的是激励自己平时的积累,保持思维的敏捷,学习不能停。失败了,就意识到了不足,继续加油!