ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

嵌入式选软还是硬?五个维度对比与学习路线全解析

嵌入式选软还是硬?五个维度对比与学习路线全解析 1. 先搞清楚嵌软和嵌硬到底在干什么每年三四月份实验室里总有一批大三的学弟学妹跑来问我同一个问题“学长我想做嵌入式但嵌软和嵌硬到底选哪个”这个问题我听了不下五十遍每次都得从头讲一遍。网上那些“嵌入式学习路线”的帖子翻来覆去就是画一张大图从C语言到Linux驱动到ARM架构看完更迷糊了。今天我就把这事儿彻底讲透从日常工作内容、技能栈、薪资天花板、入行难度、职业路径五个维度拆开揉碎让你看完能直接做决定。先说一个最容易被混淆的概念嵌软和嵌硬不是两个平行的岗位而是嵌入式产品开发链条上的两个环节。打个比方做一款智能音箱嵌硬工程师负责选主控芯片、画原理图、布PCB、调电源树、过EMC认证嵌软工程师负责写驱动、移植系统、做应用层逻辑、优化功耗。两个人坐在同一间办公室但每天打开的软件、看的文档、用的工具完全不一样。我见过太多人把“嵌入式”当成一个岗位来理解结果面试的时候被问到“你做过哪些嵌入式项目”张口就说“我用STM32点了个灯”面试官直接无语。点灯这件事嵌硬的人关心的是GPIO的驱动电流够不够、上拉电阻选多大、LED的压降是多少嵌软的人关心的是寄存器怎么配、时钟树怎么初始化、中断优先级怎么设。同一个现象两个视角这就是本质区别。那为什么会有“选哪个”的纠结因为大部分高校的课程设置是混在一起的。单片机原理与应用、嵌入式系统设计、ARM体系结构这些课既讲硬件也讲软件考试考的是概念实验做的是开发板。学生做完一个温湿度采集的项目既写了C代码又连了传感器就以为自己软硬都懂了。实际上你写的C代码只是调用了库函数你连的传感器只是插了几根杜邦线。真正的嵌硬要画四层板真正的嵌软要改内核驱动。这两件事的门槛和天花板完全不同。我个人的判断标准很简单如果你看到电路图就头疼看到寄存器手册就兴奋选嵌软如果你看到代码就犯困看到示波器波形就想研究选嵌硬。但这个判断太粗糙了下面我展开讲。1.1 嵌硬工程师的一天到底在干什么嵌硬这个方向细分下来至少有四个子方向数字电路设计、模拟电路设计、PCB Layout、硬件测试与认证。刚入行的嵌硬工程师通常从原理图设计和PCB Layout做起资深之后转向系统架构和信号完整性分析。我拿一个真实项目举例。去年帮一个朋友的公司做一款工业环境监控设备主控用的是STM32MP157外挂DDR3、eMMC、千兆PHY、RS485收发器、隔离电源。嵌硬工程师的工作流程是这样的第一步需求分析与器件选型。主控选型要考虑算力、功耗、封装、供货周期、温度等级。工业级要求-40到85度商业级只能0到70度价格差三倍。DDR3选三星还是镁光要看批次一致性和采购渠道。这一步就要花两周每天对着Digi-Key和立创商城的参数表对比。第二步原理图设计。用Cadence OrCAD或者Altium Designer画图。电源树要算功耗预算每个LDO和DCDC的输入输出电容要按datasheet推荐值配上拉下拉电阻要算阻值晶振要算负载电容。我见过一个新手把32.768kHz晶振的负载电容选成22pF结果RTC每天慢十几秒查了一周才发现是电容选错了。第三步PCB Layout。这是嵌硬最核心的技能之一。DDR3要走等长线误差控制在±50mil以内差分对要走阻抗匹配USB差分线90欧姆以太网差分线100欧姆电源平面要分割模拟地和数字地要单点连接过孔要算载流能力1盎司铜厚0.5mm孔径的过孔大概能过1A电流。这些规则不是背出来的是踩坑踩出来的。第四步打样与调试。板子回来之后先目检再测电源阻抗再上电测各路电压。然后用示波器看晶振起振、看复位时序、看DDR眼图。这一步最考验经验因为很多问题不是原理错误而是布局布线导致的信号完整性问题。比如DDR跑不稳可能是走线太长、参考平面不完整、端接电阻位置不对。第五步EMC测试与整改。产品要过CE、FCC认证辐射发射和传导发射超标是家常便饭。整改手段包括加共模电感、加磁珠、加屏蔽罩、改Y电容。我印象最深的一次一个千兆网口辐射超标6dB最后发现是RJ45连接器的金属外壳没接地飞了一根线到机壳地直接降了10dB。你看嵌硬的工作流是从抽象到具体从图纸到实物。你每天打交道的对象是芯片、电阻、电容、连接器、PCB板厂、贴片厂、测试机构。你的成就感来自于“板子一次点亮”和“认证一次通过”。1.2 嵌软工程师的一天到底在干什么嵌软的分支更多粗略分至少有裸机开发、RTOS开发、Linux驱动开发、Linux应用开发、Android BSP开发、嵌入式AI部署。不同分支的技能栈差异巨大但底层逻辑是相通的。还是拿那个工业环境监控设备举例。嵌软工程师的工作流程是这样的第一步Bootloader移植。STM32MP157用的是TF-A加U-Boot。要改DDR初始化参数要配启动介质顺序要加环境变量。这一步的难点在于DDR参数是芯片原厂给的但板子是自己画的时序可能对不上需要反复调。第二步内核移植与驱动开发。Linux内核版本选5.10还是6.1要看芯片原厂的支持情况。设备树要写引脚复用要配时钟要配中断要配。外设驱动包括RS485、千兆PHY、eMMC、DDR、看门狗、RTC。每个驱动都要读芯片手册和内核文档改完编译烧录测试循环往复。第三步根文件系统构建。用Buildroot或者Yocto。要裁剪busybox要配systemd或者init脚本要加库文件要配网络服务。Buildroot相对简单Yocto更灵活但学习曲线陡峭。第四步应用层开发。用C或者C写业务逻辑用Qt写界面用SQLite存数据用MQTT上报云端。如果涉及AI还要用TensorFlow Lite或者ONNX Runtime部署模型。第五步系统优化与稳定性测试。启动时间优化、内存占用优化、功耗优化、压力测试、老化测试。我做过一个项目要求启动时间小于3秒最后把内核裁剪到2MB根文件系统用squashfs启动脚本并行化才勉强达标。嵌软的工作流是从底层到上层从驱动到应用。你每天打交道的对象是代码、编译器、调试器、日志、协议文档。你的成就感来自于“驱动跑通了”和“系统稳定运行30天无重启”。1.3 两个岗位的技能栈对比光说工作内容还不够我把两个岗位的技能栈列成表格你对照自己的情况打分。技能维度嵌硬工程师嵌软工程师核心语言无但要看懂CC、C、偶尔Python核心工具Altium/Cadence、示波器、频谱仪GCC、GDB、Git、Makefile/CMake核心知识模电、数电、信号完整性、电源设计操作系统、数据结构、计算机网络文档能力芯片手册、IPC标准、EMC规范内核文档、协议规范、API手册调试手段示波器、万用表、逻辑分析仪Printf、GDB、strace、perf数学要求中等阻抗计算、热计算中等算法复杂度、时序分析入行门槛较高需要硬件条件中等一台电脑即可薪资天花板较高资深硬件专家稀缺较高资深内核/系统专家稀缺这张表不是绝对的但能看出一个规律嵌硬的入行门槛更高因为你需要实验室环境、需要买器件、需要打板子嵌软的入行门槛相对低一台电脑就能开始学。这也是为什么很多学生最后选了嵌软——不是不想做嵌硬是条件不允许。但门槛高不代表天花板高。我认识一个做射频硬件的工程师十年经验年薪七位数公司抢着要。也认识一个做Linux内核的工程师八年经验同样年薪七位数。两个方向做到顶尖收入都不差。关键是你能不能做到顶尖。2. 选嵌软还是嵌硬先问自己四个问题上一节把两个岗位的日常拆开了但我知道你还是没做决定。因为“知道他们在干什么”和“知道自己适合干什么”是两码事。下面我用四个问题帮你做决策每个问题都给出判断标准和实际案例。2.1 问题一你的数学和物理基础怎么样嵌硬对物理的要求更高。不是说要你会解偏微分方程而是说你要有物理直觉。什么叫物理直觉看到一条走线你能大概判断它的寄生电感是多少看到一个电源方案你能估算它的效率曲线看到一个散热片你能算它的热阻。我举个例子。一个DC-DC降压电路输入12V输出5V电流2A。开关频率500kHz电感选4.7uH。问电感的纹波电流是多少计算公式是ΔI (Vout × (1 - Vout/Vin)) / (fsw × L)代入ΔI (5 × (1 - 5/12)) / (500000 × 4.7e-6) (5 × 0.583) / 2.35 1.24A也就是说电感电流在2A的基础上上下波动1.24A峰值达到2.62A。如果电感的饱和电流只有2.5A就会饱和效率暴跌甚至烧毁。这种计算在嵌硬工作中每天都要做。如果你看到公式就烦看到数字就晕嵌硬会让你很痛苦。嵌软对数学的要求不同。你不需要算电感但你需要理解算法复杂度和时序逻辑。比如一个链表操作你要知道插入是O(1)查找是O(n)一个中断服务函数你要知道它不能睡、不能等、不能调用可能阻塞的函数。这些不需要高深数学但需要清晰的逻辑思维。我见过数学系转嵌软的做得很好因为逻辑能力强。也见过物理系转嵌硬的做得很好因为物理直觉好。但反过来数学系做嵌硬、物理系做嵌软也不是不行只是要补的课更多。判断标准如果你大学物理和电路分析学得轻松选嵌硬有优势如果你数据结构和高数觉得还行选嵌软有优势。如果两门都头疼那要看你更愿意补哪一门。2.2 问题二你更喜欢和实物打交道还是和代码打交道这个问题听起来很虚但实际影响很大。嵌硬的工作成果是看得见摸得着的。你画的板子贴片回来拿在手里沉甸甸的插上电灯亮了那种满足感很直接。但代价是你要等。等器件到货、等PCB打样、等贴片、等测试。一个周期下来少则两周多则一个月。如果板子有问题改一版又是两周。嵌软的工作成果是看不见的。你写的代码编译成二进制烧到板子里跑起来了但你看不到它。你只能通过日志、通过现象、通过调试器来确认它在工作。好处是改代码很快编译几分钟烧录几秒钟立刻验证。坏处是有些bug极其隐蔽比如内存泄漏跑三天才崩你得花一周去定位。我个人的经验是如果你受不了等待选嵌软如果你受不了抽象选嵌硬。嵌硬的反馈周期长但反馈明确嵌软的反馈周期短但反馈模糊。还有一个现实因素嵌硬需要场地和设备。示波器、电源、万用表、焊台、风枪这些加起来至少几千块。如果你在学校实验室有那没问题如果你在家自学成本不低。嵌软只需要一台电脑装个虚拟机跑个Linux就能开始学。2.3 问题三你的职业目标是什么嵌入式行业的职业路径大致分三条技术专家路线、技术管理路线、产品/创业路线。技术专家路线嵌硬做到资深可以成为信号完整性专家、电源专家、射频专家、EMC专家。这些岗位在芯片原厂、通信设备厂、汽车电子厂很吃香薪资对标互联网高级工程师。嵌软做到资深可以成为内核专家、驱动专家、系统架构师、嵌入式AI专家。这些岗位在手机厂、汽车厂、AI芯片公司很吃香薪资同样对标互联网。技术管理路线嵌硬转项目经理、硬件总监嵌软转技术经理、研发总监。管理路线要求你两个方向都懂一点但不需要精通。我带过一个团队硬件负责人和软件负责人每天吵架就是因为互相不理解对方的难处。如果你两个方向都做过协调起来会顺畅很多。产品/创业路线嵌硬创业做方案公司、做模组、做开发板嵌软创业做软件服务、做算法授权、做SaaS。创业对综合能力要求更高但如果你只懂一个方向也可以找合伙人互补。我认识一个学长嵌硬出身做了五年硬件转去做产品经理现在在一家物联网公司负责整机定义。他说“懂硬件让我知道什么能做懂软件让我知道什么好做两者结合让我知道什么值得做。”这句话我记了很久。2.4 问题四你现在的条件允许你选哪个这个问题最现实。我见过太多人一腔热血要学嵌硬结果连个示波器都没有学了一半放弃了。也见过很多人觉得嵌软简单结果连Linux都没装过命令行都不熟学了两周就放弃了。如果你现在是大二大三学校有实验室有学长带有项目做那优先选嵌硬。因为嵌硬的机会窗口更窄过了学校这个阶段很难再有免费的实验室资源和试错机会。嵌软可以自学网上资料多一台电脑就能搞。如果你已经大四或者毕业了没有实验室条件那优先选嵌软。因为嵌软的入门路径更清晰学习成本更低找工作更容易。等工作稳定了再补硬件知识也不迟。如果你是在职转行有家庭有房贷那优先选嵌软。因为嵌软的培训周期短一般六个月到一年可以入行嵌硬至少一年半到两年而且前期薪资可能更低。我个人的建议如果你条件允许先学嵌软再补嵌硬。因为嵌软的知识体系更标准化学习路径更清晰而且嵌软工程师懂一点硬件在职场上非常加分。反过来嵌硬工程师懂一点软件也很加分但学习曲线更陡。3. 嵌软和嵌硬的学习路线怎么走不管你选哪个方向学习路线都是绕不开的。网上那些“嵌入式学习路线”的图动辄几十个知识点看着就劝退。我按自己的经验把路线精简成三个阶段每个阶段给出明确的目标和验收标准。3.1 嵌软学习路线从裸机到Linux第一阶段C语言与单片机基础1-2个月目标能用C语言写一个完整的裸机程序理解寄存器操作、中断、定时器、串口通信。具体内容C语言核心指针、结构体、链表、位操作、内存管理。不要只看书要写代码。我推荐做一个小项目用链表实现一个简单的任务调度器。单片机选型STM32F103或者GD32F103资料多便宜。不要一上来就选太新的芯片踩坑没人帮你。外设驱动GPIO、UART、TIM、ADC、I2C、SPI。每个外设都要自己写寄存器版本不要只用库函数。调试工具学会用ST-Link、J-Link学会用逻辑分析仪看时序。验收标准能独立完成一个“温湿度采集OLED显示串口上报”的项目代码量500行以上能解释每一行代码的作用。第二阶段RTOS与Linux基础2-3个月目标理解实时操作系统的调度原理能在Linux上写简单的应用程序。具体内容RTOS选型FreeRTOS或者RT-Thread。理解任务、信号量、消息队列、互斥锁、事件组。Linux基础装Ubuntu学命令行学Shell脚本学Makefile学Git。Linux系统编程文件IO、进程、线程、IPC、Socket。写一个多线程的TCP服务器。Linux内核基础理解内核启动流程、设备树、字符设备驱动框架。验收标准能在FreeRTOS上写一个多任务的数据采集系统能在Linux上写一个基于Socket的客户端-服务器程序能写一个简单的字符设备驱动。第三阶段Linux驱动与项目实战3-6个月目标能独立完成一个嵌入式Linux项目的系统集成。具体内容BootloaderU-Boot移植理解启动流程。内核移植配置、编译、烧录设备树编写。驱动开发GPIO、I2C、SPI、UART、USB、网络驱动。根文件系统Buildroot构建系统裁剪。应用开发Qt界面、数据库、网络通信、多线程。项目实战做一个完整的物联网网关包括数据采集、本地存储、云端上报、远程升级。验收标准能独立完成一个嵌入式Linux项目的全流程开发从硬件选型到系统集成到应用开发。3.2 嵌硬学习路线从理论到实战第一阶段电路基础与EDA工具2-3个月目标能看懂原理图能用EDA工具画简单的PCB。具体内容电路分析基尔霍夫定律、戴维南定理、RC/RL电路、谐振电路。模拟电路二极管、三极管、MOSFET、运放、LDO、DCDC。数字电路逻辑门、触发器、计数器、总线协议。EDA工具Altium Designer或者KiCad。从画一个最小系统板开始。焊接与调试学会用烙铁、风枪、示波器、万用表。验收标准能独立画一块STM32最小系统板包括电源、晶振、复位、下载接口、LED、按键。打样回来能点亮。第二阶段高速电路与信号完整性3-6个月目标能设计四层板理解信号完整性问题。具体内容传输线理论特性阻抗、反射、串扰、地弹。差分信号USB、以太网、HDMI、MIPI、LVDS。电源完整性去耦电容、电源平面、目标阻抗。DDR布线等长、阻抗匹配、端接。EMC基础辐射发射、传导发射、静电防护。验收标准能设计一块带DDR3和千兆网口的四层板能通过基本的信号测试。第三阶段项目实战与认证6-12个月目标能独立完成一个完整的硬件项目从需求到量产。具体内容需求分析功能定义、性能指标、成本预算。器件选型主控、电源、接口、连接器。原理图设计模块化设计、可测试性设计。PCB Layout布局、布线、铺铜、丝印。打样与调试BOM整理、采购、贴片、测试。EMC整改定位问题、加器件、改布局。量产导入DFM检查、测试工装、生产文件。验收标准能独立完成一个硬件产品的全流程开发包括认证和量产。3.3 两个方向都绕不开的底层能力不管你选哪个方向有三项能力是共通的而且越早掌握越好。第一英文文档阅读能力。芯片手册、协议规范、内核文档大部分是英文的。你不需要英语六级但你需要能快速找到关键信息。我见过很多人一看到英文文档就找中文翻译结果翻译质量参差不齐反而浪费时间。我的建议是硬着头皮读读多了就快了。第二调试与排查能力。这是区分新手和老手的关键。新手遇到问题就百度老手遇到问题先分析。分析的方法论是先假设再验证逐步缩小范围。比如板子不启动先测电源再测晶振再测复位再测启动模式一步步排除。第三版本管理与文档习惯。代码用Git硬件用版本号。每次改板都要记录改了什么、为什么改。我见过一个团队硬件改了五版没有版本记录最后量产的时候发现用的是第二版的BOM损失几十万。这种坑踩一次就够了。4. 实际项目中的软硬协作与常见坑选定了方向学完了路线接下来就是实战。但实战中最大的挑战不是技术本身而是软硬协作。我做过十几个嵌入式项目几乎每个项目都在软硬交界处出过问题。这一节我分享几个典型案例帮你提前避坑。4.1 软硬接口定义不清导致的返工案例一个数据采集项目硬件工程师选了ADS1256这款24位ADCSPI接口。软件工程师拿到板子后发现SPI时钟频率上不去采样率只有理论值的十分之一。排查过程软件工程师以为是驱动问题改了SPI配置没用。硬件工程师以为是走线问题飞线短接还是没用。最后查datasheet发现ADS1256的SPI时钟极性CPOL和相位CPHA是固定的而软件工程师用的是默认配置不匹配。解决方案软件工程师改SPI模式问题解决。这个坑的本质是硬件工程师选型时没有把接口时序要求明确告诉软件工程师软件工程师也没有主动去查datasheet确认。如果项目启动时开一次接口评审会这个问题根本不会发生。我的经验是硬件选型完成后必须输出一份接口定义文档包括引脚定义、时序图、电平标准、上电时序、复位时序。软件工程师拿到文档后逐条确认有疑问当场提出。这份文档不需要很正式一个Excel表格就行但必须有。4.2 电源时序问题导致的启动失败案例一个多核处理器项目主控是i.MX8外挂DDR4、eMMC、WiFi模组、4G模组。板子回来之后有时候能启动有时候不能概率大概50%。排查过程先测各路电源电压都正常。再测上电时序发现DDR电源和核心电源几乎同时上电而datasheet要求核心电源先上DDR后上间隔至少10ms。调整电源芯片的使能顺序问题解决。这个坑的本质是硬件工程师没有仔细看处理器的上电时序要求软件工程师也没有在启动代码里加上电检测。如果软件工程师在Bootloader里加一个电源状态检查发现异常就报错至少能快速定位问题。我的经验是对于多电源系统一定要做上电时序设计。方法有两种一是用电源管理芯片PMIC的时序控制功能二是用GPIO控制各路电源的使能软件里加延时。前者更可靠后者更灵活。4.3 驱动与硬件不匹配导致的性能问题案例一个视频采集项目主控是RK3399摄像头是MIPI接口。硬件工程师按照参考设计画了板子软件工程师移植了驱动但预览画面总是卡顿帧率只有15fps目标是30fps。排查过程先测MIPI时钟发现时钟频率只有目标值的一半。查设备树发现MIPI时钟配置错了用的是默认值。改设备树问题解决。这个坑的本质是软件工程师直接用了参考设计的设备树没有根据实际硬件修改。参考设计用的是另一款摄像头时钟要求不同。如果软件工程师在移植驱动前先看一下摄像头的datasheet确认时钟要求这个问题可以避免。我的经验是设备树不是抄的是算的。每个时钟频率、每个引脚复用、每个电压域都要根据实际硬件确认。我习惯在设备树里加注释写明每个参数的来源和计算过程方便后续维护。4.4 常见问题速查表问题现象可能原因排查方法解决方案板子不启动电源异常测各路电压检查电源芯片使能、反馈电阻板子不启动晶振不起振示波器测晶振检查负载电容、起振电阻串口无输出波特率不对测波特率检查时钟配置、分频系数串口乱码地线干扰测地线加共模电感、改走线DDR不稳定时序不对跑memtest调DDR参数、改走线网口不通PHY配置错测MDIO检查PHY地址、复位时序USB不识别差分线阻抗不对测眼图改走线、加端接屏幕不亮背光电路问题测背光电压检查升压芯片、PWM调光触摸不灵I2C地址冲突扫描I2C改地址、加上拉系统重启看门狗误触发查看门狗日志改喂狗策略、加调试信息这张表是我这些年踩坑的总结不一定全面但覆盖了80%的常见问题。你可以在实际项目中对照使用遇到新问题再补充。5. 关于嵌入式行业的几个现实认知最后这一节我想聊几个比较现实的话题。这些话题在学校的课堂里不会讲但在实际工作中很重要。5.1 嵌入式不是低薪行业但薪资分化严重网上经常有人说“嵌入式薪资低”这话对也不对。低的是只会点灯和调库的初级工程师高的是能解决复杂系统问题的资深工程师。我拿招聘网站的数据举例。一个应届生会STM32、会FreeRTOS、做过一两个项目在一线城市大概8-12K。工作三年会Linux驱动、能独立做项目大概15-25K。工作五年会系统架构、能带团队、懂行业方案大概25-40K。工作八年以上在某一个细分领域有深度积累比如汽车电子、医疗电子、工业控制40-60K甚至更高。对比互联网嵌软和嵌硬的起薪确实低一些但职业寿命更长。互联网的35岁危机在嵌入式行业不明显因为嵌入式经验的价值随时间增长而不是衰减。我认识好几个45岁以上的嵌入式工程师依然在一线写代码、画板子收入不菲。5.2 嵌软和嵌硬不是对立的融合是趋势现在越来越多的岗位要求软硬兼通。比如嵌入式系统架构师既要懂硬件选型又要懂软件架构物联网方案工程师既要能画板子又要能写云端对接汽车电子工程师既要懂CAN总线硬件又要懂AUTOSAR软件。我个人的判断是未来五年纯嵌硬和纯嵌软的岗位会减少软硬兼通的岗位会增加。因为芯片集成度越来越高硬件设计越来越简单软件复杂度越来越高。但硬件设计不会消失因为总有人要画板子、要调信号、要过认证。只是这个岗位需要的人更少但要求更高。所以我的建议是先精通一个方向再补另一个方向的基础。不要一开始就追求软硬兼通那样容易两头都不精。先在一个方向上做到能独立干活再花时间补另一个方向的知识这样最稳妥。5.3 嵌入式AI是新的增长点最近两年嵌入式AI的岗位需求增长很快。什么是嵌入式AI就是在资源受限的设备上跑AI模型比如在单片机上跑关键词识别在ARM Cortex-A上跑目标检测在NPU上跑大模型推理。这个方向对嵌软工程师更友好因为核心是模型部署和优化不需要画板子。但如果你懂硬件知道NPU的算力、内存带宽、功耗限制你能做得更好。我去年帮一个客户部署了一个人脸识别模型在RK3588上从模型转换到量化到部署到优化花了两个月。过程中最大的挑战不是模型本身而是内存带宽瓶颈。NPU算力够但DDR带宽不够导致推理速度上不去。最后通过模型分片、内存复用、算子融合才把帧率从15fps提到30fps。这个经历让我意识到嵌入式AI不是单纯的软件问题而是软硬协同问题。如果你只懂软件你只能调API如果你懂硬件你能从系统层面优化。5.4 给在校生的几点建议如果你还在学校我有几个建议第一尽早确定方向但不要锁死。大二可以两个方向都试试大三选定一个深入大四做毕业设计的时候可以尝试融合。第二项目经验比证书重要。面试官不关心你考了多少证关心你做过什么项目、遇到什么问题、怎么解决的。我面试的时候最喜欢问“你遇到的最难的问题是什么怎么解决的”这个问题能看出一个人的真实水平。第三学会用Git和写文档。这是职场基本素养但很多学生不会。我见过一个实习生代码写得不错但不会用Git每次改代码都复制一份最后文件夹里有几十个版本根本分不清哪个是最终版。第四英语要过关。不是说要考托福雅思而是说能读懂英文文档。嵌入式行业的一手资料都是英文的等中文翻译出来可能已经过时了。第五保持好奇心。嵌入式技术更新很快从8位机到32位机从裸机到RTOS到Linux从单核到多核从CPU到NPU。只有保持好奇心才能跟上变化。5.5 给转行者的几点建议如果你已经工作想转行嵌入式我有几个建议第一评估时间成本。嵌软至少六个月嵌硬至少一年。如果你有家庭有房贷要慎重考虑。第二利用现有优势。如果你原来是做Java的转嵌软有优势因为编程思维是相通的。如果你原来是做机械的转嵌硬有优势因为画图和空间思维是相通的。第三从项目入手。不要从头学理论直接做一个项目遇到问题再补理论。比如你想学Linux驱动就买一块开发板从点灯开始一步步做到完整项目。第四找圈子。嵌入式行业很吃经验很多坑是别人踩过的。加入一些技术社区多问多交流能少走很多弯路。第五降低预期。转行初期薪资可能不如原来但嵌入式是长跑三五年后差距会拉开。我认识一个朋友原来是做土木工程的30岁转行嵌入式从单片机开始学现在在一家汽车电子公司做BSP开发薪资比原来高了一倍。他的经验是不要急每天进步一点点一年后回头看已经走了很远。5.6 关于“嵌入式八股”和面试准备最后聊一下面试。嵌入式面试确实有“八股文”但和互联网的八股不太一样。互联网八股偏算法和框架嵌入式八股偏底层原理和实战经验。常见的嵌入式面试题包括C语言指针、内存对齐、位操作、volatile、const、static。操作系统进程与线程、调度算法、同步机制、内存管理。计算机网络TCP/IP、Socket、HTTP、MQTT。硬件基础上拉下拉、推挽开漏、I2C时序、SPI模式。Linux启动流程、设备树、驱动模型、中断处理。项目经验你做过什么、遇到什么困难、怎么解决。准备面试的时候不要死记硬背要理解原理。比如问“volatile的作用”不要只背“防止编译器优化”要能举例说明什么场景下需要volatile什么场景下不需要。我面试别人的时候最喜欢问“你做过的最有挑战的项目是什么”然后顺着项目往下问问细节、问难点、问替代方案。如果你真的做过你能答上来如果你只是背的很快就会露馅。所以最好的面试准备就是认真做项目。项目做多了面试自然有话说。嵌入式这个行业说大不大说小不小。它不像互联网那样光鲜但它是实实在在支撑着现代社会的底层技术。你用的手机、开的汽车、坐的地铁、用的电表里面都有嵌入式系统。选嵌软还是嵌硬没有绝对的对错只有适不适合。希望这篇文章能帮你做出自己的判断。如果你问我个人怎么选我会说先选一个能让你入行的方向再选一个能让你走远的方向。入行靠技能走远靠热爱。
返回列表