2008年Intel杯嵌入式邀请赛赛后总结

来源:互联网 发布:suse linux ftp 安装 编辑:程序博客网 时间:2024/05/22 15:39

参加此次比赛,或许大家有各自的想法或动机,或是慕名参加嵌入式领域的这一盛事,或是为了保研加分之类的……参加比赛前,我就很清楚,比赛的结果对我个人并不重要,因为无论将来是获一等奖直接保还是二等奖加分,对我的情况都没有意义,因为我既没打算保本校也没打算继续在本专业学习。对于我而言,是纯粹为了一个可以继续锻炼自己、可以放手一搏的的机会。因此大三下学期这些日子,我对这次比赛给予了最高的重视,可以说,我已经尽了自己最大的努力。但和我们的预期目标来看,可以说,我们的确遭遇了失败。不过没什么,失败总是比成功更容易反思一些东西,或许失败后的反思、教训、经验才是最有价值的东西吧。现从如下几个方面总结一下:

 

一、知识方面的收获

 

去年国赛我做的是模拟测量方向,那时可以说是“白手起家”,从各种模块或器件的底层驱动写起,最后也有了不少规范化的模块软件积累,更重要在底层驱动软件的设计方面颇有心得。此次嵌入式比赛,我们的作品更偏于桌面软件设计,仅从知识方面说,感觉差不多也是“白手起家”,比赛初始仅会简单的VC设计,但在将近三个月的参赛过程中,学习了新知识,同时也加深了对嵌入式系统开发以及软件设计方面的一些理解。

比赛初始,我就感觉我们的能力和作品要求的开发水平是有一定距离的。对于技术,我一贯的作风是“厚积薄发”,于是就根据自己负责的内容方面做了一个大体规划。我决定从基础抓起,系统学习一下windows程序设计,扎实下基础。主要考虑到如下因素:一方面,如果只是为了拿奖而参加比赛,赛后肯定会觉得在知识方面很空虚。另一方面,实力是不是虚夸出来的,要想真正拿出高水平的作品,必须得有相应的学习历程,若积累不够,即是勉强拿出一个作品,在最后的调试阶段也肯定会问题百出而无法应对。从《面向对象程序设计》,到《windos程序设计》、《深入浅出MFC》,这基本砖头书我都系统学了一遍。虽然开始时队友有不同意见,但我还是按自己的计划实施下来,搞清了windows程序的内部机制及基本程序设计方法,到比赛后期攻关及末期调试时,感觉已是融会贯通,得心应手。

更重要的一方面,我体会到了软件工程相关理论在实际中的具体应用,以前觉得空洞的软件理论突然感悟了许多,觉得都很实用,特别是软件工程的需求分析、模块划分、控制管理等方面的内容。比如有时感觉某个功能很明确却无从下手,那时因为需求分析不明,再比如,三个人共同开发一个软件,如何控制版本(不止代码,还有文档)?接口怎么协商处理?对此都有所体会和经验。

这次比赛我们的作品主要偏向于软件,这让我有机会去体验学习如何去参加纯软件方面的项目,去思考如何进行团队软件开发而不是个人单枪匹马地开发方式。

 

二、比赛感受最深的一点——别一开始就走错了路,打错了根基

 

这次比赛给我的一个最大的体会就是一定要仔细考察论证你的作品或设计是否最适合主题。此次比赛我们没能够拿一等奖,我的分析是:一方面,我们的作品在机电一体化综合方面做得不足,太偏向于软件(当然,这一定程度上受开发板条件的限制),和一台PC几乎差别不大,这和嵌入式应用的主题有一定偏离;另一方面,我们的核心算法自然语言理解属于比较专的方向,是否能打动绝大多数电子信息专业的评委就是个问题。这个选题本身演示效果就不是很明显,尽管在自然语言理解上面花了较为主要的精力,但是感觉我们没能够让评委对我们的作品在这一方面有足够的认可度。

由此给我最大的启发是:做产品市场定位要准,创业最最成熟的时机是有一天你拍着自己的脑袋说:“这可是一个绝好的对头的创意!”。正如这比赛,从拿奖的角度讲应当切合主题,要让绝大多数评委能对它的价值进行认可。当开始实习或实践时,会觉得具体去实现一个系统或项目很难,无从下手,但是做得多了,你会发现只要方案、策划合理,实现是相对容易的,而如何将相应的技术创新性地转化为最合适的产品才是最需要考虑的,也是最难的。

 

三、关于对基础及技术积累的一些想法

 

语音的这个选题之所以不合适,一方面是因为和“嵌入式”联系不够明确,另一方面就是因为我们没有充分结合自身优势,充分利用以前的技术积累。赛前尹老师给过一个比较好而且有指导性的建议:“选题时要像研究性方面偏一些,而不要只是简单的模块堆积”。我们的选题应算是做到了“研究性”这一点,但却忽略了更重要的一点:在研究性上突破最好是在用已有的技术积累优势前提下,选题时不能因为过分强调新颖而抛弃以前的基础。

自从去年参加完全国电赛后,我就有在自己更加感兴趣的方向上更深入地纵向学习与积累这种意识。以前我涉及的方向比较多,矩力杯时做小车,属控制方向,电赛是模拟测量,更偏硬件及底层软件,此次嵌入式又更偏于桌面软件。几乎每一次赛事都是新知识由零开始学起。通览各方面知识是必要是有好处的,但要想走得更远,让自己更加具备竞争实力或想在某一学科有所建树,我觉得有必要在一个领域的具体方向做深入学习或研究。

正是基于这种想法并结合自身兴趣,我决定将来读计算机专业的研究生,希望未来几年能在自己喜欢的这一领域做些更深入的学习或研究。之所以选择考研,是因为我想通过系统全面地复习计算机方面理论知识来弥补或完善自己的专业素质。将来则可以找到更具体的方向,并坚定不移的走下去,积累下去。

 

四、团队合作方面的经验及不足

 

这次比赛中,我们的团队在交流沟通、分工安排等方面做得还可以,这也许是吸收了去年国赛的经验教训的缘故吧。关于是否应当专门开例会的问题,有这么个规律:三个人尽管天天坐在一起,打闹贫嘴,无话不说,但是关于总结讨论进度、整体上遇到的问题任务安排等方面的内容谈论得却比较少。因此,我们团队坚持开例会,开会时间是相当灵活的(一开始比较固定反而觉得效果不是很好),地点也比较灵活,办公室那个会议间非常适合,但吃饭时、到操场上边走边说也不错。开这个会要求停止手中所有的活,只有这样稍事严肃地讨论问题,会议才比较有效果。开会的目的就是大家总结一下进度,讨论下步规划。遇到了重大问题也可召在一起讨论。比如我们正是通过开这样的例会确定三人的分工安排,通过例会来总结平时的进度,通过例会确定作品特色的定位,通过例会来讨论哪些模块该做哪些模块该舍弃等等。

我们三个人都很明确每个人的个性、做事方法的确有很大差异,因此意见不统一甚至发生争执的情况是免不了的。这种情况,有些决定应本着民主原则,少数服从多数。实在不能统一的就要请其他组员、师兄或老师帮忙裁决(比如那个布熊套的装与不装的争执)。

此次比赛还给我们一个去学习和思考针对软件开发,团队合作方法的机会。软件开发对团队合作的要求似乎更高,捍卫自己代码完整性永远是程序员之间无休止的争端,程序员一般在开始时都不喜欢用别人的代码,同时又不希望别人对自己的代码无所谓的改来改去。软件开发团队管理的核心即人的问题,这一点上,谦让与信任是相当重要的,我的原则是只要代码在稳定性及质量上差不多,应当尊重原创,由该模块的主要负责人做决定用那一段,这是因为很多时候不同人的代码仅是风格不同,但汇编之后实质是差不多的。关于代码的争执还有个解决办法,就是要有一个公共代码段的维护者,原则性的东西择优使用,非原则性东西就尽早决定,防止浪费无所谓的时间。队友之间应当时刻充分信任彼此,相信对方的模块能够很好地达到预定功能。另外,关于版本控制也有些许技巧,我们的程序经历了几十个版本的升级,论文文档也经历了不少版本号,三个人一起写,如何划分及衔接好各自内容,这些都需要仔细商量和约定好,否则便会引起软件的混乱不堪。

在团队合作方面我们也有不足的方面:

感觉此次在比赛过程中我们的个人自由空间处理的不是很好,比如在拿到免考的“尚方宝剑”后,一开始去上本专业课就会觉得自己是在浪费时间,甚至会感觉有些对不起团队。这也是没有争取处理好课业与赛事的关系,无形中造成了心理压力。

还有个难点,就是如何充分调动整个团队的积极性。让团队的每个人保持信心是相当重要的,而我们这一点做的不够,在比赛的后期,队友对作品信心不足。这也直接影响了我们对待比赛的态度。归根结底,还是团队文化的问题。感觉我们的团队在目标定位、斗志方面存在不足。

 

五、对基地的一些想法和建议

 

1)关于基地在与导师及实验室结合方面的建议

这次比赛有很多参赛队把比赛和导师实验室项目结合起来,无论是在资金技术支持上还是项目的实际意义上都有很大优势。而我们基地的参赛队主要是学生自己在做,作品选材也是自己定,不能够借助发挥学校实验室及专家资源的优势。

既然根据基地的实际情况无法直接与实验室项目结合,但我觉得经常邀请专家、教授对我们的比赛进行选题指导、模拟评审就可以发挥很大的作用。大家都知道,知识性的东西自己都好学,难的是该学什么,做什么,即导向难。而这些有时是较短时间专家教授一两就可以点拨的。具体来讲,就是在开题评审及后期测试改进时不能只靠单靠师兄,最好能多请些相关专业的教授和老师。师兄的研究经验毕竟有限,毕竟在知识层次及经历方面和竞赛最终评委专家的有较大差距,而学校的教授老师则可能和竞赛评委的“口味”更接近些。

因此引进导师,我认为不必非得把学生跟实验室绑定,导师可在两个方面发挥作用:前期选拔,选题定向,后期验收评价,指点一般少而精;平时遇到问题学生自己找老师去请教学习。就这两个作用,已经很够了。

 

2)关于引导形成重视理论和基础的学术氛围的想法

很多同学在理论应用方面有所短缺,太依赖于经验,比如在调试时宁可不断对器件参数调来调去也不拿笔算一下(瞿老师说过的,他认为基地这个普遍习惯应当改一下)。似乎大家更喜欢感性的东西而忽略理论方面的内容。总想立马见到效果而忽视标准规范方面内容。

这是不好的习惯,会造成了正如此次比赛这样的后果:搞个数据库搜索匹配就认为和模式识别匹配上了,而专家并不认同你的技术含量;搞了长时间的图像处理,想破脑袋,做了很大的工作量与努力,认为得到了很好的结果,但实际上翻开任何一本图像处理的书,这些结果早就早有更好的先例,只需花小一会阅读时间就可学会并应用了,这都是对理论或基础不重视的后果。此方面可以靠学风引导以及平时训练内容的调整来解决。

 

3)新生培养方面让他们尽早树立长远目标,及早规划

有个建议,即总结会上说的,在基地同学大一时就把他们那届可参加的各种赛事统计下来,把时间分布说清楚,让他们每个人心里都明确的有个底。这样的好处有如下几点:

可以帮助同学们对在基地的整个学习时间做一个明确的规划,并把这个规划融入到他们大学四年的规划当中。现在有不少学弟跟我说他们现在很迷茫,不清楚将来可参加什么比赛,对于选择什么方向很困惑。这主要就是缺乏对基地培养内容欠了解以及缺少规划造成的

可以帮助他们设定自己的理想,培养他们的雄心壮志,拿师兄的成功案例来开拓他们的视野,让他们一开始就敢去想并渴望参加国际级的盛大赛事。这样,不至于在后来的参赛选择中跟风,这边折腾下,那边搞一点,造成技术积累有广度而缺乏深度的后果,最后参加重大比赛时拿最高奖的实力又不够。

可以吸引更多的人留在基地,让同学们尽早尽快了解基地,让他们在基地埋下深深的梦想种子,让他们有长远的目标,他们能不坚持下来吗?

 

4)在基地管理方面的想法

大二时有几个同学决定不在基地这边搞,他们打算去机械基地或控制系基地,我问过他们为什么退出,他们说基地这边太庞大,没人管也没人重视。这件事就让我想到了助管,做助管一般都在基地发展地比较好,那助管的根本优势在哪里?——我觉得是信息。做助管可以更快的熟悉基地,与师兄更熟,与尹老师更熟,得到的参赛及指导交流信息更多,因而也更容易得到基地的资源。如何让基地的信息资源更加公平的让更多人知道,以便让基地涌现更多的精英,我个人认为在这一点上值得考虑改进。

尹老师对学生也不一定都了解,看表面现象是不够的。是在努力,还是在偷懒,有时也看不出来的。在参赛的日子里,我个人感觉,我们三个组呆在一起创造的整体氛围不够好,一方面,功利和浮躁多了些,多种比赛一起搞;另一方面,对自己不能有较客观正确的了解,有些自大,缺少谦恭实干的态度。而这种备赛氛围是直接影响到竞赛结果的。

基地的氛围自由开放是好事,但最好应适当引入危机或竞争。不听话的问题跟这有些关系,危机责任感不强。为什么到最后关头会比较出效率?有危机感了,自然会紧张起来。

5)走出去,学习他人的优点

很多兄弟学校来参观学习基地先进的管理及教育模式,甚至他们会有所创新的引进过去。咱们基地的学生应当思考下:硬环境培养实力都一样了,我们在“软实力”上应如何同别人竞争?我们的核心竞争力应在哪里?在聊天时,有人也建议我们应当到兄弟院校学习下,比如到武大去,让咱们的学生与他们的学生进行竞技状态的交流,激励下自己。

总体来说,基地在文化等方方面面的实力还是相当雄厚的,以上是我个人对一些可能存在的的不足之处的思考及建议,其中肯定有不少偏颇之处,但还是希望能对基地建设方面有所参考。

 

三个月的奋斗历程,是三个月的学习过程,更是三个月的不断成长以及成熟的过程。这次嵌入式邀请赛将是我大学阶段非常珍贵的经历财富。为了继续积累知识和更深入地学习,我选择了考研,将会暂时离开基地。总结会时尹老师的教诲,我牢记在心:“别忘了你们是从基地出去的,你们是能吃苦的人、能战斗的人。”基地培养了我,让我在知识、能力方面都收获颇多。考研是一个人的战斗,我将会和在基地一样,以我的激情、信心、勤奋与坚持来面对它,继续努力奋斗!