【经验分享】嵌入式入坑经历(选段)
文章目录
- 你现在的工作中所用到的专业知识有哪些呢?
- 为什么想转行了?
- 后来为什么从事了嵌入式行业呢?
- 你对嵌入式的兴趣是何时培养起来的?
- 你是怎么平衡兴趣爱好和工作的关系的?
- 平时做的事情对你现在的工作有哪些帮助?
- 对于有志学习嵌入式开发的在校大学生,你有哪些建议?
本文是来自某个大一学生的一次社会实践作业,也是对我的采访内容。采访过程中,也分享了一些我个人的心路历程和嵌入式初学者的建议。我挑选一部分采访内容,也是很多大学生和初学嵌入式的小伙伴经常问的问题,供各位参考。
你现在的工作中所用到的专业知识有哪些呢?
从 2017 年毕业到现在的这段时间里,我目前的职业生涯分为两部分吧,就是转行前和转行后。关注我比较久的小伙伴应该知道我转行前是电气工程师,工作内容主要以 PLC 和 HMI 编程为主。而我大学的专业也正好是电气工程及其自动化,但在这个阶段所用到的大学学到的专业知识其实也不算多,比较常用的就是电工学的知识,还有一些电机拖动、PLC 编程等,偶尔有还用到一些微积分的知识,总的来说大学学到的知识在这个阶段的工作用到不足 20% 吧。
转行后,大学学的专业知识用到就更少了,因为转行到了嵌入式行业,做的是 Android 驱动开发工程师。那么在这个阶段的工作,数字电路和模拟电路会涉及到一些。我们大学还学过 C51 单片机的编程,用的是汇编语言编程,工作的主要编程语言就是 C 语言和少量的汇编,也算是用到了这个专业知识了吧,毕竟专业不对口,学到的没用到或者用的少。
为什么想转行了?
原因有几个吧。
第一就是工作环境比较差,做 PLC 编程的工作环境一般都是在郊区的工厂,工厂是什么样的环境我相信你应该可以脑补一下是什么画面。而我就是在那种脏乱差的环境中,带着电脑面对着一堆铁疙瘩写 PLC 的程序。
第二就是无休止的出差加班和极其混乱的作息时间。做过这行的都知道,出差是避免不了的,基本就是项目在哪,家就在哪。这里要特殊说明一下,干工控行业的出差和其他行业的出差不一样,刚刚我也说了,我们的工作环境就是在郊区,所以我们出差住的环境也好不到哪去,要么是工厂的个人宿舍,要么就是民宿,那种连发票都开不了的民宿,哈哈。而且一般我们出差基本上是开启无休模式,早上七八点左右就在流水线旁边守着,晚上起码九点后才能走,甚至通宵。长期出差带来另一个弊端就是,会和这个社会有一定的脱节,可以说我从业的这几年里,几乎没有朋友,也没有什么娱乐活动,还落下了一身病,长期饮食和作息不规律,导致现在肥胖和轻度脂肪肝。
第三是工作压力,我们这一行都是跟一些机械设备打交道的,只要是机械,就有精度加工不到位,也可能是设计时考虑不周到,但是硬件这种东西,又是非标准设备,一旦做出来就不可能去修改,所以甲方就会让电气工程师来改程序,试图通过软件来弥补硬件的不足。说实在的,电气工程师能解决的问题一般都自己解决了,要是解决不了的问题只能从机械层面解决,但最后都是我们电气工程师的锅,甲方还会屌我们技术水平差。
第四就是薪资上限比较低,工控属于制造业,目前制造业是什么现状,大家都很清楚,不管是薪资还是职业前景,跟其他行业相比差的不是一点半点。尽管这一行的确越老越吃香,但是当年龄到了三十岁之后,谁还受得了到处奔波、彻夜不眠的生活,谁还不想娶妻生子、安稳生活。
所以,想了很多,也考虑了很多,我还是决定要跳出这个行业。
后来为什么从事了嵌入式行业呢?
有了转行的想法后,我开始收集我感兴趣的行业的相关信息,例如前端、后端、嵌入式,APP开发等计算机相关的,甚至平面设计、金融、自媒体、电商、销售等与技术岗不相干的行业,我都一一去了解了一下。
那为什么最后还是选择嵌入式呢?
首先,我个人是非常喜欢那种软硬件结合实现某些功能所带来的成就感,哪怕是一个在内行人士看起来是个很不起眼的小玩意,我也很享受这个乐趣,毕竟这是我自己 DIY 的。
其次是我从小对电子产品就有很大的兴趣,就是比如说小时候看电视,别的小朋友沉溺于动画片的时候,我却在想为什么电视机可以播放动画片。我小时候也拆过一些遥控玩具,还有我爸废弃的手机,所以从小就对这些可以自己动、可以自己发出声音、可以显示画面的东西特别有兴趣,特别想知道这是怎么实现的。
最后就是受到 B 站大佬稚晖君的影响,他是我见过全栈技术最全面的一个工程师,在 B 站发布的作品看得我也是很是震撼和钦佩。也是希望能像他那样,以兴趣爱好为职业,通过学习专业技能,实现自己的一些想法,做一些自己想要的小玩具。
你对嵌入式的兴趣是何时培养起来的?
就如我前面说的那样,我从小就对电子产品就有很大的兴趣,对嵌入式的热爱始于我小时候学会拆家电的那个阶段。大学阶段入门了模数电、单片机、Linux、自控原理之类的课程之后,也是解答我从小对电子产品的一些问题。
其实嵌入式的专业在我看来和英语,一样是一门基础技能,是一门研究 “怎么高效地解决问题” 的学科,很容易和其他学科交叉结合,所以在我读电气专业的时候,其实就已经开始自己学习计算机的相关知识了,像考研 408 这种,就是在这个阶段学习的。学习的方法有一个分支,叫做 Problem-Based Learning,就是以问题为导向的学习,通过自学寻找解决问题的方法和问题的答案。当然也是在这个自学的阶段,对嵌入式的兴趣越来越浓厚。
你是怎么平衡兴趣爱好和工作的关系的?
很幸运的一点是,我的兴趣爱好就是我的工作。
我认为的理想工作状态就是:工作是源于自己的意愿, 每天做自己喜欢的事情而积累经验,在适当的压力下积极创新,收获自身成长的同时顺便收获可观的报酬。简单地说,就是个人爱好、公司价值、时代趋势相统一。我认为目前正在朝着这个方向努力,虽然还有很多东西要学习。
平时做的事情对你现在的工作有哪些帮助?
前面提到了 Problem-Based Learning,以解决问题为导向进行学习,未来是终身学习的时代,不存在大学毕业之后就不学习了。其实工作的经验积累也是一个学习的过程。
在我看来,知识大体上是相通的,在不同学科之间的迁移学习可以带来事半功倍的效果,工作做的项目和自己平时 DIY 项目是存在相辅相成的关系的。工作上对我们软件工程师有严格的编码规范和白盒测试能力,我可以反过来用于我自己的 DIY 项目上;而我平时的 DIY 项目也会有自己的总结归纳和输出文档,也可以把这个习惯放到工作当中,用来提高自己的业务素质,可以提高自己的闭环能力和复盘反思能力。
对于有志学习嵌入式开发的在校大学生,你有哪些建议?
一定要在大学的时候规划好自己的职业生涯,即使不知道未来是发生什么事情。不管是考研也好,出国留学也好,还是直接毕业去找工作,都要有明确的目标,并且朝着这个目标有条不紊地去执行自己的学习计划。
想做嵌入式开发的话,一定不要只关注自己眼前技术的一亩三分地,一定要保持自己的好奇心。去学 RTOS,去学 RISC-V,去学异构……永远没有完全准备好的人才,年轻时要边打仗边学习。当然知识面一多之后,很难面面俱到,要学会拎清楚重点,剩下的知识只需要在用到的时候会查阅工具书就行。厉害的工程师不是可以背下来多少语法标准和手册资料,而是在有全局观的同时能有能力解决核心问题。所以我认为知识分为两种,一种是你知道的,一种是你知道可以在哪里找到的。
基础学科一定要学好。虽然我们可能不止一次的听到 “大学学的知识在工作中用不到”、“学高等数学没用” 等等这样的论调,其实有些知识就是一些原理性的知识,如果学不好可能会影响后面的学科知识。比如说,学习《通信原理》的时候,需要用到傅里叶变换,那学习傅里叶变换又要先懂得函数周期性分析吧。所以不是知识用不到,而是说这些知识是另一个知识的基础。还有像一些数学物理的知识可能确确实实用不上,但是在学习过程中,可能已经潜移默化地帮助我们提高了自己的逻辑思维能力和解决问题的能力,也就是说学习的结果没用到,但是学习的过程已经提高了自己。
相关文章:
【经验分享】嵌入式入坑经历(选段)
文章目录 你现在的工作中所用到的专业知识有哪些呢?为什么想转行了?后来为什么从事了嵌入式行业呢?你对嵌入式的兴趣是何时培养起来的?你是怎么平衡兴趣爱好和工作的关系的?平时做的事情对你现在的工作有哪些帮助?对于有志学习嵌入式开发的在校大学生…...
Docker面试整理-Docker与虚拟机的区别是什么?
Docker 容器和传统的虚拟机(VM)都是提供隔离的运行环境以部署和运行应用程序的技术,但它们在架构和性能上存在显著的不同。了解这些差异可以帮助你选择最适合特定需求的解决方案: 基础架构:虚拟机:每个虚拟机都包括完整的操作系统、应用程序、必需的库和二进制文件,运行在…...
Java:JDK8 GC中ParNew和CMS的问题说明
JDK8中常用如下的垃圾收集器,它们分别运用在年轻代和老年代: ParNew : 年轻代垃圾收集器,多线程,采用标记—复制算法。 CMS:老年代的收集器,全称(Concurrent Mark and Sweep)&#…...
学单片机前先学什么?
先学c语言和数字电路 这里默认你说的单片机是51单片机,通过你的问题,我猜你的单片机应该还没有入门,如果是入门的话,一般都是从51单片机开始的。刚好我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从…...
数据可视化:Matplotlib 与 Seaborn
数据可视化是数据分析中至关重要的一部分,它能帮助我们直观地理解数据的分布、趋势和关系。Python 中,Matplotlib 和 Seaborn 是两个最常用的可视化库。本文将详细介绍如何使用 Matplotlib 和 Seaborn 进行数据可视化,包括基本图形、图形定制…...
【linux】自定义快捷命令/脚本
linux自定义快捷命令 场景自定义命令自定义脚本 场景 深度学习经常要切换到自己环境,conda activate mmagic,但是又不想每次重复打这么多字,想使用快捷命令直接切换。 自定义命令 使用别名(alias)或自定义脚本来创建…...
使用onnxruntime加载YOLOv8生成的onnx文件进行目标检测
在网上下载了60多幅包含西瓜和冬瓜的图像组成melon数据集,使用 LabelMe 工具进行标注,然后使用 labelme2yolov8 脚本将json文件转换成YOLOv8支持的.txt文件,并自动生成YOLOv8支持的目录结构,包括melon.yaml文件,其内容…...
QT 信号和槽 一对多关联示例,一个信号,多个槽函数响应,一个信号源如何绑定多个槽函数
在窗体里放置一个单行文本编辑控件(QLineEdit)、一个标签控件(QLabel)和一个文本浏览控件(QTextBrowser),在单行文 本编辑控件里的文本被编辑时,标签控件和文本浏览控件都会同步显示…...
C++ AVL树 详细讲解
目录 一、AVL树的概念 二、AVL树的实现 1.AVL树节点的定义 2.AVL树的插入 3.AVL树的旋转 4.AVL树的验证 三、AVL树的性能 四、完结撒❀ 一、AVL树的概念 二叉搜索树虽可以缩短查找的效率,但 如果数据有序或接近有序二叉搜索树将退化为单支树,查 …...
Faster R-CNN:端到端的目标检测网络
本文回顾了由微软研究人员开发的 Faster R-CNN 模型。Faster R-CNN 是一种用于物体检测的深度卷积网络,在用户看来,它是一个单一的、端到端的统一网络。该网络可以准确快速地预测不同物体的位置。为了真正理解 Faster R-CNN,我们还必须快速概…...
如何给 MySQL 表和列授予权限?(官方版)
目录 授予表级别权限 授予列级别权限 如何给MySQL表和列授予权限是MySQL数据操作中非常重要的步骤,也是企业级使用MySQL数据库的起步点,以下分别参照官方教程整理的MySQL数据库的权限操作。 以下的语句可以直接使用MySQL的命令行进行操作(如何…...
攻防世界testre做法(考点:base58)
在做这道题目之前,我们先来简单了解一下base64加密和base58加密,先来说一些预备知识,bit为1个位,即一个0或1,八个位组成一个字节,即八个二进制数。 base64编码原理:1,在使用base64加…...
计算机视觉与模式识别实验1-1 图像的直方图平衡
文章目录 🧡🧡实验流程🧡🧡1.读入图像‘rice.png’,在一个窗口中显示灰度级n64,128和256的图像直方图。2.调解图像灰度范围,观察变换后的图像及其直方图的变化。3.分别对图像‘pout.tif’和‘ti…...
【C++课程学习】:C++入门(函数重载)
🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🌈函数重载: 🍉1.参数个数不同: 🍉2.参数…...
skywalking介绍及搭建
链路追踪框架比对: skywalking安装部署: 下载地址:Downloads | Apache SkyWalking 配置微服务与skywalking整合: copy agent/optional-plugins/apm-spring-cloud-getway-xx.jar到plugins,然后重启skywalking 监控界面…...
分析示例 | Simufact焊接工艺仿真变形精确预测汽车结构
导语 焊接是汽车制造过程中一个关键环节,白车身、发动机、底盘和变速箱等都离不开焊接工艺的应用,主要涉及气保焊、电阻点焊、激光焊、电子束焊等多种焊接工艺。由于汽车车型众多、成形结构复杂、汽车制造质量、效率、成本等方面的综合要求。如何高效、…...
模式识别选择题
影响K-均值聚类算法效果的主要因素之一是什么? A. 初始聚类中心的选取 B. 样本输入顺序 C. 模式相似性测度 D. 分类准则 答案:A支持向量机(SVM)在处理非线性问题时,通常使用什么方法? A. 引入核函数 B. 增加…...
【Java基础】线程方法
start():启动线程,使线程进入就绪状态。 run():线程执行的代码逻辑,需要重写该方法。 停止线程 void interrupt() 中断线程,让它重新去争抢cpu 如果目标线程长时间等待,则应该使用interrupt方法来中断等待…...
C++之动态数组
C给我们提供了一个叫Vector的类,这个Vector在std命名空间中。这个Vector有点像一个集合,一个不强制其实际元素具有唯一性的集合,和数组一样,但是和C普通的数组又不太一样,和标准的数组不同当你创建Vector时,…...
使用 image-combiner 开源项目实现对海报图片的生成
1:gitee 项目地址 image-combiner: ImageCombiner是一个专门用于Java服务端图片合成的工具,没有很复杂的功能,简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
