参加此次比赛,或许大家有各自的想法或动机,或是慕名参加嵌入式领域的这一盛事,或是为了保研加分之类的…… 参加比赛前,我就很清楚,比赛的结果对我个人并不重要,因为无论将来是获一等奖直接保还是二等奖加分,对我的情况都没有意义,因为我既没打算保本校也没打算继续在本专业学习。对于我而言,是纯粹为了一个可以继续锻炼自己、可以放手一搏的的机会。因此大三下学期这些日子,我对这次比赛给予了最高的重视,可以说,我已经尽了自己最大的努力。但和我们的预期目标来看,可以说,我们的确遭遇了失败。不过没什么,失败总是比成功更容易反思一些东西,或许失败后的反思、教训、经验才是最有价值的东西吧。现从如下几个方面总结一下:
一、知识方面的收获
去年国赛我做的是模拟测量方向,那时可以说是“白手起家”,从各种模块或器件的底层驱动写起,最后也有了不少规范化的模块软件积累,更重要在底层驱动软件的设计方面颇有心得。此次嵌入式比赛,我们的作品更偏于桌面软件设计,仅从知识方面说,感觉差不多也是“白手起家”,比赛初始仅会简单的VC 设计,但在将近三个月的参赛过程中,学习了新知识,同时也加深了对嵌入式系统开发以及软件设计方面的一些理解。
比赛初始,我就感觉我们的能力和作品要求的开发水平是有一定距离的。对于技术,我一贯的作风是“厚积薄发”,于是就根据自己负责的内容方面做了一个大体规划。我决定从基础抓起,系统学习一下windows 程序设计,扎实下基础。主要考虑到如下因素:一方面,如果只是为了拿奖而参加比赛,赛后肯定会觉得在知识方面很空虚。另一方面,实力是不是虚夸出来的,要想真正拿出高水平的作品,必须得有相应的学习历程,若积累不够,即是勉强拿出一个作品,在最后的调试阶段也肯定会问题百出而无法应对。从《面向对象程序设计》,到《windos 程序设计》、《深入浅出MFC 》,这基本砖头书我都系统学了一遍。虽然开始时队友有不同意见,但我还是按自己的计划实施下来,搞清了windows 程序的内部机制及基本程序设计方法,到比赛后期攻关及末期调试时,感觉已是融会贯通,得心应手。
更重要的一方面,我体会到了软件工程相关理论在实际中的具体应用,以前觉得空洞的软件理论突然感悟了许多,觉得都很实用,特别是软件工程的需求分析、模块划分、控制管理等方面的内容。比如有时感觉某个功能很明确却无从下手,那时因为需求分析不明,再比如,三个人共同开发一个软件,如何控制版本(不止代码,还有文档)?接口怎么协商处理?对此都有所体会和经验。
这次比赛我们的作品主要偏向于软件,这让我有机会去体验学习如何去参加纯软件方面的项目,去思考如何进行团队软件开发而不是个人单枪匹马地开发方式。
二、比赛感受最深的一点——别一开始就走错了路,打错了根基