对于任何一个想在计算机领域内“一通百通”工程师而言,这恐怕是过不去一道思考题。
先从日常工作说起,嵌入式软件工程师每天的工作就是操作一些寄存器或看一些器件的操作的资料,实现一些功能。但涉及到数据的抽象及算法的部分,只占工作的很少的一部分。再就是,虽然,经过ST的努力使寄存器的操作库化,不用再看以前弄单片机项目时一个一个查寄存器的作用了,但仍没有软件工程那样的高度抽象框架。在UCOS和FreeRTOS等轻量级操作系统和Linux、android等操作系统的主流架构下,虽然提供了一些大的框架,但仍是特定的核,特定的OS,并不是像JAVA一样,一次编译到处运行的。当时入到OS时,时序的思考时间比重,应该是大于低层的寄存器操作和器件操作思考比重的,所以OS,应该是嵌入式终极顶点,至少从目前情况来看,是这样的。
软件工程师就完全不一样,每天都是在调用不一样的库,多种框架可以用,多种语言,选择都不一样,并且,在这个阶段数据抽象处理明显要比嵌入式工程师要多得多,因为,他们硬件架构就是电脑,系统就是windows或linux下,应用的软件开发。他们所要开发的东西,可能要炫酷的多,花样也多,无论是移动端如手机还是PC端的。他们的工作价值在于向人传递信息,而信息的价值无疑是现在技术最主流的,如大数据或人工智能。他们无须考虑很多底层的东西,而只是关注功能或界面的实现这些抽象的东西。
简单点来说,嵌入式软件关注的是时序,而软件工程关注的是数据抽象。
一些浅显的思考,以备以后自己查阅!另外,习惯写微博后,之前习惯将每天的收获写在本子上的习惯看来是要改改了,以后只要记录每天觉得有思想收获的地方就行,而技术方面的东西,还是往微博上面写,这样可以好查找,另一个技术也是无止境的。
全部0条评论
快来发表一下你的评论吧 !