浅谈嵌入式与互联网(详细)

2023-05-16

纲要

一、什么叫嵌入式,以及与人工智能的关系?

二、嵌入式岗位

三、浅谈嵌入式开发优缺点

四、与互联网(CS相关的,如平台服务器,前端/APP/软件)对比

五、能力要求和薪资(参考知乎)

以下均采集于网上资料和个人总结

一、什么叫嵌入式,以及与人工智能的关系?

嵌入式原本是嵌入式系统,但是由于现在电子设备众多,导致嵌入式涵盖太广,很多初学者打着嵌入式的牌子,其实只是玩玩最基础的单片机,连操作系统也不上。这和其他细分的领域做对比是没有意义的。

嵌入式原则上是ARM+Linux,在其上进行开发,需要的知识涉及C语言,操作系统等综合性知识,比如Java,c++,python都是需要的(GUI部分,这其实就是Java安卓的前身)。ps:现在很多做嵌入式的转安卓驱动(安卓是Linux发展而来,具有共性,并且安卓系统的应用越来越广泛,手机、平板、学习机、门禁机等等),嵌入式还需要了解硬件,一般从事Java开发(APP\网页)懂这个的很少,毕竟Java本身为了适合跨平台使用跑在虚拟机上(虚拟手机等硬件平台),很少会接触硬件,对底层已经不是很关注了。

人工智能其实也是个大概念,甚至可以说包含了嵌入式。最终实现的平台也是硬件平台支持。
目前的具体应用:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等

其中近年来很火的万物互联-物联网,可以说是以嵌入式为基础,人工智能为发展的结合体;

嵌入式这个概念非常的广,几乎可以包括各行各业,从工作类型最常见的是分为嵌入式硬件工程师和嵌入式软件工程师。

二、嵌入式岗位分析

1、软硬件分类
  a、嵌入式硬件工程师
  嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作,例如: 底层驱动的开发嵌入式操作系统的裁剪,移植; GUI、文件系统等软件的移植; 基于嵌入式操作系统的底层驱动程序的设计等。

  b、嵌入式软件工程师
  嵌入式软件工程师与我们平常说的软件工程师不同。我们平常说的软件工程师大部分指的是windows 和Linux操作系统下应用软件的开发人员,硬件平台是基于PC 机的。而嵌入式软件工程师则是指在wince.linux 等嵌入式操作系统下进行用户应用软件开发的人员,硬件平台则是基于嵌入式产品的(例如: 手机、PDA 等)。软件开发工具也有所区别,嵌入式软件开发一般使用的是嵌入式系统专用的开发工具,例如wince 下的evc,和linux 下的qt 等。

  c、软、硬件工程师工作性质的区别
  嵌入式硬件工程师的工作是为软件工程师搭建好硬件平台和必要的开发环境。 嵌入式软件工程师则是根据用户的需要完善产品的软件功能。硬件工程师就像是设计师和建筑师,负责整个建筑的设计和建设。软件工程师则是负责房间的装修,锦上添花。

  总的来说, 硬件工程师的工作性质尤为重要,因为硬件工程师在设计产品 时不但要完成产品的基本功能,还必须考虑多方面因素: 功耗、干扰、后期维修、生产安装等。一旦某一个因素考虑不周全,会造成整个产品的设计失败。
  除此之外,产品在设计中可以没有软件工程师,绝不能没有硬件工程师。 因为在某些对实时性要求严格的嵌入式产品(例如: 工业产品)或者某些低性能的嵌入式产品(例如:CPU使用单片机的产品) 中,往往是不能够使用操作系统的。 这时,整个产品的设计工作则全部由硬件工程师来完成了。

2、软硬件工程师简单对比
a、嵌入式软、硬件工程帅的就业形式
  软件工程师的工作性质使得软件工程师的起点较低,所以目前国内的软件工程师居多。并且目前国内的嵌入式培训都是以软件培训为主。所以从长远看,硬件工程师的就业压力要小。但是另一方面,企业中硬件开发人员需求量要比软件开发人员的需求量小。因为一旦产品定型,后期的产品升级都是由软件来完成的,硬件的更新和变动很少。

b、嵌入式软、硬件工程师的工资待遇比较
  工资待遇的高低由企业所处的地域、行业、企业的性质和人员的工作岗位而定。由于每个企业的情况不同,所以工资待遇的差异很大。
  对于以硬件产品为主的企业来说,硬件开发的成本高,产品的成本也高。因为后期的加工生产,维修等等都需要很大的费用。所以企业的利润较低。不过由于硬件工程师掌握着企业的命脉,所以企业会提高硬件设计人员待遇。
对于以软件产品为主的企业来说,开发的成本较低,一旦开发完成,后期的产品基本无成本。所以软件行业的利润较大。但是,由于软件工程师人员多,所以待遇也有所下降。

3、嵌入式的硬件工程师和软件工程师哪个更有前途
(1)、先从企业的角度来讲讲。我个人认为造成这个差异的原因,第一个是基本上所有的公司,从初创公司到全球百强,都有对软件工程师的需求。现在哪个公司不需要几个码农来开发app,或者做个web。但是做硬件这种工作并不是所有公司会去做的。

(2)、第二点要归功于现在的创业潮。不管在美国在中国互联网创业都是趋势,但是可以说绝大部分的初创互联网公司做的都是软件方向。有个点子,有点技术,找几个合伙人抱着电脑就能开干了。但是初创公司要专注做硬件开发就比较难了,因为成立设计硬件公司的门槛和起步开销比较大。所以这也导致大部分初创公司以互联网为主,能做的了硬件设计的公司基本上都是处于垄断地位的大企业。

(3)、第三个很重要的原因就是硬件设计。在现在来看已经是相对成熟的技术,大部分硬件的东西已经步入夕阳产业的范畴,因为很多东西已经成了规范,也因为很多东西被自动化所取代。前一阵子全球大牌的硬件公司才裁了不少人,Intel更是裁掉了接近20%的硬件工程师。但是互联网热从90年代开始到现在热头还没过,而且未来诸多产业如人工智能、机器学习、图像识别、大数据都才刚起步,所以还有一定的上升空间。
  
(4)、再从个人的角度来讲。想成为一名软件工程师找到工作的门槛远比成为一名合格的硬件工程师低很多。要想以软件工程师的身份混到个饭碗,学两门语言学好,常用的数据结构,刷点题就基本上能找到薪水小几千的岗位,像学朱有鹏老师课程的学生学得好都是上万的。

(5)、但是要想成为一名合格的硬件工程师,不是科班出身的不好好学几门模电数电信号逻辑设计的课,没有在学校实验室里自己焊点电路做实践,连简历都发不出去。而且现在要想学个什么语言框架,网上搜一搜“”xxx语言入门教程“”就有非常丰富的资源,但是要是在网上搜“如何学好超大规模集成电路设计”,要想找到可以受用的资源几乎是不可能的。而且就我所参加的招聘会来说,如果有招硬件工程师基本都要求有研究生的学位,但是对软件工程师的要求基本上就是熟悉算法数据结构,会web编程有相关经历就够了。

(6)、软件工程师很多时候吃的是体力,硬件工程师大部分时候是吃经验,所以硬件工程师一般得有一定的经历积淀才能脱颖而出。尤其像模电这种上手程度很高的方向,没个十年八年的相关经验根本不算学成出师。所以说本身对从业者的资质要求更高,也是硬件工程师不好找工作的原因之一。

  总体来说嵌入式软件更有前途,涉及到算法更是其中的重中之重,建议可以学习数学基础,从事算法类(一般为图像/视频算法),相对硬件工程师,需求最大的肯定是高级的软件工程师,硬件平台一般都是通用的,很难突破新技术,上层软件具有更好的可塑造性,我坚信嵌入式是一个非常朝阳的行业,未来的前景非常好。

三、浅谈嵌入式开发优缺点:

从事嵌入式软件开发的好处是:
  a、目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触,难度高才会产生价值。
  b、与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。
  c、哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

从事嵌入式软件开发的缺点是:
  a、入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
  b、这方面的企业数量要远少于企业计算类企业。
  c、有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。
  d、平台依托强,换平台比较辛苦。

四、与互联网(CS相关的,如平台服务器,前端/APP/软件)对比:

a、嵌入式开发学习的技能需要很多,没有两三年,是摸不透的,前期性价比以及发展自然比不上纯互联网,以至于网络上各种劝退;
b、至于薪资方面,如果是51、stm32、avr单片机等中层技术,会有天花板;如果是高层的Linux驱动、ARM处理器再到现在大热的边缘硬件加速器等技术;如果在大厂起薪大多不会比互联网的低;
c、嵌入式公司会少些,顶端的有华为、中兴、大疆、深信服、海康威视,以及现在新兴AI独角兽:地平线机器人、图森未来、商汤科技、云从科技等;而互联网公司自然是扎堆;
d、嵌入式编程语言比较狭窄,一般都是汇编、C/C++;比不上互联网的各种丰富,其次嵌入式开发中,编程量会少很多,很多时间都在找系统bug,调试各种异常,因此搬砖工作量自然比互联网的少些;
e、职业发展相对顺利,从事企业应用软件的人,工作范围广,项目变化大,日常积累很难产生质变,容易遭遇职业瓶颈,而从事嵌入式软件,所涉及的专业技术范围相对固定,时间长了会越来越有经验,所以说程序员的瓶颈大多数是因为年龄大,劳动力低下,接受日新月异的新事物能力变弱;而嵌入式,只要你注意积累,会一生享用;
f、工作强度相对较低,注意只是相对,开发自然是少不了加班熬夜,持续学习;开发企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都不同,开发人员往往疲于奔命,重复劳动;而搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事,所开发的产品通常是通用的,不会因客户的不同而修改,一个产品型号开发完了,往往还有较长一段空闲时间进行充电和休整;

五、能力和薪资(知乎找的):

在这里插入图片描述

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

浅谈嵌入式与互联网(详细) 的相关文章

随机推荐

  • 白话TCP/IP协议栈

    前言 最近在复习总结计算机基础知识 xff0c 包括操作系统 数据结构 计算机网络等程序员必备的知识 xff0c 这属于程序员的内功 把内功修炼好了 xff0c 外功只是一种形式 xff0c 如果你内功深厚 xff0c 那么无论是用龙抓手还
  • 飞机绕地球问题

    每个飞机只有一个油箱 xff0c 飞机之间可以相互加油 xff08 注意是相互 xff0c 没有加油机 xff09 xff0c 一箱油可以供一架飞机绕地球飞半圈 问 xff1a 为了使至少一架飞机绕地球一圈回到起飞 时候的飞机场 xff0c
  • 【ROS】Gazebo仿真平台安装及问题解决

    Gazebo安装 这里的ROS版本是Melodic xff0c 如果是其他版本的ROS可以修改下面命令的melodic为指定版本 sudo apt get install ros melodic gazebo ros pkgs ros me
  • 激光slam经典开源算法及论文整理

    开源算法 loamLeGO LOAMlio mappingLIO SAMCartographergmappinghector slam 考虑到有些朋友们的网络下载论文可能有问题 xff0c 把论文整理到百度网盘 xff0c 可自行下载 xf
  • Body系下空间平面如何转到World系下

    Body系下空间平面如何转到World系下 题目解法 题目 已知 传感器坐标系 xff08 Body系 xff09 下有一平面P方程为Ax 43 By 43 Cz 43 D 61 0 xff0c 简写为 n
  • cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd 两种解决方法

    centOS8 x86 64 或 aarch64 系统下 yum或dnf 默认安装的 cmake 3 18 2 11 el8版本 xff0c 安装后无法使用 xff0c 出现 xff1a cmake symbol lookup error
  • ROS学习--轻松使用tf

    tf是ROS中建立坐标系 xff0c 并且使用各个坐标间转换关系的一个很好的工具 xff0c 对于非导航专业的同学 xff0c 常常苦恼与各种旋转矩阵的变换 xff0c 自己经常被搞的头大 xff0c 最近由于课题实验的需要 xff0c 尝
  • ROS 下navigation/robot_pose_ekf编译报错

    想要使用navigation下的robot pose ekf做IMU与视觉的融合于是找到了这个包 xff1a https github com ros planning navigation tree indigo devel 但是编译报错
  • 【学习日记】ROS下IMU使用困惑

    最近准备在机器人上测试使用IMU代替机器人的里程计 xff0c 以提高底层的控制周期 由于底层通信的原因 xff0c 使用里程计的话最多能到50HZ xff0c 因为我们的机器人对运动性能要求较高 xff0c 所以无法满足我们的要求 xff
  • ROS学习--如何结合launch文件使用参数服务器

    ROS xff08 Robot Operating System xff09 接触了将近两年了 xff0c 最常用的也就是发布话题与订阅话题 xff0c 前一段时间刚刚把Rviz与 tf搞明白一些 xff0c 都能够多掌握一些东西 xff0
  • 【ROS工具学习】之topic_tools/throttle,改变节点发布频率

    最近老师想做一个实验 xff0c 机器人上搭在Hokuyo单线激光雷达 xff0c Velodyne16线激光雷达 xff0c Kinect2 xff0c Bumblebee xb3等传感器 xff0c 这些传感器做一些实验 xff0c 因
  • 【ROS工具学习】之message_filters:消息同步

    最近实验室老师在做一个多传感器数据采集实验 xff0c 涉及到了消息同步 所以就学习了ROS官网下的消息同步工具message filters http wiki ros org message filters 消息同步有两种方式 xff0
  • ROS中map与costmap的topic数据格式定义

    map与costmap都是以nav msgs OccupancyGrid类型发布其topic 其中整张地图的障碍物信息存放在data数据成员中 xff0c data是一个int8类型的vector向量 xff0c 即一维数组 假设一张pgm
  • Ubuntu 16.04 Qt clang-format 插件安装使用教程

    Ubuntu 16 04 Qt clang format 插件安装使用教程 Qt安装下载安装修改qt环境变量 LLVM安装安装clang format配置qt打开工程文件配置clang format Qt安装 最新的qt5 12支持保存代码
  • HTTP请求首部——Authorization

    前几天的任务需要用到Authorization认证 xff0c 任务比较急 xff0c 就照着给的例子写好了 xff0c 现在任务结束了 xff0c 还是来了解一下这个Authorization Authorization 是一个HTTP安
  • 如何真正理解用户标签体系?

    对用户标签的理解不够透彻 xff1f 用户标签体系创建的方法论总是三头两绪 xff1f 具体业务场景中 xff0c 经常找不到数据分析的思路 xff1f 本文根据神策数据业务咨询师钟秉哲以 构建用户标签体系 xff0c 助力企业精细化运营
  • ubuntu设置tightvncserver自动启动

    vi etc init d vnc bin bash PATH 61 34 PATH usr bin 34 export USER 61 34 root 34 DISPLAY 61 34 1 34 DEPTH 61 34 24 34 GEO
  • 毕业设计小车搭建(1)测试思岚A1雷达数据

    采用的思岚A1型号的雷达 ubuntu系统上采集雷达数据并rviz显示 主要是根据官网给的教程步骤一步一步走下来的 思岚激光雷达 首先下载对应的官方功能包GitHub Slamtec rplidar ros 功能包创建结束后注意环境变量写入
  • 如何关闭docker容器里的进程

    如何关闭docker容器里的进程 1 使用docker exec 容器名 ps ef命令查看进程信息 示例 xff1a 创建名为 34 redis 34 的容器 xff0c 并在容器内部和宿主机中查看容器中的进程信息 xff1a 2 然后进
  • 浅谈嵌入式与互联网(详细)

    纲要 一 什么叫嵌入式 xff0c 以及与人工智能的关系 xff1f 二 嵌入式岗位 三 浅谈嵌入式开发优缺点 四 与互联网 CS相关的 xff0c 如平台服务器 xff0c 前端 APP 软件 对比 五 能力要求和薪资 参考知乎 以下均采