2.7 趣谈嵌入式C语言十层境界

本文将嵌入式C语言分为十层境界,从初学者的Hello World到成为编程大师,详细阐述每个阶段的特点和成长路径,旨在帮助读者明确自身定位,提升C语言技能。

至此,我们已经完成了嵌入式C语言快速入门。这部分培训一般是从新人招聘完毕到正式入职之间完成的,因为需要多次反复,外加远程互动的原因,耗时较多,但大部分人会在两个月内完成。

在长期实践中我发现,经过这样的训练后,虽然新人初次面对真实的产品代码时依然会磕磕碰碰,但会少一些那种双目茫然的木讷感。随着熟练程度的持续提升,大家很快就可以找到节奏,比较快融入团队了。而且,随着工作闭环、代码审核、注册机制等策略的及早灌输,也会帮助新人和团队其他成员尽快同步,利于新人融入团队。

如果计划从事嵌入式领域软件研发,实际上需要C语言达到相当熟练的程度。入职后,持续的技能提升都是内嵌在平时工作中的,很少再有时间进行专门的培训。为了帮助大家的持续提升,我们团队内部喜欢采用知识库工具,下一章会专门介绍。

不过,在此之前,如果能让大家知道需要掌握哪些C语言技能,明白自己所在的位置,对后期很有帮助。某日,一时兴奋,我将嵌入式C语言分为十层境界,大家不妨趣谈趣谈。

第一层
初学C语言,基本上是拿一本C语言书籍,从helloWorld开始。好不容易学完,也仅能记住一些零碎的语法,勤奋者,顶多照书画猫敲几个例程。
遗憾的是,大部分工科生应付完考试,就止于此了,等大四找工作时,连C语言基础语法早就丢到了爪哇国了,这也是为何招聘时我们发现很多人一问三不知的原因了。

第二层
学习完C语言后,会有小部分人会对编程产生了浓厚的兴趣,最直接的体现就是会尝试用C语言写一些好玩的程序。
这类人的比例还是比较小的,我以前招聘,最喜欢问的一个问题是"描述一个凭兴趣写的C语言程序",可惜能答上来的寥寥。受打击多了,让我从充满希望到了彻底绝望了,以后直接雪藏该问题,仅问一些基础知识了。
实际上这一层反而很关键,很多的数据结构、算法知识都是在这一层学习的,而且如果不跨入该层,连第一层也会归零。记得在大学时,我花了很长时间研究八皇后、青蛙跳等趣题,计算机基础素养也是在该过程中潜移默化慢慢提高的。

第三层
在C语言使用过程中,基本上采用碰一个问题解决一个问题的策略,时间长了,很多人都会有一种冲动重学C语言语法,是所谓查缺补漏。此时就可以看比较高级的C语言书籍了,我一般还是推荐《K&R》,不仅是大师的书,最主要的原因还是很薄,职场时间紧,担心大家太监了。
我们的新人刚开始大多都处于这一层。

第四层
在接触嵌入式C语言后,慢慢的要和硬件打交道了。首先接触的就是C语言运行环境构建、初始化、堆和堆栈等概念了。经过该过程的锻炼,对C语言的理解应该比较完善了,而且硬件也开始入门了,算是登堂入室了。

第五层
随着对硬件的进一步了解,很多时候需要去理解C语言对应的汇编语言,优化技巧及取舍策略,甚至需要经常查看C语言背后的汇编程序,编译原理的知识开始登堂入室了。这是比较难的一关,建议大家多在代码生成和优化方面下先功夫,对解决一些驱动和深层次问题很有帮助。

第六层
对硬件的进一步加深理解主要侧重于体系结构了,理解了这一点,才能真真明白一个程序是如何在硬件上执行的,才能明白为何C语言叫做中级语言,才能明白int的缺省定义为何叫最自然的整数表示,才能明白C语言为何有很多歧义定义,才能明白为何C语言可以在各种硬件上自然的舒展拳脚,才能……。然后,你开始对C语言开始有了一种很亲切的感觉。

第七层
在该层之前,C语言相关技能基本处于外延状态,学习到一个新的知识点,总有想尽力用到产品中的冲动,而不管其是否合适。但随着工作经历的增加,程序写多了,知识拓展的重点从外延向内延发展了,这也就是常说的智者心智,属于计算机素养范畴。
在该境界开始慢慢体会啥叫好的程序,开始慢慢约束自己以巧妙避开有歧义的语句,开始考虑写出的程序是否可以让硬件更爽快的执行,开始考虑怎样写程序便于别人阅读理解。

第八层
达到该层境界的人,应该都是企业的骨干了,不能在搞个人英雄注意了,需要带领团队一起冲锋陷阵了,此时开始体悟到clean code的概念,明白程序的可读性甚至比效率更重要。

第九层
如何叫“熟悉”,爸爸妈妈肯定最熟悉自己的孩子,因为陪伴着其一起成长的。走到该境界的人,是否有冲动对C语言刨根问底啊,明白C语言各版本的发展史吗,能否理解那些为了兼容而采取的妥协策略吗。

第十层
大师的境界,早已跳出语言范畴,挥挥手不带走半点云彩了,算了,非俺等凡夫俗子可以涉足,大家还是洗洗睡吧。

将嵌入式C语言分为十层境界,有点搞笑的味道,不过其中提及的诸多知识点,或许能帮助大家走的更远。

返回目录
——————————————

我是小马儿,一个渴望良知与灵魂的嵌入式软件工程师,欢迎您的陪伴与同行,如需最新版PDF电子书,或期望深入交流,可加我个人微信nzn_xiaomaer,需备注“异维”二字。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值