华为2019软件挑战赛经验教训总结

与人共事,人是关键。

简述

这次比赛,我们队是由三人组成,我,徐同学,王同学。徐同学担任队长,王同学写了大量的代码。

为方便描述,后文用“队长”来指代徐同学,用“主程”来代指王同学。

在3.10左右,队长来联系我和主程时,队长说他不会编程,他来提供算法,让我和主程来实现。当时考虑到队长的履历还不错(本科厦门大学数学系),我和主程就答应了。

所以最开始的工作分配是,队长负责算法,主程负责主要的程序编写,我负责少部写分代码、版本控制、编译+测试、把主程的代码修改成符合题目要求的代码。

最后的结果是,我们做出来一个有成绩的版本,然而由于队长没有做版本控制,把这一版本覆盖掉了,导致最后我们连任何成绩都没有。我和主程心态崩盘。

教训一:算法要优先于代码

如前文所述,刚开始讨论具体怎么做时,队长就要求我们先把基础的代码实现,算法可以慢慢调优。而我和主程的认为,要先有大概算法,再考虑具体实现。

不过由于队长一直没有拿出来高效的算法,实际上是我和主程先写的代码,直到最后比赛结束,队长仍然没有给出一个切实可行的算法。

所以以后再做项目时,我学到的教训是,如果以结果为导向,持有一种成王败寇观点的话,算法要优先于代码。如果没有好的算法,建议从一开始就放弃。

教训二:人员选择很关键

教训三:项目管理是学问

教训四:提前想好代码架构

这部分我来背锅,一开始没有理解比赛

教训五:测试很重要

教训六:注意版本控制

教训七:心态要放平

教训八:调参不靠谱

教训九:

后记

我文笔不好,这篇文章也是反复改了很多次才最终发布出去。一开始在写的时候,有很多带有情绪的话,后来自己不断反思,有成绩固然高兴,但是失败了也要心态放平。不要用过去的事来影响将来的心情。所以我选择彻底冷静下来之后再发布这篇文章。