“嵌入式驱动和应用,哪个更难?哪个更锻炼自己?”类似的问题经常有网友拿来讨论和交流。
我在嵌入式这行搞开发10年有余了,算不上经验丰富,但站在过来人的角度,只想说:驱动和应用相辅相成,没有谁更难一说,做好了,都难!
现在的嵌入式比20年前的要求更高,软硬件、应用场景也更复杂了,除了驱动层和应用层,中间层也是重要的一层。
当然,在不同场景下分层也有不同的讲究,比如RT-Thread(Smart版本)的软件架构:
暂不说20年前,就是10年前搞嵌入式开发,大部分中小公司对嵌入式开发的岗位要求都不算高,你懂一些基本原理,哪怕没有独立开发过项目,都能找到一个开发(研发)的工作。
而现在呢,你学了RTOS、Linux、各种协议栈,独立开发过项目,可能还找不到一个合适的研发工作。
10年前做项目,对驱动层、应用层的要求相对不高,那个时候不管是写驱动,还是做应用都不是很难。
如果你还在维护10年的老代码,可能会看到网上传言的“屎山代码”,那就是因为当时的要求不高,导致屎山代码遗留至今(当然,10年也有很多优秀的代码)。
放眼望去,为什么现在“更难”了呢?
答案是:时代不同了。
其实,难都是相对的,早些年网络资源不像现在这么丰富,买开发板模块那些也不方便,要踩各种坑才能入门。
而现在,只要你有学习的心,入门是一件很轻松的事,至少点个灯是随随便便的事。只能说,每个时期有每个时期的难!
驱动和应用,哪个更难?哪个更锻炼自己?两个不同层进行比较,没有可比性,就好比当老板累,还是当员工累,没有标准答案。
作为一名合作的嵌入式工程师,不管是做驱动还是应用,你不能局限于你那一层。
做驱动的要了解应用层业务逻辑实现的一些基本原理,而做应用层开发,也要了解底层驱动是如何实现的。不要求深入了解,但要了解大概原理。
如果只考虑自己那一层,写出来的代码,多半是不合格的,你看看那些互相甩锅的工程师,可能就是这么导致的。
再回来说下,哪个更锻炼自己?道理还是一样,两个都挺锻炼人的。
如今搞嵌入式,要求更高了,两个方向你都需要掌握,但是,你需要侧重一方,其他作为“选修课”,及格就行。
最后,时代在不断变化,我们普通人不能改变世界,就要顺应时代的变化而变化。