嵌入式:我不是针对谁,我是说在座的Javaer都是弟弟,尤为程序羊

嵌入式:我不是针对谁,我是说在座的Javaer都是弟弟,尤为程序羊


很差意思久等了


这篇文章让小伙伴们久等了。算法

一年多以来,关于嵌入式开发学习路线、规划、看什么书等问题,被问得没有一百,也有大几十次了。可是无奈本身对这方面了解有限,因此每次都无法交代,搞得实在很差意思。编程

可是办法总归是有的,正如前篇文章《最近厚着脸皮联系了很多老同窗》所聊,虽然我本身不从事这些方向,但寻思了一下,个人同窗和朋友中,多少仍是有一些从事相关方向而且在一线(或曾在一线)工做过的,因此我就请他们帮忙一块儿梳理这几个我不熟悉领域的学习路线,此次嵌入式开发就是其中之一。后端

这篇文章之因此拖这么久,由于沟通实在太费时间了,毕竟大佬们都挺忙,何况梳理总结这件事情自己就比较繁琐,因此等到如今才发出来。网络


嵌入式开发难吗?


通过此次和同窗的交流,我本身也学到了不少。由于嵌入式方面的不少东西我也不懂,我也算学习了。数据结构

站在我我的角度来看,结合之前的学习体验。我以为嵌入式开发比互联网软开(好比Java后端)仍是要难一些的,好比咱们搞Java开发的,再怎么说,基本也都是用户态的东西,但嵌入式不少东西都深刻到了内核态,因此难度确定是有的,表如今几个方面吧:ide

  • 首先,嵌入式它偏底层,软、硬件都要懂,对能力要求原本就要高很多;
  • 其次,嵌入式开发的学习门槛也要高一些,并且像Linux平台下的开发流程,不少人都不习惯,摸不清;
  • 再者,嵌入式学习的正向反馈可能比较慢,尤为是前期学习阶段,致使没有什么成就感,也就坚持不下去了,因此每每就弃坑了。
    可是话说回来,作IT的就是这样,越往底层对人能力的锻炼就越高,因此对于能力来讲是在升维,因此反过来,若是嵌入式作得好的,我以为来作互联网问题也不大,到时候就属于降维打击了。

整体学习思路


整体来讲,仍是能够把嵌入式学习分为三个大的阶段:学习

首先基础学习阶段,这就包括通用编程基础(C语言、数据结构/算法、操做系统、计网、计组、Linux系统基础)和基本的硬件基础,扎实地掌握这两大基础,是后续持续发展和不断进步的动力源泉。操作系统

其次就是嵌入式应用编程阶段,或者说系统平台编程阶段。由于通常会以特定的嵌入式平台和特定的嵌入式操做系统为依托,熟悉这个系统平台上的编程方法和流程。以常见的ARM+Linux平台为例,须要掌握从内存管理到多任务编程、文件I/O、网络编程,甚至图形化界面编程等几个大的方面。3d

最后就是深刻嵌入式底层开发阶段,最多见的就是内核开发和驱动开发,这些统属于内核态开发范畴,因此须要对操做系统内部机制有所涉猎和理解,在此基础上须要掌握从系统移植到内核开发、驱动开发的各个细节,这是成神之路。blog

大致思路是这样,接下来看一下详细的学习路线和知识点梳理。


学习路线+知识梳理


花了很长时间,就为了整理这张详细的知识路线脑图。固然因为时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那作嵌入式的同窗,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还但愿小伙伴们一块儿交流补充,一块儿完善进步。

嵌入式:我不是针对谁,我是说在座的Javaer都是弟弟,尤为程序羊
注:图片上传后可能被压缩,如需无损版高清大图或PDF版文档,可直接在本公众号后台回复「嵌入式」三个字自取吧。


书籍推荐


最后,按照总体的学习路线,再推荐一些对应的经典书籍:

嵌入式:我不是针对谁,我是说在座的Javaer都是弟弟,尤为程序羊
此次就分享到这里吧,下篇见。

天天进步一点点

慢一点才能更快

相关文章
相关标签/搜索