读《工作多年后,嵌入式工程师的区别在哪儿?》有感

2023-05-16

读《工作多年后,嵌入式工程师的区别在哪儿?》有感

已剪辑自: https://mp.weixin.qq.com/s/N32aKmTSmAAQ7KzLveKZRg



面试了很多人之后,我开始思考,一个工作1年,工作3年,工作5年,工作10年的嵌入式工程师到底有什么不同,工作年限到底给他们带来了什么。

有时候招聘方并不清楚他们所要求的10年工作经验后面所代表的内涵。在面试了很多求职者之后,发现工作很多年的工程师并没有形成自己的结构化思维和技术体系。

不同工作年限的工程师究竟是哪里不同?

基础知识

一个嵌入式工程师,很多都是从51单片机或者STM32单片机开始,对于单片机的开发环境,开发流程,基础外设都了解,做过一些实际的案例,比如点流水灯之类的。那么对于基本的中断的概念,寄存器的概念,看门狗,AD等基本原理能大概的讲出来。掌握硬件设计方法,能设计原理图PCB,至少两层板。能画出三极管及MOS管作为开关管的实际应用电路,对电源芯片的设计有基本的了解。能利用网络进行信息检索,能在理解别人图纸的基础上进行copy。

这是一个本科嵌入式毕业生应该具备的水平。项目做的多的同学,可能在某些专业方向有较深的钻研,和较多的涉猎,比如对一些基本的传感器,编码器,执行机构的了解等,再比如研究生同学会使用matlab等软件进行算法仿真,控制方向的同学会用单片机调用FOC库控制PMSM电机,图像方向的同学会调用opencv进行一些图像处理等。

这个阶段如果有国际开源社区贡献经验的,那就是非常加分了。至少在英语和git使用上是基本过关了。

项目心态

做过完整项目的工程师都明白,在项目的推进过程中,会经历各种心态,有时候会让人崩溃,可能很多次都想放弃,但是你体会过坚持并有结果的感觉后,就明白没有干不出来的项目(其实是项目论证阶段的时候,更高阶的工程师已经做个评估了)。项目心态其实就是技术人员的死磕心态,没有搞不定的难题,没有干不出来的项目。一般工作三年左右的工程师,应该都经历过完整项目了。很多工程师可能第一年的时候都在补大学的课,所以三年比较保险。三年工作经验的工程师可能还不具备全局视野和架构视野,但是一定要具备良好的项目心态了。

技术架构

技术架构是个什么东西,项目做的多了,接触的项目大了,会发现一个问题,所有的项目都有共通之处,所有的嵌入式设备都是换汤不换药。那么有没有积累一套稳定的基础程序库和架构就显得非常重要了。比如,串口协议编解码,log系统,滤波算法,操作系统,GUI,按键io,定时器库等。

这些东西我一向不主张重复造轮子,因为世界上聪明人实在是太多了,github搜一下,找一些适合自己的基础库进行集成改造。看看别人写的东西之后,会发现自己的技术思路有时候真的很low。

比如按键,很多人认为是一个非常简单的东西,但是一个按键,多个按键,单击,双击,三击,长按,短按等,你如果按照你的逻辑来写,90%的人会写的非常笨。那么下面这个库你就该了解一下了。

在比如,环形缓冲,以前我刚参加工作的时候,看到同事写的串口环形缓冲区程序,觉得同事真牛逼。

诸如此类就太多了,所以有时候,开阔的技术视野比你闷着头在那里发奋图强实际要有效的多。然后站在巨人的肩膀上,去发现bug,去修改,去完善,慢慢的就越来越健壮了。同时,你也会拥有更谦卑的心态。

技术架构,建议探索、参考一些经典的开源硬件项目。

技术视野

技术视野来自于几个方面:

  • 一个是做的项目够多,接触的东西够多

  • 对技术有足够的好奇心,想了解清楚底层究竟是如何在运行

  • 勤奋(有时候来自于热情,并不需要刻意)

    接触开源硬件是扩展技术视野非常好的途径,最好是参与进去,如果有兴趣的话。px4,到现在我都还没有把整个架构完全弄清楚,里面会涉及到非常多的知识,linux,gcc,cmake,docker,python解析,nuxt系统(类linux,posix接口),git,mavlink协议,各种算法及paper,仿真方法,编译下载等。但是这是一个非常有意思的过程。再回过头去玩单片机的时候,你就知道一个单片机要运转大型复杂的项目应该是什么样子的了。

成熟方案

成熟方案就是你在做过很多项目后,这些项目成果。都是可以稳定市场化的东西。在以上那些基础上,你做过的项目,在硬件和软件上都应该是稳定的,且是可以市场化的东西。你在不需要浪费一个开发周期就可以拿来用的东西,就是成熟方案。

比如你做过的电机驱动,你做过的打印机方案等。这时候本质上讲,你是可以开方案公司的了。至少技术上是可以的了。但是还缺点啥。

一通百通

这个时候,你对任何你遇到的项目,仿佛总有办法把它又快又好的干出来了,因为看到一个新案子的时候,你看问题的角度和新手是不同的了,无非是你所积累的架构的一个变种而已。要不就执行机构变一下,要不就是传感器变一下。

选型能力

上面说,你要开方案公司的话还缺点东西,其实缺的就是选型能力,不是技术上跑通了,就可以市场化的,市场化比如要同行对比,你是否体现了成本优势,技术领先优势,解决了独到问题等。成本问题就涉及到你积累的供应商资源,以及你搜索供应商资源和实际的对外沟通能力了。

笔者曾经给一款消费电子产品降本,三到六个月之后,整个行业全部都换成笔者设计的那套方案了。

其他能力

如果还要考察其他能力的话,那就是性格和人品了,因为降成本有时候是一个很敏感的东西,意味着你会在公司打破某种微妙平衡,你会碰到非常大的阻力,常常会让你觉得自己吃力不讨好。但凡你有一点怀疑和退缩,你就会妥协。所以技术的上层是更复杂的一些东西了。这个时候的坚守靠的是价值观,你坚信你把更大的利益让给了消费者,你用你的技术视野和项目推进能力是创造了最终价值的。

当心温柔陷阱

很多人做十年,都停留在基础层级,甚至在退化,他们公司做系统集成,他每天只需要做串口协议的解析和转发工作,换一个产品,还是做这个,而一套程序成熟后又没什么大改的地方,最多就是不同的用户要不同的功能,对协议进行一些增删而已。这种公司一般还都是大公司,慢慢的,做这个工作的工程师在某种程度上就被废掉了。同理,天天调pid,换一套系统,还在一样的。所以很多公司要求要有一个产品从零到一的过程。


看完这篇过来人的建议,有了一些感触,因此想写点什么来总结一下这篇文章,以及反省总结一下自己。

按照我的理解架构,我会把能力分成硬能力,软能力。

这些能力是包括:

  1. 基础知识

    对于嵌入式开发来说,就是C语言,单片机,软件工程,软件架构之类的。

  2. 项目经验

    基础知识要应用起来还是要靠项目,通过项目我们去接触更深入的某个方面的知识。不仅可以积累项目经验,也可以积累一些比基础知识更加深入的知识。

    如何区分基础知识和深入的知识:一般我们可以在网上直接学到的就是基础知识,一般需要经历项目才能了解到的知识就是深入的知识。

  3. 视野

    这个需要在不断做不同项目的过程中,加上非常宽广的知识以及技术视野,市场角度的视野,来使我们获得更高层次的认知。

  4. 链接的能力

    这个一般就是指软能力了。

通过上面这些整理,发现自己改进的地方如下:

  1. 要整理出自己的库和框架

    这个非常重要,多去接触开源,了解整理自己的库和框架,这对于我们后面解决问题是非常重要的。

  2. 多参加不同的项目,整理不同的项目过程

    一个项目从立项到完成到维护,是一个非常复杂的过程,需要建立良好的项目能力和心态。

  3. 链接,个人ip

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读《工作多年后,嵌入式工程师的区别在哪儿?》有感 的相关文章

  • 软件工程总结

    文章目录 名称由来与定义软件危机由来定义 软件工程的核心知识 xff08 SWEBOK xff09 软件工程与计算机科学软件工程的现况没有银弹与人月神话软件工程与计算机程序设计软件开发过程方法学软件工程的发展方向 软件工程的最大难题一 引言
  • jupyter notebook打开其他盘

    转载于 xff1a https blog csdn net qq 41238579 article details 101016253 1 juter notebook 默认打开系统盘 2 更换显示盘 1 xff09 打开cmd 2 xff
  • 网监后台管理系统设计思路

    本次做的是网监系统saas服务平台的后台管理系统 xff0c 不涉及复杂功能逻辑 就是从菜单 模板 系 统 组织架构 角色 用户的设计思路 产品需求 xff1a 在各个省市网监系统的数量不断增长 xff0c 且系统逻辑和功能模块大致相同 x
  • 基于模型的系统工程(MBSE)

    文章目录 了解MBSE xff0c 这一篇文章就够了MBSE是什么 有什么用 怎么学习 xff1f 1 MBSE是什么 xff1f 2 MBSE有什么用 xff1f 3 MBSE的方法有哪些 xff1f 4 MBSE怎么学习 xff1f 要
  • 基于模型设计和机载软件

    采用基于模型设计应对机载软件设计中的挑战 已剪辑自 https www jianshu com p a8fb02ce366d 采用基于模型设计应对机载软件设计中的挑战 Model Based Design for Airborne Soft
  • MBSE与MBD的融合

    已剪辑自 https www jianshu com p 9efae90ca0f7 基于模型的设计 xff0c 是美国迈斯沃克公司 xff08 MathWorks xff0c MATLAB软件的开发商 xff09 提出并推广的复杂系统设计方
  • 基于模型的系统工程(MBSE)与设计(MBD)的关系思考

    已剪辑自 http www clii com cn lhrh hyxx 201905 t20190522 3934609 html 导读 xff1a 如何将关于功能知识表达的建议与任何系统工程建模语言的任何部分结合起来 xff0c 确定地
  • 从MBD到MBE的战略转型路径

    已剪辑自 https zhuanlan zhihu com p 58927567 导读 xff1a 企业的不断成功 xff0c 源于在每个关键机遇期做出正确的抉择 对于在国民经济中发挥重要作用的中国制造业企业来说 xff0c 如何面向未来
  • SysML教程

    已剪辑自 https www jianshu com p 6ba96913abcc SysML是一种支持复杂系统分析 规范 设计 验证和确认的通用图形化建模语言 这些系统可能包括硬件设备 软件数据 人员 规程 设施 xff0c 以及其他人造
  • 程序运行原理:程序是如何运行又是如何崩溃的?

    已剪辑自 https time geekbang org column article 166581 软件的核心载体是程序代码 xff0c 软件开发的主要工作产出也是代码 xff0c 但是代码被存储在磁盘上本身没有任何价值 xff0c 软件
  • 分布式系统

    简介 在一个分布式系统中 xff0c 一组独立的计算机展现给用户的是一个统一的整体 xff0c 就好像是一个系统似的 系统拥有多种通用的物理和逻辑资源 xff0c 可以动态的分配任务 xff0c 分散的物理和逻辑资源通过计算机网络实现信息交
  • #如何写好技术文档——来自Google十多年的文档经验

    文章目录 文档的重要性为什么大多数人都不喜欢写文档 xff1f 如何产出高质量文档像管理代码一样管理文档明确你的读者是谁清晰的分类参考文档设计文档引导类文档概念性文档Landing pages 落地页 文档Review 写文档的哲学5W法则
  • 如何写好技术文档?

    文章目录 01为什么需要写文档 xff1f 02写文档的重要性03像管理代码一样管理文档04文档类型05文档Review06文档写作的哲学07结论 已剪辑自 https cloud tencent com developer article
  • 数据库系统原理1

    第一章 数据库管理技术发展的不同阶段形成不同的特点 数据描述经历了三个阶段对应于三个数据模型 第二章 数据库系统的生命周期 xff0c 书中可能和我们学习软工的时候有些出入 xff0c 其实就是不同时间有不同的理解 xff0c 横看成岭侧成
  • ssh 登录时常出现的几种错误以及解决方法(Linux)

    ssh 登录时常出现的几种错误以及解决方法 xff08 Linux xff09 参考网址 xff1a https blog csdn net GX 1 11 real article details 80423409 前言 ssh是Linu
  • 程序员既要写好代码,又要写好文档

    转载于 xff1a https developer aliyun com article 196898 作为一个长期混迹于CSDN社区的人 xff0c 我对很多拥有高访问量的博主钦佩不已 xff0c 特别是在参加了CSDN在举办 2014
  • 一步一步教你如何写开发文档

    已剪辑自 https icocos github io 2017 01 02 E4 B8 80 E6 AD A5 E4 B8 80 E6 AD A5 E6 95 99 E4 BD A0 E5 A6 82 E4 BD 95 E5 86 99
  • 如何写好项目文档

    已剪辑自 https blog csdn net houzhizhen article details 105622282 引子 有太多的程序员 xff08 包括很多资深的程序员 xff09 不会写文档有太多的项目没有 xff08 完整的
  • 怎样才能写好项目文档?

    已剪辑自 http learn lianglianglee com E4 B8 93 E6 A0 8F E8 BD AF E4 BB B6 E5 B7 A5 E7 A8 8B E4 B9 8B E7 BE 8E 16 20 E6 80 8E
  • 技术文档写作基础-写作新手必看

    文章目录 1 搞清楚主谓宾2 不滥用代词 过渡词和标点符号2 1 不滥用代词和过渡词2 2 不滥用标点符号 3 多用强势动词 xff0c 少用形容词和副词3 1 强势动词和主动语句3 2 少用形容词和副词 4 正确使用术语5 正确使用段落5

随机推荐

  • 软件工程及其文档汇总

    文章目录 软件文档作用和分类作用分类 管理和维护软件工程的文档有哪些 xff1f 软件工程各类开发文档的作用软件工程各文档模板系统定义文档需求规格说明书概要设计说明书用例文档详细设计说明书测试计划测试分析报告 xff1a 软件文档 软件文档
  • 中断和异常,C/C++语言异常,实时操作系统对中断和异常的处理

    文章目录 一 中断和异常是什么1 中断和异常的定义2 中断处理的过程3 常见中断和异常 二 C C 43 43 软件异常的常见原因分析与总结1 概述2 引发软件异常的常见原因2 1 变量未初始化2 2 死循环2 3 内存越界2 4 内存泄漏
  • 编程中什么情况下需要加 volatile?

    文章目录 一 CPU访问变量 1 给变量赋值 2 读变量的值 二 编译器优化 1 上面程序执行过程有什么缺点 xff1f 2 为什么要优化 xff1f 三 volatile到底有什么用 xff1f 用在什么场合 xff1f 1 在执行b 6
  • ImageJ实用教程汇总

    https zhuanlan zhihu com p 60999196
  • 第一性原理详解

    文章目录 百度百科其他解释补充解释 智库百科什么是第一性原理如何运用第一性原理第一性原理思考举例 什么是第一性原理 xff0c 它有什么重要意义 xff1f 详解马斯克的 第一性原理 01什么是 第一性原理 思维 xff1f 其实是一种演绎
  • Win8.1电脑声音可以外放但是插入耳机没有声音

    今天早上正准备学习英语 xff0c 发现耳机插入电脑没有声音 xff0c 于是开始找百度 xff0c 一步一步剥茧抽丝去查找问题来源 问题 xff1a 点击喇叭出现如下图片 xff1a 平常只有右半个图现在却有两个图标了 步骤 xff1a
  • 如何写好技术文档——来自Google十多年的文档经验

    已剪辑自 https zhuanlan zhihu com p 393553478 本文大部分内容翻译总结自 Software Engineering at Google 第10章节 Documentation 另外 xff0c 该书电子版
  • 如何编写好的软件设计文档

    文章目录 为什么要写设计文档 设计文档中应该包含哪些内容 标题和人员 概述背景 目标和非目标 里程碑 现状 建议方案 替代方案 可测试性 监控和报警 跨团队的影响力开放性问题详细的范围和时间表如何编写尽可能简单尽可能使用图和图表包含数字试着
  • 软件开发总结

    文章目录 结构化方法Jackson方法原型方法面向对象方法敏捷方法水晶法并列争求法自适应软件开发 xff08 ASD 软件设计的演变过程序言结构化程序设计面向对象程序设计设计模式设计原则领域驱动设计DCI架构模式领域专用语言微服务架构模式小
  • 软件开发中会使用到的图

    文章目录 软件开发中会用到的图一 背景二 图为了解决什么问题三 不同流程中适合运用的图四 实际的运用五 结语 软件工程中的各种图软件工程用的15种图数据关系流图怎么画 xff1f 这款软件教你轻松绘制关系流图数据关系流图的常见用途数据关系流
  • 软件耦合的分类及解决方法

    文章目录 什么是耦合 解耦高内聚与低耦合耦合内容耦合公共耦合外部耦合控制耦合标 xff08 印 xff09 记耦合数据耦合非直接耦合 内聚 什么是解耦公共耦合 c语言例子 小小的公共库 xff0c 大大的耦合 xff0c 你痛过吗 xff1
  • 机器学习在分子模拟中的应用

    文章目录 一 背景二 分子动力学模拟介绍简史基本步骤应用发展方向 三 AlphaFold 前言 Alphafold2做了什么改进 Alphafold2会议具体细节 xff1a Alphafold为什么强 xff1f 学术问题 xff1a 四
  • 一个重要的问题:怎么寻找自己的终身事业呢?

    已剪辑自 https mp weixin qq com s OJX2FZ TtdPxWg1V6gr6gA 前文写过我们每一个职场人都应该寻找自己的终身事业 xff0c 而不是机械地打工赚钱维持生活生存的薪资 一些读者看完后跑过来问 xff1
  • 腾讯技术总监的转行感悟

    已剪辑自 https mp weixin qq com s 3bJVRGf91bThnZo74g3Sw 今天分享一个新东方在线前同事写的文章 xff0c 说来也巧他的文章写的人恰好是我下属老杨 老杨也代表了技术人到中年的一种转型思路 xff
  • 30多岁的每一步都很重要

    人生有不同阶段 xff0c 每个阶段都挺重要 xff0c 但最重要的是30岁 40岁这个阶段 30岁之前我们很难找到终身奋斗目标 很难构建多元化财务收入 很难成为行业专家 我们甚至还是懵懵懂懂的状态 xff0c 沉迷于某个并不重要的人 并不
  • 重要的是改变命运,而非升职加薪

    已剪辑自 https mp weixin qq com s biz 61 MzA3MzA5MTU4NA 61 61 amp mid 61 2247505468 amp idx 61 1 amp sn 61 1373f053179462101
  • SQL Server 2012 导出数据及分离MDF、LDF

    最近在设计数据库时看到自己设计的数据库和师哥师姐给我们的不一样 xff0c 于是就查了一下把数据库导出写了下来 分离数据库步骤 这是师哥师姐给我们的数据库格式 xff0c 如下 xff1a 那么如何生成MDF和LDF格式的数据库呢 xff1
  • 怎么找到贵人?

    已剪辑自 https mp weixin qq com s biz 61 MzA3MzA5MTU4NA 61 61 amp mid 61 2247506375 amp idx 61 1 amp sn 61 6008cc68a5967d3db
  • 14种主流的RTOS 单片机操作系统~来学!

    已剪辑自 https mp weixin qq com s YQGaBlluBWFbk01K5qCu A 单片机编程时 xff0c 我们都知道有两种基本操作 xff1a 裸奔和操作系统 所谓裸奔 xff0c 就是一个大循环往复执行 今天要讲
  • 读《工作多年后,嵌入式工程师的区别在哪儿?》有感

    读 工作多年后 xff0c 嵌入式工程师的区别在哪儿 xff1f 有感 已剪辑自 https mp weixin qq com s N32aKmTSmAAQ7KzLveKZRg 面试了很多人之后 xff0c 我开始思考 xff0c 一个工作