嵌入式Linux应用开发零基础到就业学习路线,小白到高薪就业,看这一篇就够了!

嵌入式Linux应用开发就业可选择的行业非常多,智能家居、汽车电子、医疗器械、通信设备、半导体、工业自动化、音视频等等。

在招聘软件上看了很多岗位,其实基本要求都是比较统一的:

  1. C/C++
  2. 熟悉Linux操作系统
  3. 了解在ARM芯片上的交叉编译
  4. Linux多线程、多进程、内存共享、网络通信、信号处理、IO操作等编程技能
  5. Linux系统环境下的软件开发相关知识

注意:Linux应用开发中,几乎没有什么硬件知识(有的话也是极少),所以甚至可以在不具备硬件知识的情况下学习。所以很多学纯软想转行或者学历较高的同学,我都是推荐这个方向的。

关于学嵌入式Linux是不是要必须先学单片机,我们之前也和老师探讨过,做了这样一个视频,大家感兴趣可以去看一看学习嵌入式Linux必须要先学单片机吗? 嵌入式开发/C语言/STM32/Linux/单片机/Linux和单片机薪资对比/项目经验/开发_哔哩哔哩_bilibili

嵌入式Linux应用开发相较于STM32来说,自学的难度还是要大很多,而且一旦没有规划好学习路线,非常容易走弯路。

下面是我整理的具体学习路线,希望能够帮助到正在学习Linux应用的小伙伴们

基础学习:

  • 编程基础

  • 1. C语言基础

学习内容:

1)基本语法:常量/变量/关键字、数据类型、输入/输出、运算符、表达式、判断、循环、数组

2)函数:定义、声明、参数和返回、递归函数等

学习资源:

这里补充一下之前在单片机学习路线视频里提到,但没有具体写在思维导图里的一个内容,就是视频也推荐大家在中国大学慕课或者学堂在线上进行观看,这种平台上也有很多免费的课程,同时他会有配套的练习题目

拿翁凯老师的《C语言程序设计》举例,它不仅按照一周的时间来安排学习内容,而且每周还有练习的题目。

程序设计入门——C语言_浙江大学_中国大学MOOC(慕课) (icourse163.org)

其他学习资源可以参考之前的单片机学习路线,这里就不赘述了

需要单片机和Linux应用完整思维导图的直接+威信:linglv03

2. C语言进阶

学习内容:

1)指针:声明、运算、数组指针和指针数组、函数指针等

2)结构体:定义、初始化、使用

3)内存管理:内存模型、动态内存分配、动态内存释放

4)数据结构:栈、队列、链表、树

5)算法:排序、查找

6)代码规范:缩进、注释、命名、可读性

学习资源:

《算法导论》、《数据结构(C语言版)》、《编译原理》

3. C++基础

学习内容:

1)基础语法:参考C语言部分(基础和进阶)

2)面向对象编程:类、对象、封装(成员变量、成员函数、this指针)

3)常用关键字:const、inline、static、explicit、volatie等

4)运算符重载:继承(对象初始化顺序、同名成员问题、多继承、虚继承等)和多态(虚函数、纯虚函数、抽象类等)

5)推荐这里学习做一个C++的小项目,我们这边一般是一个英雄怪物的小游戏开发

学习资源:

① 视频:

学堂在线上清华大学郑莉老师的《C++语言程序设计基础》

推荐这个平台是因为这个平台上在讲课过程中会弹出选择、填空题来巩固知识点,每一章结束一般还会有三道编程题来给大家练习

C++语言程序设计基础 - 清华大学 - 学堂在线 (xuetangx.com)

也可以在郑莉老师的B站上观看

郑莉课堂投稿视频-郑莉课堂视频分享-哔哩哔哩视频 (bilibili.com)

黑马程序员的这个也不错

黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili

C++经典项目:

【纯C++】项目实战:经典俄罗斯方块游戏_哔哩哔哩_bilibili

② 书籍:

《C++ Primer 第五版》或者《C++ Primer Plus 第六版》

前者适合有一些C语言基础的选手,看这本书一定不要跳过课后练习题,尤其是每小节的后2-3节;后者是完全小白向的书籍,讲的非常详细。

  • Linux开发环境搭建

学习内容:

1)虚拟机安装、Linux系统安装

2)Linux开发环境环境搭建、开发板操作

学习资源:

VMware安装及Linux-Ubuntu安装,和标题一样真的全程无废话,满脑子只有“下一步”

两分半钟完成VMware安装及Linux-Ubuntu安装(全程无废话)_哔哩哔哩_bilibili

环境搭建和开发板操作,推荐韦东山的这个视频

【第3篇】环境搭建与开发板操作(IMX6ULL_Pro)_哔哩哔哩_bilibili

  • Linux操作系统

学习内容:

1)基本的Linux操作命令和常用工具

2)基本的shell编程

学习资源:

① 视频:

韦东山Linux应用开发基础知识,包含下面的编译、系统编程等内容,下面就不再赘述了

【第4篇】嵌入式Linux应用开发基础知识_哔哩哔哩_bilibili

② 书籍:

《鸟哥的Linux私房菜》

鸟哥的 Linux 私房菜 -- 浅谈备份策略 (vbird.org)

《Linux命令行与shell脚本编程大全》

  • 编译/调试工具

学习内容:

1)GCC编译

2)Makefile

3)GDB调试

学习资源:

① 视频:

里面也有不少Linux开发环境和Linux操作系统的相关知识

7.1 gcc的安装和版本查看_哔哩哔哩_bilibili

② 书籍:

英文好的同学可以直接看 GNU官网关于 GCC和 GDB的文档

像这个GCC, the GNU Compiler Collection - GNU Project

《debuging with gdb》

英文版:Top (Debugging with GDB) (sourceware.org)

中文版:Debugging With GDB中文版(带目录) - 豆丁网 (docin.com)

《跟着我一起写makefile》

GitHub - seisman/how-to-write-makefile: 跟我一起写Makefile重制版

  • Linux系统环境编程

这部分是学习的重点

1. 多任务编程

学习内容:

1)进程:进程控制、守护进程、进程间通信等

2)线程:线程控制和编程等

2. 文件I/O编程

学习内容:

文件/文件描述符、文件指针/文件流、标准I/O流、标准I/O操作、非阻塞I/O、异步I/O、多路复用等

3. 网络编程

学习内容:

TCP/IP协议、Socket通信和应用、TCP编程、UDP编程

整体学习资源:

① 视频:

尚硅谷嵌入式Linux应用层开发,linux网络编程,linux进程线程,linux文件io_哔哩哔哩_bilibili

② 书籍:

《Linux多线程服务端编程》、《Unix环境高级编程》、TCP/IP详解》

  • Linux基础项目

学习内容:

这里推荐几个基础阶段的Linux项目

① 基于Linux的在线词典

② 基于Linux的视频播放器

③ 基于IMX6的无线点菜系统

学习资源:

我们自己制作的Linux项目合集,里面有一些Linux项目的视频教程以及音视频开发相关基础教程,推荐大家观看!

【含实战项目教程】嵌入式Linux应用开发项目及视频资料推荐,内含音视频开发教程 计算机/嵌入式开发/物联网/完整项目教程分享/单片机/STM32/C语言_哔哩哔哩_bilibili

视频里推荐的项目文档也给大家整理好了

链接附上:嵌入式Linux应用开发秋招,简历项目推荐

进阶学习:

  • C++进阶

Linux C++是一个很不错的就业方向,Linux很多方向的工作都是以Linux C++作为基础的,比如自动驾驶等等

学习内容:

1)类型转换:static_cast、reinterpret_cast、dynamic_cast、const_cast

2)函数转换

3)泛型编程:函数模板、类模板

4)异常处理

5)STL容器:vector、string、list、、set、map、depue、stack等

6)现代C++新特性

7)这里也推荐做一个C++项目,我们一般是一个五子棋的小游戏开发

8)数据结构和算法(C++语言版)

之前是了解,现在需掌握

这一部分视频推荐邓俊辉老师在学堂在线上的课程,书籍也推荐邓俊辉老师的《数据结构(C++语言版 第3版)》

数据结构(上) - 清华大学 - 学堂在线 (xuetangx.com)

学习资源:

① 视频:

这里也推荐翁凯老师的视频,附上网易云课堂的免费学习地址

面向对象程序设计-C++ - 网易云课堂 (163.com)

现代C++教程C++11-14进阶用法

学校不教,大厂就业必会C++11-14进阶用法,秋招/计算机/算法/编程/程序员/线程/代码/STL/黑马程序员/cpp/应届/高性能网络/存储/基础架构/安全_哔哩哔哩_bilibili

② 书籍:

Scott Mayer 的《Effective C++》、《More Effective C++》、《Effective STL》,这也是《剑指Offer》的作者推荐的书,不少C++面试题目都会考察到其中的知识点。

  • Qt开发

学习内容:

对话框/窗口、信号与槽、绘图、组件/控件/布局/事件、文件操作、多线程、定时器、网络通信

学习资源:

两个基础小项目:Linux环境下的QQ程序和基于IMX6的无线点菜系统

还有几个进阶项目

更多项目详见教学大纲,+V:linglv03,领取一份

  • Linux进阶项目

不推荐没做过Linux项目的新手通过购买录播课,来学习相关Linux项目。我们之前卖过低价99元的录播课+完整代码(不带答疑),但基本没有人能够做出来。所以我们还是推荐大家来体验我们的【老师一对一会议辅导】

  • 源码学习

学习内容:

1)TCP:轻量级TCP/IP协议

地址:lwIP - 轻量级 TCP/IP 堆栈 - 摘要 [Savannah] (nongnu.org)

2)HTTP:轻量级http服务器

地址:Tiny HTTPd 下载 |SourceForge.net

3)Nginx:高性能http服务器

地址:nginx: download

4)Redis:key-value存储系统

地址:Redis - The Real-time Data Platform

  • 代码可移植

学习内容:

平台数据类型、对齐、大小端、多用库函数

其他方向需额外学习:

  • 人工智能(AI)

1)图像识别:Opencv

2)图像处理:图像变换、压缩、增强、提取等

3)Python语言和Python库的学习

4)机器人:ROS

5)深度学习:TensorFlow

可学习项目:

  • 自动驾驶

基础工具学习、ROS、CyberRT、DDS框架等

  • 音视频

学习内容:

FFmpeg、H264、H265、SRT、RTP、RTSP、MP4、ONVIF等

学习资源:

基于瑞芯微RV1126实现USB摄像头

项目介绍和部分教学视频:

嵌入式Linux音视频项目介绍-基于瑞芯微RV1126实现USB摄像头,学它轻松拿到offer!/黄金稀缺才高价,学技术呢?浅聊一下如何实现自身价值_哔哩哔哩_bilibili

更完整项目教学部分:

【项目7】基于瑞芯微RV1126实现USB摄像头1-效果演示及课程介绍_哔哩哔哩_bilibili

  • 汽车电子

CAN、LIN、UDS、车规级MCU、Autosar、ROS、SLAM、hypervisor、车载以太网、DoIP等

  • 物联网

传感器:温湿度、大气、距离等

无线:蓝牙、Lora、ZigBee、Wifi等

协议:MOTT、COAP等

应用:大数据分析、日志事件、OTA升级等

  • 通信

Wifi:IEEE

2G/4G/5G/NB-IOT:3GPP

路由/交换:OSPE、BGP、MPLS、BFD等

最后推荐一下我们的Linux校招学习路线,适合应届生参加校招来参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值