V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
freedom3
V2EX  ›  程序员

嵌入式没必要存在的学科,设置不科学

  •  
  •   freedom3 · 2018-06-15 04:08:04 +08:00 · 7565 次点击
    这是一个创建于 2114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    嵌入式涉及的东西太多,太杂。主要涉及操作系统、驱动、算法这是软件方面,底层是当然是硬件,数字电路、集成电路、FPGA、CPU 等等。

    先说软件方面,就操作系统这一块如果是非常小型的还能 hold 的住,如果是 pc 级别的 linux 操作系统,要 hold 的住并不是一件非常简单的事情;其次,算法方面就涉及数学方面了,难度自不必说,信号处理、图像处理、AI、等等难度是相当的高,所以软件方面难度超高,如果要弄精通。再说硬件方面,数字电路和集成电路、FPGA 这些对物理和数学的要求也是非常高的,所以硬件方面难度也是奇高,要把这两个都搞精通,难度可想而知。

    再说说市场的嵌入式做的什么东西,大部分基本就是看着参考文档,写一点底层的代码,添加或者修改一点驱动而已,技术含量比较低,怎么说昵,可不可以理解为这根本不是嵌入式开发,按照嵌入式的定义来说,可以说是软件开发。

    嵌入式含义太广,完全误导初学者,嵌入式涉及的东西,都被分解为其他学科了,都自称体系了。市场方面也是如此,所以说嵌入式根本就是一个伪概念,如果涉及硬件涉及,那就是微电子方面,如果涉及软件,算法方面,那肯定是软件学科。

    个人初步看法,欢迎探讨,总之感觉嵌入式就是鸡肋,伪概念。

    OneNian
        1
    OneNian  
       2018-06-15 08:03:23 +08:00   ❤️ 14
    你的成绩怎么样呢?
    guansixu
        2
    guansixu  
       2018-06-15 08:25:58 +08:00
    嵌入式开发是一个大的概念,里面包含的东西太多了,就像我的专业自动化一样。其实只要找到方向专精一方面就够了,全都会确实有点困难。
    steveway
        3
    steveway  
       2018-06-15 08:28:26 +08:00 via Android
    我们学校还物联网呢(手动狗头)
    EvanG
        4
    EvanG  
       2018-06-15 08:48:27 +08:00
    工作几年了?是不是只玩过 X86 的架构?其他了解一下?
    silhouette
        5
    silhouette  
       2018-06-15 08:59:54 +08:00 via Android   ❤️ 2
    你所说的“写一些底层代码”也只是调用别人帮你封装好了的库(参考 xilinx 家封装好的 c ),甚至所谓的“设计”也是使用别人做好的设计工具,或者是直接拿别人的 IP 核魔改一下。我感觉,如果一定要按照你所说的所谓嵌入式的定义,你莫不是应该从提取硅这种底层开始才能算?
    cyspy
        6
    cyspy  
       2018-06-15 09:11:30 +08:00 via Android
    英特尔扔给我们的嵌入式大赛课题,是试验在他们的 FPGA 上跑 CNN。阿里也实装 FPGA 了。
    Abblee
        7
    Abblee  
       2018-06-15 09:39:44 +08:00   ❤️ 1
    小伙子你以为把 jj 插在地球上就是把地球 qj 了吗?
    nullcoder
        8
    nullcoder  
       2018-06-15 09:45:43 +08:00
    从学科设置的角度来说,你这个质疑对所有学科都是一样适用的。
    所以是所有的学科设置都得重新来了吗?实际上学科设置是在演进的。
    但其实比起学科设置,学什么跟谁学才是更重要的。
    NSAtools
        9
    NSAtools  
       2018-06-15 09:47:27 +08:00
    嵌入式底层十年没变了吧
    相比互联网,算是传统行业,所以薪资也高不了
    janxin
        10
    janxin  
       2018-06-15 09:55:04 +08:00
    计算机科学与技术学科就是伪科学啊,涉及的东西太多,太杂。主要涉及操作系统、驱动、算法、应用软件开发这是软件方面,底层是当然是硬件等等。

    LZ 你应该是没做过实际的工作或者工作不太久?
    Skyfeng
        11
    Skyfeng  
       2018-06-15 10:00:27 +08:00
    计科真不适合搞嵌入式
    zjsxwc
        12
    zjsxwc  
       2018-06-15 10:01:55 +08:00
    让你学你就学,哪怕是母猪产后护理,学了也是有价值的
    728528678
        13
    728528678  
       2018-06-15 10:06:07 +08:00
    说实话,我现在也挺迷惘的。。。
    zhouyou457
        14
    zhouyou457  
       2018-06-15 10:07:34 +08:00
    听说你是学计算机的?来来来,我电脑开不了机了,帮我修修?https://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/a1/2018new_doge02_org.png
    zhouyou457
        15
    zhouyou457  
       2018-06-15 10:08:10 +08:00
    @zhouyou457 啊...狗头表情出不来啊...尴尬
    vegito2002
        16
    vegito2002  
       2018-06-15 10:10:08 +08:00
    学科设置本身从来没有说过必须要互斥, 有交叉甚至高重叠都是很正常的. 学就完事儿了.
    circsqua
        17
    circsqua  
       2018-06-15 10:11:55 +08:00
    学科只是种分类,
    稍微深入点其实是学校课程设置与现实世界的脱节,或者学校课程设计不是以现实世界为导向的,以及职业教育的脱节。
    GPIO
        18
    GPIO  
       2018-06-15 10:13:10 +08:00
    嵌入式==全栈(手动狗头)
    deepreader
        19
    deepreader  
       2018-06-15 10:19:48 +08:00
    基础一点的嵌入式懂一点还好,开过下眼界。嵌入式不感兴趣的话,深入的能放就学会放。当然不是放了省出来时间让给你玩,而是省下来的时间研究自己感兴趣的学科。

    @zjsxwc 学些不感兴趣的东西,浪费时间耽误研究感兴趣的东西。人时间有限,你合计合计一下。
    janus77
        20
    janus77  
       2018-06-15 10:20:50 +08:00
    交叉学科了解一下
    交叉学科之所以成为一门学科,是因为他们中单独一门提出来并没有办法做出交叉学科的成果,就像你只会操作系统 只会驱动 只会电路的人无法胜任嵌入式一样。
    而他的核心就是「如何」将这些知识交叉起来,这个部分可以成为自有的体系。
    另外学科是不断向前发展
    比如操作系统发有所展了,硬件部分也要跟上,驱动部分也要适配,不能用 10 年前的硬件去装载最新的操作系统。
    我们还要研究,当操作系统向前发展的趋势是什么,那么其他部分怎么适配发展才能跟上节奏。
    lzhCoooder
        21
    lzhCoooder  
       2018-06-15 10:22:07 +08:00
    哪里设置了嵌入式这个学科呢,
    你说的什么操作系统,算法数据结构 信号处理,模电数电,不都是, 计算机,通信,电子,自动化专业的基础课吗
    大学学的东西广度比这广多了,好好读过信息类专业入门很轻松吧,互联网兴起之前我们自动化大部分师兄都去当了焊板子,现在也不少啊
    shijingshijing
        22
    shijingshijing  
       2018-06-15 10:23:36 +08:00 via iPhone   ❤️ 2
    说的没错,嵌入式工程师是以前硬件成本较高为了降低成本而形成的职业,要求你既懂理论又懂实现,职位对应的工作本质应该是一个系统工程师,一个软件工程师和一个硬件工程师合起来完成的一个项目,但由于成本的需要而交给了一个嵌入式工程师来实现。随着通用 SoC 的普及以及半导体器件成本不断下降,以后各种个样的需求都会尽可能的利用通用平台来实现。就好比以前各个企业的 IT 系统有选 IBM 方案的,有选 intel+微软方案的,还有开源方案的,以后都会走上 x86 集群+开源系统。

    按现在的趋势,以后硬件就是 ARM 一统天下,软件要么 Linux,要么 Android。

    确切地说,嵌入式是特定时期的特定产物,以后的情形是不管是嵌入式还是 cs 还是金融,所有涉及技术的行业万佛朝宗---都给学数学的打工。
    shijingshijing
        23
    shijingshijing  
       2018-06-15 10:26:09 +08:00 via iPhone
    嵌入式最明显的例子就是手机了,以前有 mp3,有 mp4 播放器,有数码相机,有电话,都是独立的,后来只有手机了。
    zj299792458
        24
    zj299792458  
       2018-06-15 10:28:22 +08:00
    @shijingshijing 手机内存比我电脑还大了,动不动就 8 核,感觉跑 windows 完全没问题,只是因为用了 arm 精简指令集就叫嵌入式么?
    shijingshijing
        25
    shijingshijing  
       2018-06-15 10:39:39 +08:00 via iPhone   ❤️ 1
    @zj299792458 不是,现在的情况是嵌入式与通用平台之间的界限已经越来越模糊了,嵌入式本身就是一个胶水一样的东西,现在能用通用平台的基本上都用通用平台了,不能用的一般都是有某种特殊需求的,比如强实时性,这个时候会上 FPGA,而 FPGA 其实也是写程序;比如有的对能耗要求极度苛刻,这时候不如干脆定制 ASIC,比如苹果的 airpod 就自己弄了个 w1

    以前那种 PIC,c51 单片机包打天下的时代基本已经 over 了,哪怕现在还有需求,以后也是江河日下。
    onepunch
        26
    onepunch  
       2018-06-15 10:49:45 +08:00   ❤️ 1
    我才听说写驱动叫没技术含量,不是只有大牛才能写的吗?你做过嵌入式吗?

    嵌入式开发与 pc 开发、web 开发的数据栈本来也不一样 为什么不能独立出来呢 ,不是很懂
    justff
        27
    justff  
       2018-06-15 11:16:42 +08:00
    嵌入式是特定时期的特定产物 这句话很中肯,他确实过时了
    shijingshijing
        28
    shijingshijing  
       2018-06-15 12:02:02 +08:00 via iPhone
    @onepunch 驱动,BSP 这种大厂的 firmware engineer 负责搞定,最后出个 SDK 打包代码、文档、demo 就 ok 了。系统工程师做好系统功能设计和分解之后,软件工程师直接调用 SDK 接口函数实现。
    freedom3
        29
    freedom3  
    OP
       2018-06-15 12:07:39 +08:00
    @OneNian
    @EvanG
    我不是学习嵌入式的,我是搞软件开发的,只不过感觉这个是鸡肋,貌似没什么用途,听起来高大上,
    其实没什么用,说的直白点,和前端没多大区别,个人认为。
    shuizhengqi
        30
    shuizhengqi  
       2018-06-15 12:45:02 +08:00
    计科或者软件工程的根本就搞不了嵌入式,只有通信工程或者电子信息工程的,才能全面的了解嵌入式的东西,软硬都学。这个学科存在即合理,只是你的接触面太小
    huluhulu
        31
    huluhulu  
       2018-06-15 12:46:32 +08:00 via iPhone
    我怕回复呵呵被举报……只能说楼主不懂,知识还太浅……
    nonkr
        32
    nonkr  
       2018-06-15 12:52:01 +08:00 via iPhone
    你的感觉不对,还是需要多接触这个行业。
    freedom3
        33
    freedom3  
    OP
       2018-06-15 12:56:04 +08:00
    @huluhulu
    或许是吧,但是感觉想要搞精通,真的难,但是到底怎么样才算是精通
    Baymaxbowen
        34
    Baymaxbowen  
       2018-06-15 12:56:05 +08:00
    不多说
    mfhh
        35
    mfhh  
       2018-06-15 13:48:21 +08:00
    给楼主出个题,如果搞明白了,或许有点启发。
    问:
    arduino,Raspberry Pi 和 nodemcu 有什么异同?
    airqj
        36
    airqj  
       2018-06-15 13:58:04 +08:00
    搞过嵌入式的上手软件工程的活儿不就是几天的事情吗
    Alexhex
        37
    Alexhex  
       2018-06-15 15:29:06 +08:00
    机械电子方向了解一下。
    runylin
        38
    runylin  
       2018-06-15 15:37:26 +08:00
    @airqj 还真不是 可以说差别很大了
    smdbh
        39
    smdbh  
       2018-06-15 15:41:24 +08:00
    嵌入式感觉主要还是 MCU - M 类的,没有像 x86 一样的公版底层,一般都一家一个样,也就没有什么统一的驱动。原厂可以给库,但实际用还是要看手册,更何况还要操作实际硬件,又是和产品相关的,就是上下都要会。
    但是这个赚钱的确和互联网 IT 没法比。
    bluefalconjun
        40
    bluefalconjun  
       2018-06-15 16:15:55 +08:00   ❤️ 1
    混在嵌入式开发里面 15 年了...
    水确实很深... 东西也比较杂...
    但是现在已经越来越明朗了...

    目前国内几家能做 arm/mips license 芯片的公司, 还是需要养一批做嵌入式开发的来写 fw/drv, 做 android sdk 给厂商来用的.

    说说一些嵌入式相关的大头:
    硬件设计 /PCB layout/功耗 /稳定性.
    otp/binit/uboot 安全相关的每家都会自己做.
    gpe/vdec/venc 的 fw,drv,配套的中间件 /接口实现.
    基本上常用的功能比如视频通话 /播放器 /DLNA 等都是需要原厂优化的.
    量产里面还有些验证测试比如 CTS/GTS(android only)的东西.

    ... 东西还是挺多了, 感觉搞了这么久, 也就算是弄清楚了细节而已.
    freedom3
        41
    freedom3  
    OP
       2018-06-15 17:33:08 +08:00
    @mfhh
    @airqj
    @bluefalconjun
    AI 芯片、显卡芯片算不算
    zmqiang
        42
    zmqiang  
       2018-06-15 17:47:29 +08:00 via Android
    工作一段时间后恨不得把大学的书拿出来再看一遍,后悔当初没好好学。看到楼主说多余,实在是想叹口气。底子打结实比什么都好,学习不要那么功利。知识是成系统的,多学点没坏处,即使看似后面用不着。
    dbw9580
        43
    dbw9580  
       2018-06-15 19:31:41 +08:00 via Android
    学科分类又不是物种分类,不一定要泾渭分明的。那么多交叉学科都是伪概念吗?

    何况嵌入式是一个“专业”,不是“学科”。这二者又是多对多的关系。
    freedom3
        44
    freedom3  
    OP
       2018-06-15 20:37:29 +08:00
    @zmqiang
    估计是没表达清楚,引起误解,我不是嵌入式,我说的多余是这个术语是多余的,很容易引起误解的术语,不是只是的多余,两码事,只是说术语过于宽泛。这个术语定义和实际当中所做的事情,不是太搭边。正常情况一个名词或者术语要能完全表达出实际的意义或者意思
    but0n
        45
    but0n  
       2018-06-15 21:35:09 +08:00 via iPhone
    @onepunch 驱动的确没什么技术含量,和胶水代码差不多,有 datasheet 就能写
    but0n
        46
    but0n  
       2018-06-15 21:41:15 +08:00 via iPhone
    @mfhh arduino 和 nodemcu 属于软件库,对硬件的抽象,对寄存器操作的封装,树莓派是单板机,电路板+操作系统
    but0n
        47
    but0n  
       2018-06-15 21:43:47 +08:00 via iPhone
    @shuizhengqi 嗯,这个行业里的人普遍都存在这种偏见
    liwufan
        48
    liwufan  
       2018-06-15 22:09:18 +08:00
    隔行如隔山吧,正因为这个专业范围广,才有意义。谁都不知道这些学生里面会不会出来一个设计军用战斗机芯片或者给未来计算机电路铺下垫脚石的人。所以大家只能逆推出这样的系统中会有什么知识点。要是按照硬件算法什么分门别类的话,不就变职业学校了吗?
    bluefalconjun
        49
    bluefalconjun  
       2018-06-15 22:19:43 +08:00
    @freedom3 当然算..
    dychenyi
        50
    dychenyi  
       2018-06-15 22:22:36 +08:00
    @Baymaxbowen 我正好是这行业的而且我不是嵌入式,而是集成电路方面 eda,脚本方面。呵呵,楼主太自以为是了。所有职业都有存在的必要性。说肤浅一点,你们那些互联网不是一套一套的库 ,框架用来用去,难道不一样?事实大家都知道各行有各行的坑。 中兴到这种地步,你觉得 eda 方面没有多少难度? eda 方面除了仿真,除了模拟算法其他都是 UI 自动化,来啊,等你来。
    a793657136
        51
    a793657136  
       2018-06-16 09:27:50 +08:00 via Android
    @zmqiang +1. 毕业书都扔了,但是又从大学学弟那要了几本重新看
    oska874
        52
    oska874  
       2018-06-16 10:02:53 +08:00
    说难听点:拉不出屎怪茅厕
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5287 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 07:17 · PVG 15:17 · LAX 00:17 · JFK 03:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.