嵌入式发展方向,职业规划,已经,应用,驱动,选择方向。

news2024/10/27 7:15:09

闲着没事,写写自己的心得。

本人有近8年的嵌入式开发经验,谈谈自己对,嵌入式发展方向,职业规划的想法,也可以给那些在校大学生点参考意见

本人是13-17年的本科毕业生,这个时候,是互联网快速,发展的时期,中国的科技进步非常大,但是,缺点软肋还是很多
操作系统,服务器,芯片,很多核心都时国外的。本人学的是电子专业,正是看到了国内对芯片的,巨大需求,必定推动国内ic的发展,所以选择了电子专业,也是出于对电子的热爱,小时候,有个搭积木的游戏机,觉得非常好奇,拆烂过好几台,所以选择了电子专业。

电子专业,毕业可选择的方向有两个方向,硬件,软件,软件又细分几个方向(应用,驱动,内核系统,算法)。

硬件,可以去设计芯片,也可以去设计产品,外围电路,pcb板。
软件,可以可以做系统驱动,应用。

到底选哪个,从长期看,选硬件,这是我多年后的心得,当然是我自己的想法,为什么会有这种想法,硬件难度相比软件小,好学一点
,而且还有一个优势,越做经验越丰富,不容易,被公司裁员,相对来说,不会卷,不需要可持续学习太多东西。每个公司的硬件,招一两个,小公司,要优化裁员,不容易轮到你,因为硬件是需要一直生产的,出了问题,是需要经验的人才能解决。到了后期,工资并不低,甚至比软件开发高,我同事,毕业两年混混当地,10k左右,第四年已经25k了,而我工作两年时是15k,5年后,才拿到25k,而且,后面突破比较难,并不是技术,而是大多数公司,支付不起。但是硬件,很容易往上继续走,28k,30k,容易的多。要命的是软件,需要持续学习很多技术,学的多,忘的多,反反复复学习。35岁危机,软件是比较焦虑的,硬件相对来说,并没有那么大压力。

本人是嵌入式开发,(应用,驱动,内核系统,算法)都搞过,嵌入式软件工程师,嵌入式驱动工程师,嵌入式系统工程师,大部分,是应用,驱动都搞,当然这种大部分是mcu、soc应用,驱动,需要搞的,非常少公司有这需求。

所以,本人的建议,毕业生,先搞mcu+ rtos +gui,搞一两年,薪水并不低,15k起步,比较常见。甚至搞一辈子也是可以的,30k也容易拿到,把rtos啃下来,并不难。我有个同事就是走的这条路,现在薪水比我高很多,30多k了,这点令我很惊讶,不是他技术比我牛,恰巧mcu
难度相比linux简单很多。相反,我在linux深耕了非常多年,从大学开始,就学完了驱动,内核,应用,到现在,有10年的使用经验了,薪水不尽人意,并不是自己不敢往上涨,是市场需求,普遍偏低,相比互联网,难度还比互联网大,当然,除了华为,大公司级别的,如果高学历985,211就算了,本人,普通本科。但是学习能力并不差,相反,我认为,自己的编程水平觉悟很高。

本人从事过mcu,soc,应用,驱动,算法开发,非常杂,也非常累,这些年,选择了四家公司,正是自己以前的思想害了自己,想搞全栈开发,一人独挡一面。通过分析市场,招聘网站信息,以及个人学历,并不会有这样的机会,市场也不会太多需求。

所以尽早认清自己的能力,是非常重要的,尽早调整自己的职业规划,无比重要,关系到个人的职业生涯,发展。

马上就30岁了,再过5年,35了,被时代的机器,推入到卷的时代,难免让人焦虑。

本人接触过,甚至升入研究过soc,内部资源,汇编,uboot,部分内核,字符驱动框架,以及系统,文件系统。

以前是想走驱动开发的路,也是被互联网吹嘘的,带着走的,驱动开发待遇好,其实真的就那样,应用开发,反而还要高,有的。
现在的驱动,基本是soc芯片商写好的,所以去到华为,确实可以。但是985的比列还是少,大部分就是普通生,另外,别人外包,哪个外包,就不说了。

本人自己的技术栈规划,也是对某些和我相似经历,一种探讨,交流,看我说的对不对

linux方向

系统驱动的认识程序

需要对soc大概的了解,寄存器,中断源,向量表,uboot可以大概的了解,阅读一下源码,汇编部分,如何启动soc的,到启动内核的
对nand,ddr,norflash,特性了解,本人写过几篇文章,介绍它们的启动原理。

内核,需要对进程管理,有比较深入的理解,多阅读,不管驱动开发,应用开发,对进程了解是非常重要的。然后知道一些启动流程,挂载跟文件系统就够了

驱动,字符设备一定要熟悉,深入理解,gpio等等,(input,lcd,i2c,uart),可以深入一点,也可以不深入。
usb,emmc,net,了解大概就行,会调试,移植,使用,就行。比如分区,设置网络协议栈。

codex,camera,看情况,如果是音视频方向,需要深入一点,这个方向,待遇不低,难度也不低。

根文件系统,会设置启动脚本,制作,部署就可以了。

应用方向

深入理解研究freertos系统,这个可以帮助理解进程调度,对开发产品,是非常重要的
深入理解进程,线程
深入理解网络编程,tcp协议
深入理解io编程
深入理解i2c,spi,uart,协议。
深入理解,异步,同步,select,竞争,锁
结合音视频的soc,比如hisi35xx,深入理解,音视频,采集,传输,编码(不深入研究具体压缩算法,如h264)
深入理解gui,qt。

结合应用,会配置usb,以太网,,emmc,会写lcd,接camera,touch,gui,更高级的,音视频,采集,流媒体,图像算法,可以研究OpenCV,FFmpeg,alsalib等等。

所以本人发展方向是应用开发,结合自己在linux底层的基础上,对系统,计算机的认识,这种巨大优势,帮助我更好的理解,开发应用程序。不是纯应用开发,千万别走纯应用开发(qt开发,c++开发)。一定是结合嵌入式。

对于普通学历的学生,选择软件开发,最好是走应用开发结合一些底层,的道路,要么就是前面说的 mcu + rtos + gui。这两个方向前期可以搞mcu + rtos + gui,不想太累,就一直搞,想上升学习就转linux。我踩过的坑是,这两个都学了,也开发了,类死,耗损精力。

另外该学安卓吗,我是不会去学,没那么多精力,我的就业选择顶多是soc+stm32。有人建议我深入研究某个模块,比如音频alsa,这个我绝对不会去搞,除非公司有需求,安排研究。我的原则是会用就ok了。camera到是可以深入研究,因为的倾向是音视频方向,暂时。

就业方向上
暂时只考虑,音视频,智能汽车。

补充,还有,搞电机方向的,这个是工业控制比较多,也有搞无人机的,这个,本人未涉及,无发言权。

如果有不对的地方,望大家指教。

另外补充一点,千万别去培训班,花几万块培训,就是人傻钱多,不如自己大学期间,花钱买开发板,把所有例程,反反复复,啃下来。找工作,那是没一点问题,本人大学期间,不上不重要的,非专业课,只自学,靠老师教的,叫老师来都找不到工作,自学收或是巨大的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2224501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

订购 Claude AI 的第二天 它独自完成 文字转语音 flask应用

图二里,删除几个无关的 chats 全程我做的工作:向 AI 提要求,copy / paste 代码,在venv验证运行,向 AI 反馈,总共用了3个 chats.(图中的只有一个 Chat, 删掉的另外两个: Python 库安…

背包问题(位运算优化、bitset)

3180. 执行操作可获得的最大总奖励| . - 力扣(LeetCode) 给你一个整数数组 rewardValues,长度为 n,代表奖励的值。 最初,你的总奖励 x 为 0,所有下标都是 未标记 的。你可以执行以下操作 任意次 &#xf…

数字IC后端实现 | Innovus各个阶段常用命令汇总

应各位读者要求,小编最近按照Innovus流程顺序整理出数字IC后端项目中常用的命令汇总。限于篇幅,这次只更新到powerplan阶段。有了这份Innovus常用命令汇总,学习数字IC后端从此不再迷路!如果大家觉得这个专题还不错,想继…

Linux 字符设备驱动 之 无法归类的《杂项设备驱动》

学习目标: 了解 杂项设备驱动 和普通字符设备的异同,及杂项设备驱动程序的写法 学习内容: 一、杂项设备驱动的特别之处 杂项设备(Miscellaneous Devices)是一种通用的设备类型,用于表示那些不适合其他设备…

LeetCode 热题 100之普通数组

1.最大子数组和 思路分析:这个问题可以通过动态规划来解决,我们可以使用Kadane’s Algorithm(卡登算法)来找到具有最大和的连续子数组。 Kadane’s Algorithm 的核心思想是利用一个变量存储当前的累加和 currentSum,并…

Prometheus自定义PostgreSQL监控指标

本文我们将介绍如何在Prometheus中创建自定义PostgreSQL指标。默认情况下由postgres_export运行的查询可能不能满足用户需求,但我们可以创建自定义查询,并要求postgres_exporter公开自定义查询的结果。postgres_exporter最近被移到了Prometheus Communit…

acwing排列数字

排列数字 给定一个整数 n,将数字 1∼n排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 n。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数…

lvs知识点归纳

LVS(Linux Virtual Server)是 Linux 内核的一种负载均衡技术,主要用于实现高可用性和高性能的服务器集群。以下是一些关键知识点的归纳: 基本概念 虚拟服务器:将多台物理服务器(真实服务器)抽象…

论文速读 - Cleaner Pretraining Corpus Curation with Neural Web Scraping

这是论文 Cleaner Pretraining Corpus Curation with Neural Web Scraping 的速读笔记,同时简要分析这篇论文作者的实现代码. 论文的主要工作是提出了基于神经网络的高效crawler. 这里先澄清scraper和crawler的区别,一图胜千言. Abstract The web conta…

openpnp - bug - 散料飞达至少定义2个物料

文章目录 openpnp - bug - 散料飞达至少定义2个物料笔记END openpnp - bug - 散料飞达至少定义2个物料 笔记 散料飞达上定义的物料个数用完了,现在只需要一个料就可以。 用顶部相机去找编带上是否还有一个单独的料,找到了。 定义散料飞达的料为1个&…

springboot使用attachment方式下载文件损坏问题解决

文章目录 场景解决方式全部代码 场景 之前使用springboot下载文件一直正常&#xff0c;今天新对接一个接口出现文件破损&#xff0c;无法下载。 之前的代码: Overridepublic ResponseEntity<ByteArrayResource> resultExcel(ExcelResultDTO excelResultDTO) {log.info(…

CentOS7系统内核升级

1. 安装新内核 采用离线方式升级 去到下面网站中下载rpm安装包 https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/下载 wget https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.278-1.el7.elrepo.x86_64…

探寻闲鱼libsgmain加解密算法(4) ——JNI入口跳转

关注我的人都知道我一直在学习阿里的加密和算法&#xff0c;除了研究逆向问题&#xff0c;还会把学来的阿里技术用在自己的应用上。 为什么&#xff1f;因为学习大厂的应用&#xff0c;是进步最快的方法。而大厂在安全和加密方面的技术&#xff0c;个人觉得阿里做的是最好的。 …

Maven项目管理工具-初始+环境配置

1. Maven的概念 1.1. 什么是Maven Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。 理想的项目构建&#xff1a;高度自动化&#xff0c;跨平台&#xff0c;可重用的组件&#xff0c;标准化的流程 maven能够自动下载依…

Maven 不同环境灵活构建

需求: 使用 Maven根据不同的构建环境&#xff08;如开发、测试、生产&#xff09;来定义不同的配置&#xff0c;实现灵活的构建管理。 需要Demo项目的可以参考&#xff1a;我的demo项目 一、项目分层 一般的初创项目不会有特别多的配置文件&#xff0c;所以使用 spring.profile…

Android调用系统相机录像并设置参数

最近要做一个 Android上的录像功能&#xff0c;由于之前做拍照功能完全是用自定义方式&#xff0c;太麻烦。故这次决定直接调用系统相机来录像。 一、添加权限 首先&#xff0c;添加必要的权限 <!-- 授予该程序使用摄像头的权限 --><uses-permission android:name&q…

K8s中TSL证书如何续期

TSL是什么 K8s中的作用是什么&#xff1f; 在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c;TSL 指的是 Transport Layer Security&#xff0c;也就是传输层安全协议。它是用来保护在网络上传输的数据的安全性和隐私性。 TSL 在 Kubernetes 中的作用包括&#xff1a;…

B+树(B树的改进)

目录 一、什么是B树&#xff1f; 二、B树的性质 1.B树被广泛作为数据库索引的索引结构 2.m个分支的结点有m个元素 3.每个元素对应子结点最大值 4.多级索引结构 5.叶子结点层包含所有元素 三、B树和B树的区别 四、B树的查找 1.顺序查找 2.随机查找 3.范围查找 一、什…

JVM机制

文章目录 JVM 简介JVM内存划分堆&#xff08;线程共享&#xff09;Java虚拟机栈&#xff08;线程私有&#xff09;本地方法栈&#xff08;线程私有&#xff09;程序计数器&#xff08;线程私有&#xff09;方法区&#xff08;线程共享&#xff09; JVM类加载机制类加载过程双亲…

校园表白墙源码修复版

此校园表白墙源码基于thinkphp&#xff0c;因为时代久远有不少bug&#xff0c;经本人修复已去除大部分bug&#xff0c;添加了美化元素。 https://pan.quark.cn/s/1f9b3564c84b https://pan.baidu.com/s/1bb9vu9VV2jJoo9-GF6W3xw?pwd7293 https://caiyun.139.com/m/i?2hoTc…