嵌入式驱动和应用,哪个更难?
内容提要
嵌入式驱动和应用相互依存,都很重要。现如今的嵌入式系统要求更高,驱动层、应用层和中间层都重要。10年前的嵌入式开发要求不高,现在学习RTOS、Linux等可能还找不到合适的工作。驱动和应用都需要了解对方的基本原理。搞嵌入式要求掌握两个方向,但可以侧重一方。时代在变化,要顺应变化。
延伸解读
驱动与应用:分工不同,难度无高下
文章指出驱动层和应用层相互依存,直接比较难度没有意义,就像比较老板和员工谁更累一样。两者做好都有难度,且现代嵌入式系统还增加了中间层的重要性。因此,开发者不应纠结于哪个更难,而应理解两层的基本原理,避免只关注自己那一层导致代码不合格或团队推诿。
门槛变化:入门易了,要求高了
十年前中小公司对嵌入式岗位要求不高,懂基本原理就能入行;现在即使学了RTOS、Linux和协议栈,独立做过项目,也可能找不到合适工作。但文章也指出,早期资源匮乏、买板子不方便,入门要踩很多坑;如今学习资源丰富,点灯入门很轻松。每个时期有每个时期的难,难是相对的。
老代码的启示:要求低遗留“屎山”
维护十年前的老代码时,可能会遇到网上传言的“屎山代码”,这反映了当时开发要求不高。当然也有优秀代码。文章以此说明,当前要求提高是时代变化的结果,开发者应顺应变化,提升技术深度和广度,而不是简单抱怨难度增加。
学习策略:两个方向都掌握,侧重一方
文章建议,如今搞嵌入式需要掌握驱动和应用两个方向,但可以侧重一方,另一方作为“选修课”及格即可。做驱动的要了解应用层业务逻辑的基本原理,做应用的也要了解底层驱动如何实现,不要求深入但要知道大概。这样写出的代码才更合格,也能减少团队间的互相甩锅。
Q&A
嵌入式驱动和应用开发哪个更难?
驱动和应用是相互依存的,没有谁更难,只要做好了,都是有难度的。两者属于不同层次,没有可比性,就像问当老板累还是当员工累一样,没有标准答案。
为什么现在嵌入式开发感觉比十年前更难?
因为时代不同了,现今嵌入式系统要求比20年前高得多,软硬件结合、应用场景更加复杂,除了驱动层和应用层,中间层也成为了重要环节。10年前岗位要求不高,懂基本原理就能找到工作,而现在学了RTOS、Linux、各种协议栈,独立开发过项目,可能还找不到合适的研发工作。
做嵌入式开发只专注驱动或应用一层可以吗?
不可以。不管是做驱动还是应用,不能局限于自己那一层。做驱动的要了解应用层业务逻辑实现的基本原理,做应用层开发也要了解底层驱动是如何实现的。不要求深入了解,但要了解大概原理。只考虑自己那一层,写出来的代码多半是不合格的。
嵌入式驱动和应用两个方向,应该侧重哪个?
如今搞嵌入式要求更高了,两个方向都需要掌握,但需要侧重一方,其他作为“选修课”,及格就行。
维护老代码时遇到的“屎山代码”是怎么产生的?
10年前做项目对驱动层、应用层的要求相对不高,开发要求不高,导致屎山代码遗留至今。当然,10年也有很多优秀的代码。
现在入门嵌入式开发比过去容易吗?
是的,现在网络资源丰富,买开发板模块也方便,只要你有学习的心,入门是一件很轻松的事,至少点个灯是随随便便的事。而早些年资源匮乏,要踩各种坑才能入门。每个时期有每个时期的难。