今天在知乎看到这样一个话题:
想要知道Linux校招需要学到什么程度,我们还是得从招聘岗位要求上来入手
下面一共找了12个校招岗位,从中分析得出最后的【校招学习路线】
Linux(C/C++应用开发)校招学习路径:
- 熟悉shell命令,熟悉对Linux的基本命令操作以及shell脚本编写
- 熟悉Linux平台网络编程、熟悉常见的网络协议
- 熟悉Linux下的多进程、多线程编程
- 熟悉Linux平台C++或者C语言开发
- 扎实的计算机专业基础知识,包括操作系统、数据结构、计算机网络等
- 熟悉C/C++语言,熟悉Windows或Linux平台开发
- 成绩优异,有大赛获奖经历优先
- 良好的C++语言基础
- 熟悉TCP/IP协议、串口通信、http等协议原理
- 具有Socket、websocket、多线程、异步处理等相关开发经验
- 熟练Linux操作命令
- 熟悉SO9000/CMMI规范,熟悉软件工程原理,具有软件质量意识
- 熟悉TCP/IP原理,有网络编程经验
- 熟悉Linux环境下C/C++语言编程,有Linux内核编程经验
- 熟练掌握C/C++编程
- 熟悉Linux开发流程,熟悉shell/python脚本编写
- 熟悉进程间通信开发,sharememory,socket等,有C/S实际开发经验者优先
岗位需求总结
除了应用开发的学习路线外,最重要的当然就是C/C++方面知识的学习,对C/C++感兴趣的同学可以试试这个方向
- C/C++语言:
1. 熟练掌握C/C++的基本语法、数据类型、运算符、控制结构等
2. 理解指针、内存管理、文件操作等高级特性
3. 能够编写C/C++程序,并理解面向对象编程的基本概念
4. 掌握Linux环境下的C/C++开发
- Linux基础:
- 熟悉Linux操作系统的基本使用,包括命令行操作、文件管理等
- 理解Linux的进程、线程、文件系统等基本概念,了解Linux下的多进程、多线程编程
- 能够编写简单的Shell脚本,进行基本的系统管理和自动化操作
- 计算机网络基础:
- 了解常见网络协议,理解TCP/IP协议、网络协议栈等基本工作原理
- 熟悉网络编程,掌握Socket编程,熟悉网络通信的基本原理和实现方式
嵌入式Linux(应用开发方向)校招学习路线
岗位需求总结
● Linux基础:
- 熟悉Linux操作系统的基本使用,包括命令行操作、文件管理等
- 熟练使用makefile, gcc, gdb
- 理解Linux的进程、线程、文件系统等基本概念,了解Linux下的多进程、多线程编程
- 能够编写简单的Shell脚本,进行基本的系统管理和自动化操作
● C/C++语言基础:
1. 熟练掌握C/C++的基本语法、数据类型、运算符、控制结构等
● 计算机网络基础:
1. 了解常见网络协议,理解TCP/IP协议、网络协议栈等基本工作原理
2. 熟悉网络编程,掌握Socket编程,熟悉网络通信的基本原理和实现方式
3. 多线程编程、多进程
- 嵌入式ARM开发经验
- 熟悉常用外设协议UART,I2C, SPI等优先
- I.MX6ULL开发经验
- 岗位方向
汽车领域、音视频领域、医疗器械、物联网
Linux(驱动开发方向)校招学习路线:
- 精通C语言开发,了解ARM汇编语言
- 至少熟悉操作系统一个子系统的原理
- 至少熟悉一款CPU架构,比如ARM64,RISC-V
- 有操作系统研发,复杂驱动程序开发经验者优先考虑(如camera/AI加速器/PCle等)
岗位需求总结
【应用开发学习路线+Linux内核驱动深入学习】
驱动开发因为靠近底层,所以要了解一些硬件相关的知识
- 嵌入式Linux软件基础优先
- 熟练使用Linux系统以及QT开发环境
- 数量掌握C++编程语言
- Linux内核编程:
- 掌握Linux内核编程的基础知识,如内核模块、中断处理、内存管理、进程管理及锁机制等
- 了解Linux内核的编译和调试过程,能够使用内核提供的调试工具进行故障排查
- 掌握Linux内核的裁剪和定制
- 驱动开发基础:
- 理解设备驱动的基本概念和作用,熟悉驱动与内核的交互方式
- 掌握Linux驱动开发的基本流程和技术,包括字符设备驱动、块设备驱动、网络驱动等
- 硬件相关相关知识:
- 对计算机硬件有一定的了解,包括CPU、内存、总线、I/O设备等
- 掌握ARM汇编语言,以及一定的单片机知识
- 理解硬件与软件的交互方式,以及如何通过驱动进行控制和通信
- 协议和接口规范:
- 熟悉常见的设备接口协议和规范,如USB、PCI、I2C、SPI等
- 了解这些协议在Linux内核中的实现方式和应用
(之前整理的嵌入式学习资料,需要的直接私信我)
【校招加分项】
- 项目经验:
看招聘需求校招似乎对项目经验的要求没有那么高,但想要提升简历和面试的通过率,项目经历是必不可少的一部分
- Android系统开发知识
Android系统开发知识的了解以及开发经验(以后想从事Android嵌入式开发的,可以多学习相关知识,还是一个非常好的高薪从业方向的)
- 良好的编程风格:
在平时编程时多注意自己代码的规范性,养成良好的编程风格
- 竞赛获奖经历:
平时多参加竞赛,积攒经验,参加竞赛的同时也能增加自己的项目经验
- 学习成绩及英语能力
【校招经验分享】
-
常规经验
- 简历着重写公司岗位需求上提到的技术,要和岗位的技术需求匹配
- 自我介绍好好准备,最好中英文都准备
- 项目经验很多公司也会重点看,所以最好还是有2-3个左右的项目经历,没有项目就去网上做一些开源项目,虽然技术含量不高,但至少不让简历太难看
- 牛客或者网上搜大厂笔试面试题,掌握解题思路和技巧
- 刷leetcode,难的要有思路,中等的要会做,简单的要很快就能做出来
- 拷打八股文,小公司考的会比较少,大公司基本都会考
-
校招实景
卷Linux开发,不要以为有简历项目Offer稳了
大厂的面试会询问你简历上的每个细节。
只写到简历上,没有真正掌握的同学,也许能拿到实习的机会,但在技术面试的HR面前,一定的漏洞百出,给技术总监留下很多不好印象。
有位研三硕士,简历上3个项目,其实面试机会不少,但无Offer
原因是什么呢?
- 基础不扎实。C++和Linux应用基础的细节掌握的差劲。
- 简历项目注水。跟着网上视频教程Copy的代码,自己没有做,也根本不会做项目。
稍微涉及细节的内容,他就无法回答。给面试官留下很差的印象,包括:
- 此人可能是乱写的简历骗面试机会,真后悔面试他,MD,整天忙死了,还被这种人忽悠;
- 啥技能都不会,招过来也是拖后腿,再看看其他人。
- 需要基础、项目一对一指导的私信我,免费制定学习路线
【学习指南】
嵌入式Linux开发,C++需要学到什么程度?
众所周知,嵌入式开发通常用C语言开发,但是嵌入式Linux,特别是大项目用C++的也非常多,例如百度的Apollo等。
硕士同学,肯定不局限于小公司的单片机开发,
那么,高薪岗位的嵌入式Linux开发C++要学到什么程度呢?
我觉得群内这位已经工作多年的老哥回答的非常有道理:
总结而言,如果你将要找工作,最好能够达到下面的要求:
- 掌握C++的进阶只是STL等;
- 掌握C++的现代标准,包括C++11到20的新内容;
- 能够在项目中熟练应用新的面向对象的写法!
掌握这些,你还可以从事其他C++的岗位,后台开发等,而非仅仅嵌入式Linux开发!
【学习资源】
b站上很多免费课程资源,比如韦东山、野火之类的,大家自行搜索就行,这里主要推荐一些项目学习资源和面试之类的资料
对于项目这块,面试的常见问题有:
- 做这个项目的背景是什么?
- 项目中具体有哪些模块,都是怎么实现的?
- 项目中你的技术亮点有哪些?
- 项目中有什么难点,你是怎么解决的?
- 要是重新做这个项目,你这个项目有什么不足,你会进行哪些改进?
- 如何高效在网上找开源项目、参与开源项目
如何高效地在网上找开源项目做!在职程序员实际演示一波视频教程操作_哔哩哔哩_bilibili
- 如何参与开源项目
怎么他们都有开源项目经历|手把手教你参与开源_哔哩哔哩_bilibili
- GitHub 上的优质 Linux 开源项目
GitHub 上的优质 Linux 开源项目,真滴牛逼!_linux开源项目-优快云博客
【项目推荐】(含可写入简历的项目)
项目名称 | 推荐观看链接 | 链接视频简介 |
Linux+QT智能猫眼 | 使用stm32mp157单片机,功能比较简单 | |
嵌入式在线词典项目开发 | 系统教学,有课件和源码 | |
基于Linux的视频播放器项目 | 比较基础,用全志开发板 | |
嵌入式Linux数码相框 | 韦东山老师录制的系统教学视频,比较细致 | |
嵌入式linux系统开发WIFI智能灯 | 【Linux系统/QT软件开发】嵌入式linux系统开发WIFI智能灯,考研毕设必备项目,C/C++语言项目,智能家居项目_哔哩哔哩_bilibili | 21年视频,有大概的项目构建框架 |
基于 Linux 的智能家居系统 | 项目演示视频,开源 | |
基于Qt的嵌入式车载智能助手 | 【基于QT的车载智能助手】-嵌入式Linux进阶项目教学 ARM开发/Linux应用驱动移植开发/阿里云服务器/百度地图/百度天气/音乐播放器/环境监测_哔哩哔哩_bilibili | 从0到1系统教学如何实现项目 |
基于Qt的学生管理系统 | 系统教学,比较详细 | |
基于Qt的网页采集软件 | 可以替代网页爬虫的开源网页数据采集软件,DS网页数据采集器,开源 | |
基于Qt的开源远程控制软件(SRE) | 系统讲解,开源 | |
Linux+Qt智能工业电表 | 手把手教你做嵌入式开发项目《智能工业电表》,Linux+Qt综合项目实战课程,留言免费领项目文档及程序源码_哔哩哔哩_bilibili | 项目演示和源码分析 |
物联网视频监控系统 | 韦东山老师录制,六节课,讲了项目实现的基本框架 | |
安防监控系统 | 系统教学 | |
嵌入式Linux&Android人脸识别测温门禁 | 【干货】嵌入式Linux&Android底层开发入门教程 30节课 从零开始实现人脸识别测温门禁 RK3399/3328平台内核驱动单片机嵌入式_哔哩哔哩_bilibili | 需要一定的基础,系统教学 |
基于 imx6UII 的无线点菜系统开发 | 嵌入式开发实战项目介绍——基于 imx6UII 的无线点菜系统开发 Linux/QT/驱动开发/网络开发/TCP/UDP/系统开发_哔哩哔哩_bilibili | 项目介绍 |
基于I.MX6ULL Linux的智慧农场项目 | 基于I.MX6ULL的Linux C多线程物联网网关+STM32+Qt上位机+Linux C++多线程服务器(含web服务)的多种无线通信系统的智慧农场项目_哔哩哔哩_bilibili | 物联网网关+STM32+Qt上位机+Linux C++多线程服务器(含web服务)的多种无线通信系统的智慧农场项目 |
智慧无人超市项目 | 基于Linux C++多线程服务器 + Qt上位机开发 + STM32 + 8266WIFI的智慧无人超市项目_哔哩哔哩_bilibili | 基于Linux C++多线程服务器 + Qt上位机开发 + STM32 + 8266WIFI,开源 |
瑞芯微 RV1126 实现 USB 摄像头 | 嵌入式Linux音视频项目介绍-基于瑞芯微RV1126实现USB摄像头,学它轻松拿到offer!/黄金稀缺才高价,学技术呢?浅聊一下如何实现自身价值_哔哩哔哩_bilibili | 项目介绍,主要锻炼SDK环境搭建。 |
【嵌入式AI】瑞芯微 RV1126 实现交通标志识别 | 项目演示视频 | |
海思3519平台4K相机 | 嵌入式开发项目实战介绍——基于 Hi3516 的HDMI 相机开发 MIPI-CSI/Linux驱动开发/boot/QT/海思/单片机/物联网_哔哩哔哩_bilibili | 基于Hi3516的HDMI相机开发的项目介绍 |
数字式双目体视显微系统设计 | 22年录制的系统的FPGA/ZYNQ实现SGM双目立体匹配算法教程 | |
基于图像处理的手套瑕疵检测系统 | 系统讲解,视频短小精悍 | |
【嵌入式AI】基于Jetson Nano的遥感农业田块分割系统 | 基于深度学习技术的农业遥感监测平台的项目演示 | |
Linux高并发服务器开发 | 系统,细致,linux系统部分比网络部分讲得好,可以结合APUE这本书观看 | |
实现分布式网络通信框架 | 基于C++的项目介绍视频 | |
树莓派4变身路由器 | 如何让树莓派4变身路由器!OpenWrt一款开源的路由器系统给你玩转不一样的路由功能!【明富其识】_哔哩哔哩_bilibili | 介绍如何把树莓派4配合开源的OpenWrt架设成一个路由器 |
树莓派变视频监控(专用Linux系统) | 3分钟教学视频,评论区有其他方案,可以参考 | |
用树莓派4B搭建Web服务器 | 7分钟教学视频,内容精简 | |
树莓派OpenCV人脸识别 | 系统教学,比较详细。链接合集内还有其他树莓派玩法(路由器、天气提示器、温湿度记录仪)。 | |
树莓派温室监控系统 | 厦大学生项目汇报,项目功能含温湿度监测、LED报警、监测作物生长 | |
树莓派盲人出行辅助系统 | 盲人出行辅助系统——厦门大学学科实践(四)大作业汇报(红绿灯识别、树莓派、OneNET、LED、跌倒检测、距离检测)_哔哩哔哩_bilibili | 厦大学生项目汇报,项目功能含跌倒监测、红绿灯识别、障碍物监测、LED灯提示和电机提示 |
树莓派机器人 | 从零制作树莓派机器人,开源 | |
树莓派4 DIY智能魔镜 | 项目演示视频,开源 | |
树莓派+opencv,检测内外边框以及红绿激光点 | 23电赛E题视觉方案讲解 | |
树莓派+arduino+opencv的自动驾驶 | 项目演示视频,不是很清晰,开源 | |
基于树莓派4B开发的ROS机械臂 | 开源!基于树莓派4B开发的ROS机械臂,内置AI视觉和MoveIt运动学算法 ,实现人工智能手眼合一、移动跟随、智能分拣、智慧仓储系统,ArmPi FPV_哔哩哔哩_bilibili | 项目演示视频,内置AI视觉和MoveIt运动学算法,开源 |
【自动驾驶】基于Jetson Nano的智能小车 | 基于Jetson nano 2GB打造的ROS AI智能小车的项目演示 | |
【汽车电子】AURIX 智能小车 | 22年录制的第18届智能汽车培训 | |
【音视频】基于瑞芯微RV1126实现USB摄像头 | 嵌入式Linux音视频项目介绍-基于瑞芯微RV1126实现USB摄像头,学它轻松拿到offer!/黄金稀缺才高价,学技术呢?浅聊一下如何实现自身价值_哔哩哔哩_bilibili | 项目介绍,以及教学片段试听,完整需付费 |
【音视频】onvif 客户端实战开发 | ONVIF系列教程第3讲:Python开发ONVIF客户端,鉴权,校时,图像抓拍,修改分辨率,云台控制_哔哩哔哩_bilibili | Python开发ONVIF客户端 |
【笔试面试八股文】
- 大厂面试题
- 笔试面试资料直接加微星
- 面试八股文