嵌入式C高质量编程培训心得笔记

转自新浪博客

随着设备类产品的硬件差异化越来越小,软件对于产品的价值贡献会愈见突出。公司一直致力于的电力二次设备及一二次融合的成套产品研发也不例外。由于二次设备产品是用于对一次设备的保护以及对电力系统的自动控制、调度,集电力专业知识和计算机技术、通讯技术、网络技术、系统集成等信息领域于一体,是电力输送的“软件”设备,高端产品具有明显的技术壁垒。所以,二次设备生产的技术含量较高。尤其是当量产到一定规模后,产品的利润率越发集中体现在软件实力上。如何提升产品的软件附加值?如何写出高质量代码应对各地不同的定制需求,形成产品的独特竞争力?带着这样的诉求,我们选择了嵌入式C语言高质量编程培训。

 

作为年度重要培训之一,上周五到周六,30多位工程师参加了由Barry Song老师主讲的C高质量编程讲座。本次的两天逾12小时高强度培训,历经两次培训大纲的沟通反馈,已经是特别订制的培训课程。正因为此,整个培训过程中几乎都是全干货的知识培训。有业界的先进做法分享,有高质量源码范例,也有大家常的错误举例。

 

本次培训重点强调了大家普遍容易忽略的一些C语言特性,从内容安排上可看到5个层次,由浅入深逐级递进。

1.宏观概述:分层解释嵌入式系统组件,在个性中找共性。

2.见微知著:嵌入式C基础高级主题,介绍嵌C易被忽略的重要概念,编译器和cache的一些特点。

3.标杆对照:从嵌入式C语言编码风格入手,传播给大家正确的编码价值观方法论,包括良好的编程习惯,版本管理,软件项目管理等。

4.架构优化:用若干实例讲解如何实现模块划分的低耦合,以及如何用嵌入式C的面向对象来改善软件架构。

5.质量提升:如何通过防御编程,白盒测试,代码评审,代码重构来一遍遍优化代码。

 

由于中国高等教育的特色使然,我们在座的工程师们大多学的是一样的谭浩强C语言,这和工程上的实用C还是有一定区别,而且在这个培训之前,并没有多少工程师有着对既有知识体系的思辨觉悟力。这也是本次培训的重要意义之一。宋老师以自己参与世界级Linux合作项目的视角和经验,让大家重新认识到,真正的编程思想是什么?代码注释的目的是什么?关于文档的态度又是什么。同时,也给大家展示了业界对软件项目管理的各种工具使用习惯,教大家从更宏观,更广泛的范围来看待编码这个工作,让大家开阔了眼界和思路。

 

好比理论和实际之间的鸿沟需要自己去体会,弥补。嵌入式C语言本身就是门实践活儿。因此宋老师在授课过程中多次提醒大家多实践。同时,他也传递出了程序员需要有开放积极的心态,虚怀若谷的胸怀,持续自我审视和不断追求进步的科学家素养。

 

说到这里,不得不提一下宋老师乃何方神圣。

2005年硕士计算机毕业,工作8年。刚毕业第三年即著有《Linux 设备驱动开发详解》一书,2010年更新了第二版。译作有《Essential Linux Device Drivers》,同时也是流传甚广的电子书《C语言嵌入式系统编程修炼之道》作者。活跃于Linux社区,己给Linux官方内核贡献了逾4万行代码,目前是Linux ARM 子系统内maintainer之一。当这样一串闪闪发亮的经历持有人站在讲台上亲自授课时,软件工程师们一定很好奇,这样的大神是如何炼成的。

 

于是,在讲座临近尾声的时候,我们听到宋老师引述优秀程序员=9份汗水+1份天赋的关系式。其实,在做技术这个层面上,关于勤奋和天分之间关系,时间始终是最大的关键系数。

 

当我们以为大神是因为高智商和超幸运这些让我们无法超越,唯有望其项背的因素,方成为今天讲台上透析技术世界本质的洞察和慧眼时,宋老师诚挚地说起,在技术道路的孜孜以求中,他也不是一开始就知道什么是正确的,一样在是实践中磨练、体会,在学习思考中感悟、成长。

 

除了课堂上提到了SVN插件绑定便于群组内营造良好的交流氛围,宋老师课后也提到了自动化测试平台的铺设可加快测试效率。这些难得的先进经验分享,和他一开始就告诉大家的正确思考方式,都是本次培训的宝贵财富。

培训末尾,老师列了4本程序员必读的进阶教程推荐给大家阅读(Code Craft 编程匠艺,Writing Solid Code编程精粹,C/C++嵌入式系统编程,重构-改善既有代码的设计)。相信感兴趣的软件工程师们在业余又会多了几位可神交的大师朋友。

 

在此要特别感谢公司和同事对本次培训活动的大力支持!能参加本次培训深感庆幸,希望公司能继续支持类似经典书籍作者的亲自授课培训。

 

最后,以宋老师的一句话来结束全文,与大家共勉:

“没有什么能阻止一个人进步,除了TA自己”

你可能感兴趣的:(编程)