乐趣区

关于嵌入式:我花了半个月整理出了这篇嵌入式开发学习指南学习路线知识点梳理


不好意思久等了

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

一年多以来,对于嵌入式开发 学习路线 布局 看什么书 等问题,被问得没有一百,也有大几十次了。然而无奈本人对这方面理解无限,所以每次都没法交代,搞得切实不好意思。

然而方法总归是有的,正如前篇文章《最近厚着脸皮分割了不少老同学》所聊,尽管我本人不从事这些方向,但寻思了一下,我的同学和敌人中,多少还是有一些从事相干方向并且在一线(或曾在一线)工作过的,所以我就请他们帮忙一起梳理这几个我不相熟畛域的学习路线,这次嵌入式开发就是其中之一。

这篇文章之所以拖这么久,因为沟通切实太费时间了,毕竟大佬们都挺忙,况且梳理总结这件事件自身就比拟繁琐,所以等到当初才收回来。

本文在开源我的项目:https://github.com/hansonwang99/JavaCollection 中已收录,外面蕴含不同方向的自学编程路线、面试题汇合 / 面经、及系列技术文章等,资源继续更新中 …


嵌入式开发难吗?

通过这次和同学的交换,我本人也学到了很多。因为嵌入式方面的很多货色我也不懂,我也算学习了。

站在我集体角度来看,联合以前的学习体验。我感觉嵌入式开发比互联网软开(比方 Java 后端)还是要难一些的,比方咱们搞 Java 开发的,再怎么说,根本也都是 用户态 的货色,但嵌入式很多货色都深刻到了 内核态,所以难度必定是有的,体现在几个方面吧:

  • 首先,嵌入式它偏底层,软、硬件都要懂,对能力要求原本就要高不少;
  • 其次 ,嵌入式开发的学习门槛也要高一些,而且像Linux 平台下的开发流程,很多人都不习惯,摸不清;
  • 再者,嵌入式学习的正向反馈可能比较慢,尤其是后期学习阶段,导致没有什么成就感,也就保持不上来了,所以往往就弃坑了。

然而话说回来,做 IT 的就是这样,越往底层对人能力的锤炼就越高,所以对于能力来说是在 升维 ,所以反过来,如果嵌入式做得好的,我感觉来做互联网问题也不大,到时候就属于 降维打击 了。


总体学习思路

总体来说,还是能够把嵌入式学习分为三个大的阶段:

首先 根底学习阶段 ,这就包含 通用编程根底 (C 语言、数据结构 / 算法、操作系统、计网、计组、Linux 零碎根底)和根本的 硬件根底,扎实地把握这两大根底,是后续继续倒退和不断进步的能源源泉。

其次就是嵌入式 利用编程阶段 ,或者说零碎平台编程阶段。因为个别会以特定的嵌入式平台和特定的嵌入式操作系统为依靠,相熟这个零碎平台上的编程办法和流程。以常见的ARM+Linux 平台为例,须要把握从内存治理到多任务编程、文件 I /O、网络编程,甚至图形化界面编程等几个大的方面。

最初就是深刻嵌入式 底层开发阶段,最常见的就是内核开发和驱动开发,这些统属于内核态开发领域,所以须要对操作系统外部机制有所涉猎和了解,在此基础上须要把握从零碎移植到内核开发、驱动开发的各个细节,这是成神之路。

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


学习路线 + 常识梳理

花了很长时间,就为了整顿这张具体的常识路线脑图。当然因为工夫无限、能力也都无限,毕竟嵌入式全体系切实太宏大了,包含我那做嵌入式的同学,也不可能什么都懂,有些货色可能没笼罩到,不足之处,还心愿小伙伴们一起交换补充,一起欠缺提高。


书籍举荐

最初,依照整体的学习路线,再举荐一些对应的经典书籍:


后记:本文在开源我的项目:https://github.com/hansonwang99/JavaCollection 中已收录,外面蕴含不同方向的自学编程路线、面试题汇合 / 面经、及系列技术文章等,资源继续更新中 …

这次就分享到这里吧,下篇见

每天提高一点点

慢一点能力更快

退出移动版