最好的 linux 学习突破口是 linux 系统编程,没有之一!
有人说是裸机,看看招聘信息就知道,没有任何招聘信息在任何一点提到裸机程序。
那么裸机程序是给那些用户使用的?裸机程序不是给学习单片机或者 stm32 程序员准备
的,是给只有上位机变成经验的纯软件工程师准备的。
大家可以看一下网上的招聘信息,部分会要求对硬件有一定的了解,例如 gpio,i2c,uart,
485 等,这些需要程序员用到示波器,万用表之类的工具,需要用到一些最简单的硬件应用的
知识。对于专业是软件工程的程序员,一直从事软件开发,那么会有一点点对硬件理解上的帮
助。
假如你的专业是自动化,计算机,电子,电气工程,通信工程,物理专业等等,学习这东
西完全是在浪费时间,学习过大学物理,模电,数电等相关课程,完全没必要去使用裸机,单
片机编程就是裸机编程。特别强调的一点,学习过单片机的用户,假如到了操作系统,还在想
着利用裸机入门是永远学不会 linux 编程的!
少数的单片机老师,在给大家介绍单片机学习的时候,会传递类似这样的信息“学习了单
片机,带操作系统的编程也是一样的”等等。
其实完全不一样!带有任何一个操作系统之后,操作系统本身会带很多功能,提供了很多
接口。在初期,学习的重点就是学习使用这些自带的功能,熟悉这些接口。
还有一点给大家说明一下,linux 程序员什么时候会接触到最底层。
例如 linux 的网络编程,最底层的网络部分已经有全世界最优秀的程序员完成,花费了几
十年时间,而且目前仍然在维护升级中,这个是世界性的任务,作为初学者,在很长时间的一
段时间内都是直接拿来使用。
那么学习到了什么程度会做这些开发呢?如果大家英文不错,可以看一下国外做 linux 最
底层开发的招聘要求,一般是 8 年或者 10 年以上的经验,这个几乎是硬性规定。
所以大家老老实实的一步一步的来,不要想太多没用的东西。