精华内容
参与话题
问答
  • 一个老嵌入式工程师给新手的十大建议

    万次阅读 多人点赞 2018-03-02 15:00:13
    回忆起来,不知什么时候开始,整个it业界开始习惯用开源软件来开发应用程序(Apps),产业专家也鼓励嵌入式工程师们走出舒适圈、学习新技能,才能与时俱进。正是如此,越来越多的人加入学习嵌入式的大军,致使嵌入式...
    回忆起来,不知什么时候开始,整个it业界开始习惯用开源软件来开发应用程序(Apps),产业专家也鼓励嵌入式工程师们走出舒适圈、学习新技能,才能与时俱进。正是如此,越来越多的人加入学习嵌入式的大军,致使嵌入式发展的如火如荼,工程师们的待遇也相应的蒸蒸日上。对此,有想法在此行业发展的人可是留下企鹅,大家一起进步。
    回顾1980年代的嵌入式领域,当时的工程师主要是设计混合信号电路、连接微控制器、撰写低阶编码、从外面拿回产品原型…只要一个工程师就能做好以上所有事情。但是现在,嵌入式系统变得更大、更复杂,一台设备可能有数百万行软件程序代码;嵌入式技术也被区分为硬件开发、固件开发与软件开发。
    在很多大公司仍然是如此,但趋势似乎又有回头的迹象;有越来越多业者开始整合工程师的角色,寻找既熟悉软件也熟悉硬件技术的工程师,以求事半功倍之效。调查显示,现在有越来越多工程师的工作同时牵涉硬件与软件技术。
    有越来越多工程师需要软硬件技术能力兼备
    嵌入式技术日进千里,工程师要如何确保自己学习到的新技术是最关键的?为此EETimes美国版请教了九位嵌入式领域专家与一位负责招募人才的主管,请他们分享究竟现在的嵌入式工程师最需要掌握哪些重要技能;虽然他们的意见稍有不同,但都同意一个观点:所有的工程师都不应该停止学习。
    以下是整理专家意见,归纳出的十个给嵌入式工程师的建议:


    1. 学习那些让因特网实现的技术
    具备30年嵌入式工程师经验的独立产品设计与顾问公司Aurium Technologies 总经理Ken Wada 认为,多数嵌入式领域工程师都知道如何撰写C或C++语言程序,但有时候这样的技能是不够的;他建议嵌入式工程师学习因特网有关的技术,对职业生涯发展会有加分效果,例如他目前负责的几个开发案,都是在嵌入式系统中嵌入虚拟(virtual)的XML,好让一些小型连网设备能具备“即插即用”的运作模 式。
    2. 学习利用搜索引擎
    当了35年工程师、自认是“看得懂系统架构的软件 人”的PTR Group首席科学家Michael Anderson认为,不要闭门造车,要善用开放源码世界的信息,很多常见的设计问题其实透过因特网就能找到同领域菁英贡献的程序代码;嵌入式工程师们要走出自己的小世界拥抱社群,与同领域的其他工程师们相互交流、互相帮助,而这也是开放源码世界的精神。
    3. 离开舒适圈!
    虽然只当了18年工程师、但自认是系统与软件技术“通才”的DSP与嵌入式软件开发顾问公司Jetperch创办人Matt Liberty建议,不断更新并提升原本擅长的技术虽然很重要,但嵌入式工程师若能扩展自己的知识领域会更有益。走出舒适圈,挑战自我、去学习原本不熟悉的东西,包括工程以外的知识,例如与客户、同事之间的互动,将会收获良多。
    4. 熟悉实时操作系统(RTOS)
    在工程人才招募机构Randstad Technologies负责嵌入式产业领域的解决方案经理Henry Wintz表示,目前产业界对于熟悉RTOS的工程师需求很高,也愿意提供更高的薪资水平;因此他鼓励没有接触过RTOS的嵌入式工程师从一些较小型的系统着手,累积相关技术经验。此外他也发现产业界对嵌入式Linux人才有不少需求,主要是因为这种操作系统具备较大的设计弹性。
    5. 培养多元化技能与系统观
    担任近20年工程师、具备许多不同领域技术经验的技术顾问公司Rebelbot顾问Jen Costillo建议,原本从事较小型系统架构(例如MCU)开发的工程师,可以开始去熟悉更大的系统(例如Linux驱动程序),反之亦然。尝试着去开发手机应用程序、或者是学习后端服务器的相关技术,能让你开启完全不同的观点;他并建议工程师去熟悉开放性硬件,现在市面上有不少现成的开发板,能让工程 师专注于学习独特算法的开发。
    6. 了解软件也要了解最新的处理器
    有超过15 年嵌入式软件工程师经验的Embedded.fm 工程师Elecia White表示,除了要深入了解C或C++等基本程序语言,有时也要认识一些热门的新程序语言以因应特殊设计需求,但更重要的是了解最新的处理器技术;处理器才是嵌入式系统的本质。因为我们的系统资源有限,我们需要了解可用的资源有哪些。
    7. 要能熟悉开放源码软件
    拥有31年工程师经验的Freescale Semiconductor 数字网络全球软件开发部门总监Rob Oshana 表示,客户往往会要求在系统中整合一大堆软件,因此所有的嵌入式工程师需要熟悉各种软件;他建议工程师避免只专长单一领域,因为那可能会阻碍你的成长。对 嵌入式工程师来说,确保自己对软硬件技术都很了解,是非常宝贵的价值。
    8. 建立系统级的工程思维
    自诩为高信赖度嵌入式系统专家、担任了15年工程师的E2V电子系统总工程师Adam Taylor认为,嵌入式工程师拥有系统导向的思维是很重要的,有不少开发案遇到问题,就是因为没有在开发初期充分考虑基准、验证策略以及兼容性验证计划 等项目;此外每个嵌入式工程师都应该具备优良的项目管理技巧,力求准时完成负责的项目。具备能明智因应技术与项目风险的能力,对职业生涯发展会很有帮助。
    9. 要能明确表达自己的想法与意见透过文字或绘图)
    Micrum 总裁Jean LaBrosse认为,无论是哪一种工程师,都需要能有效表达自己的想法与意见;往往有些菜鸟工程师无法清晰表达自己的想法,因为抓不到重点,而最好的解决方法是练习将之图形化,例如画出流程图。这听起来好像有点过时,但有时利用各种图框组合来整理自己的思绪、表达想法会是很有用的,例如iPad的 iThoughts应用程序。
    10. 学习无线连结技术
    自认是低阶嵌入式工程师、有13年工作经验的iRobot资深首席软件工程师Chris Svec建议,嵌入式工程师需要在接下来1~3年学习无线连结技术,特别是Wi-Fi与蓝牙低功耗(BLE);因为现在的嵌入式设备(至少各种消费性电子都是)与使用者智能手机连结的主要(或唯一)方式,就是透过这些无线技术,虽然Wi-Fi与BLE不一定会是嵌入式系统的标准配备,但熟悉这些技术对嵌入式工程师来说会很实用。

    以上十点只是一点心得体会,希望对你学习有点帮助。如果你目前想学嵌入式确没有方向,或者正处于学习中存在问题又不知道如何解决的话,这边你可以留下企鹅,楼主这些年也有不少干货,相信一定可以帮助你走向新的篇章。
    展开全文
  • 一线工程师告诉你嵌入式真实现状与发展前景

    万次阅读 多人点赞 2018-10-02 18:49:59
    个人说明:本人并不是年薪百万的技术大牛,但总算是一名合格的嵌入式工程师,现在某企业担任嵌入式软件工程师开发一职,以下观点可能会带有片面或者分析不全,但却是一名一线企业嵌入式软件开发者真实感受和所得,...

    个人说明:本人并不是年薪百万的技术大牛,但总算是一名合格的嵌入式工程师,现在某企业担任嵌入式软件工程师开发一职,以下观点可能会带有片面或者分析不全,但却是一名一线企业嵌入式软件开发者真实感受和所得,希望能帮助那些有需要的人,我明白年轻人出来打拼都不容易。

    为何要写这片文章?小生也是过来人,踩过你们踩过的坑

    百度搜索“嵌入式”、“嵌入式开发”、“嵌入式发展前景”等字眼,出来的都是一大堆培训机构,出来的都是一大片他们所谓的对嵌入式行业的“见解”,不否定其内容有一定的专业性,但其中“水份”我想大家比我更清楚,“卖瓜赞瓜”的道理谁都懂;或者出来的是几年前的“嵌入式状况”,与当今嵌入式环境相比,企业无论是在开发、用人、内容、市场上都发生了很大的改变。因此,作为一名一线企业嵌入式软件工程师的我,想通过自己的实际经历理性地评论当今嵌入式行业的真实状况。本文章写于2018年10月1日,小生不才,自认为可以反映当今嵌入式行业的一个真实状况,以及它的科学性和前沿性可以是2018-2020年期间嵌入式的定义。

    一.嵌入式的定义和举例分析

    官方定义:

    根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

    目前国内一个普片被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

    说白了就是先设计硬件,然后根据需求编写能在该硬件上运行的软件,就成了所谓的“智能硬件”。

    或者说得还不够明白,那行,我们说一说具体的嵌入式产品有哪些,嵌入式是做什么的:

    传统嵌入式产品:空调主控模块、冰箱主控模块、家用遥控器、智能手机、教学投影仪、音响系统、雷达系统、路由器等等

    前沿嵌入式产品:无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等

    一起看一些前沿的嵌入式产品:

    下面是大疆无人机,可应用在高空拍摄、军事侦查、高空作业、自动巡逻、农业工作、矿业勘测、地形测绘等方面

    下面是天猫精灵智能音响,可进行语音识别、对话交互,应用与娱乐、生活、购物、智能家具控制等方面,属于新一代音箱

    下面是百度机器人,通过深度学习、神经网络等算法,实现“百度大脑”,具有自学习、自训练能力,如最强大脑的小度机器人

     下面是自动驾驶汽车,自动驾驶是一个前沿的科技,在我国还没本真正实施,不仅是技术方面,它还得得到政府支持和认同

    下面是海尔扫地机器人,能够自动巡逻,自动绘制室内地图,自动避障,自动清洁地面,还你一个干净的环境

    下面是小米手环3,可显示微信、来电等消息内容,振动闹钟,心率计算,步数统计,实时运动数据查询,睡眠质量监测等

    看完这些前沿科技产品后可发现,这些形形色色的“高端产品”都离不开嵌入式技术,离不开传感器技术,离不开软件程序。那么我现在可以告诉你,嵌入式开发的工作就是去开发以上等一系列产品 ,这就是嵌入式,相信此刻你对嵌入式行业已有“形而上学”的了解。

    二.嵌入式工程师在企业工作的真实内容

    嵌入式软件开发具体可以分三类:

    嵌入式驱动工程师:编写和移植各种芯片驱动(如音频芯片),优化硬件设备驱动(如温湿度传感器),得精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等等,开发难度最大。该类开发者一般是软硬件综合型人才,一般的嵌入式驱动工程师指Linux上的驱动开发工程师,需要精通Linux驱动框架(platform框架、input子系统框架等),结合芯片本身去编写驱动,驱动的好坏很大程度上决定一个产品的好坏。业界对驱动人才的定义是三年才算入门,可见此门槛之高。

    嵌入式系统工程师:主要是编写固件,根据不同平台移植操作系统,根据应用场景来优化系统,需要熟悉整个操作系统组成与调度,对固件的稳定性高求很高,如果系统不稳定,驱动和应用也是白做的。

    嵌入式应用工程师:编写业务逻辑程序,调用驱动工程师提供的接口控制设备,软件开发过程所涉内容范围非常广,主要使用C语言开发,但经常会涉及C++、Java、python、JavaScript、PHP等各类语言以及各种脚本语言、数据库、前端后台、各种通讯协议、甚至一些从来没听过的协议或概念,需要很强的学习能力,该职位也是各大公司需量最大的,一般10人的开发小组,驱动开发与系统开发与应用开发的比例是1:2:7。

    根据我的经验,世界上可以分成两种嵌入式工程师,一种是大公司的嵌入式工程师,另一种是小公司的嵌入式工程师,我知道这样分类很不妥,但并非毫无道理,请听我一一下概述:

    大公司:大公司的特色是什么?答案:人多!

    人多导致的后果是什么?答案:项目分工非常细,都遵循“术业有专攻”这一哲学道理;

    例如职位是嵌入式驱动开发,那么大公司可能还会细分嵌入式显示屏驱动工程师、嵌入式音频驱动工程师、嵌入式电源驱动工程师等;这就是大公司一贯的作风,它希望去培养某一方面的人才;说白了就是如果你分配到的是一个显示屏驱动项目,那么有可能你这一年内都是在开发显示屏驱动,一年后你将是显示屏驱动方面的一个小专家;在大公司记住一点,你做的东西都是很“精”的;同时,大公司的薪资水平和福利也是相当可观的,有完善的晋升路线,离职率一般不高。

    小公司:小公司的特色是什么?答案:人少!

    人少导致的后果是什么?答案:项目分工不明确,什么都得干,它给你灌溉的思想是“小陈,我们培养的是综合性人才,在这里你就是全栈工程师”;

    估计很多人都没听明白,意思是说这里人少活多,你什么都得干。小公司才不会管你是嵌入式驱动工程师还是嵌入式应用工程师(有的公司还是区分的,的确不能以片盖全),反正是活你就得干,分分钟前端后台服务器你都得给我干,不要跟我说什么没学过,没学过就去学呗。小公司还有一个特色就是:“节奏快”,大公司里面可能开展一个项目会花上几个月的时间或者更长,在小公司是不存在的,领导都是指望着你几天或者两三周完成,那你也只能说呵呵了。的确,在小公司你可以得到飞速的进步,很强的综合性技能,前提是比人家花出更多的时间,把每一个项目理解清楚,而不是应付心态。坚持下来,两年后必能独当一面。小公司提供给应届生的薪资水平相对与到大公司来说要低,其福利不完善和晋升路线也一般比较模糊,所以小公司的离职率会比较高,经常出现两年三跳的情况。

    还有一个经验分享给年轻人:无论哪种语言,程序代码只是一个简单的工具,最后真正留下的只有原理、协议、框架、思维。

    三.嵌入式发展前景与当今状况

    目前的嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),从现在各种前沿的嵌入式产品来看的确如此,嵌入式产品的一个发展趋势是更倾向与自动化控制和人机交互,而不是强调“算法”这一块,要区分你仅仅是一名嵌入式工程师而不是算法工程师,什么一大堆“人工智能”、“阿尔法狗”、“深度学习”、“神经网络”都不需要深入理解,那是研究生、博士生做的,小生并不是说你的能力不足,而是“术业有专攻”,这并不是一名嵌入式工程师的工作量,你需要做的仅仅是与他们的“云端大脑”进行对接,调用他们API就完事了。

    由于人工智能、深度学习、神经网络、区块链、大数据等先进学科的崛起,很多人都产生质疑:“嵌入式还有发展前景吗”?这个问题我在这里可以很肯定地告诉你:“嵌入式有很好的发展前景,前沿嵌入式技术即将崛起,或者说已经崛起”。的确,人工智能、大数据这些学科会给嵌入式带来冲击,就目前来看,大学生更倾向与python编程语言、机器学习这一块,而嵌入式学者的确比往年有所下降,但学者少了并不代表他的需求就少了,并不代表他的薪资水平下降了,目前的一个嵌入式技术更倾向于与智能学科相结合的趋势,以百度机器人为例,机器人的核心是大脑,即是“数据和算法”,但机器人大脑想机器人身躯能够像人类一样活动,能说会道,行走自如,那么就必须得依靠嵌入式技术,这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必定带动新型的嵌入式技术发展。

    对于发展前景,有一项更重要的参数,那就是当今嵌入式软件工程师的薪资水平,我下面给出一些理性的数据,是从各大招聘平台调研而来:(数据只能作为参考,具体薪资还是得看个人修为,有的达不到该薪资水平,有的早已超过该薪资水平)

    非211、985院校应届毕业生平均月薪:8k

    是211、985院校应届毕业生平均月薪:12k

    一年工作经验者月薪:10k-15k

    二年工作经验者月薪:12k-18k

    三至五年工作经验者月薪:20k-30k

    上述数据只针对那些“真正努力”的嵌入式工程师,不适合应“应付式工作”的嵌入式工程师,同时声明不对该薪酬水平负任何责任。

    四.展望人工智能带动前沿嵌入式技术

    人工智能给嵌入式带来的冲击,是福也是祸,人工智能实现智能化无处不依赖嵌入式技术,人工智能学科在不知不觉中带动嵌入式技术革新,从一系列智能产品,包括无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等,有哪个不依靠嵌入式技术来实现,并没有,人工智能越是想向人类表达他的智能水平,越是要依靠嵌入式技术,所以前沿嵌入式技术更倾向于嵌入式+智能学科的发展,当智能学科真正崛起,嵌入式必定又是一次浪潮与技术革新。

    展开全文
  • 一位嵌入式工程师的30岁小总结,真实、可鉴!

    万次阅读 多人点赞 2018-11-19 11:32:20
    回想我刚毕业那年的春节后,招聘现场也异常火爆,我艰难地挤到了第一排,递上简历,得到两个问题,第一,学什么专业,会干啥,我如实回答,第二个问题,Linux玩到什么程度,我说...
        

    640?wx_fmt=jpeg

    回想我刚毕业那年的春节后,招聘现场也异常火爆,我艰难地挤到了第一排,递上简历,得到两个问题,第一,学什么专业,会干啥,我如实回答,第二个问题,Linux玩到什么程度,我说还没开始,刚把声卡驱动写好。然后就告诉我两天后到公司二面,二面过程很长,但我还算顺利地过了。就业的问题算是解决了。

     

    我上学路过福州,正好赶上个招聘会,当时在福大礼堂,一个看起来非常牛气的公司在招人,打着省科技厅的名号,列了几个国家863计划的项目,薪资福利一切看起来都很诱人。

     

    找工作的事情也困扰过我老长时间,想从事相关专业却发现很难,一个学自动化的,真正做过的自动控制系统只有一个:远程炉温控制。以后就去烧锅炉吗?不怎么愿意。再有一个就是来学校招聘的河南拖拉机厂,指名我们班的学生他全要,无须面试,当场签合同。就是待遇少点,月薪3800,我们这一届还不属于扩招呢,怎么这么快就降价了?折腾了另外几家公司,都觉得没啥意思,高不成低不就。干脆玩到7月份,毕业。

     

    告别了学生时代。刚开始上班的时候,感觉很不一样,每天骑自行车去上班,心中充满了神气和满足。那时对待工作也是激情洋溢,我的第一个任务在现在看来很简单,做一个瘦身版本的Linux,能让系统+产品以 ramfs的形式在内存里运行,就是为了解决系统非正常关机再开机时漫长的fschk过程,当时没有ext3,ibm有一个Jfs,但似乎不是免费的。于是我就考虑使用ramfs,把硬盘干掉,换成Flash,省下的钱足够加更大的内存...,开了不少会,最终决定确实可行。接下来的rootfs制作过程却让我吃尽苦头,2001年的Linux远没有现在普及,周围的人没有任何经验,网上能查到的资料聊聊无几,而且那时只有sohu,yahoo,很后面才认识google,没办法,只能一点一点摸索,从Flash驱动,lilo,kernel,再按着Sysinitrd的启动脚本,一个文件一个文件添加,再到链接库...漫长的时间之后,终于搞出点东西并得到老大的认可:可以把产品加到上面去。看这自己做的东西出货,心里那叫一个爽。我要没猜错,今天我只要愿意,我一定可以google一个别人做好的rootfs,除去测试,最多两周时间完成我当初所有的事情。

     

    于是很快,我离职,并离开了福州来到厦门。

     

    第二家是上市公司,我去的时候正是它辉煌的时候,老总大手笔地开展各种新业务,挂名电子行业,却盯着地产和汽车这两块肥肉。不过这些都和我关系不大,我要去做的,也是公司的新业务,在国内也是刚刚兴起:MP3播放器。换工作让我涉足全新的领域,从还算单纯的软件开发,到离不开示波器万用表。从gcc到 keil,从vi到source insight。

     

    一切都是很新鲜。但因为和硬件工程师一起干活的原因,我总觉得自己在做的事和小时候自己折腾的东西很相似,因此兴头十足,搞得不亦乐乎。很遗憾,不幸再次降临到我头上,两年后公司的主营业务开始出现亏损,边缘部门被砍是自然的,何况这时国内的MP3市场已经被深圳小厂占领(那时似乎没有“ 山寨”的概念)。就这样我被“规划”到别的部门。公司业务越来越萎靡,“招安”我的老大又很排外,认为我是外系的人,让我一直处于“被闲置”状态。半年没干一点事。那怎么办,赶紧撤吧。

     

    再次找工作,来到了现在这家。号称做电视,刚去的时候我对电视的了解为零。再次涉足新领域,这会欠缺的是基础知识,电视信号从如何调制开始,到如何接收,声音、图像如何解调,解码,scaler...没有这些基本常识,我只能一点点啃,而且很吃惊地发现,自己对新知识的接受能力已经大不如从前。还好,这号称公司,实际上就是加工厂,开发模式也很简单:从方案商手中拿到半成品,包括pcb,原理图,源代码,以及bom,然后找几个客户,问他们需不需要,需要我们就立项,按客户需求改改他们需要修改的,UI级别的需求,改动大了我们直接找原厂,其实电视这东西做了好几十年,客户能想到的需求不会比方案商多。


    因此基本不修改就能生产。从立项到出货,业务员和客人承诺的时间从来都是三个月。因此在这呆了三年不到,仔细数数自己过手的机型居然高到20多个,最长的一个项目也不过8个月,忙的时候4,5款机器一起搞是再正常不过的事。这种环境下,出货就是死命令。任何问题都可以叫外协或原厂解决。而我要做的就是走流程,发放软件,偶尔改改bug。三年下来自己对电视依然是一知半解,懵懵懂懂。而且一直混到现在。

     

    就这样,30年没了,一事无成。总结下自己没牛逼起来的原因:

     

    第一点,没有积累

    积累这个命题太大,我没办法说全,只能说一点:技术的积累很重要,非常重要。

     

    我的情况很类似,做MP3的时候,工作很卖命,攻关期间,连续工作30几天,每天2点睡觉,8点准时回到办公室,没有休息日,没有约会,盯示波器盯到眼睛通红,洗澡是能洗出一地的头发也在所不惜,因为当时觉得趁着还年轻,能多做一点是一点,能多学一点是一点。那时住在厦门岛外,虽然公司天天有2,30班次的车往返岛内和工厂之间,我一年到岛内的时间也就7,8次。很执着的一段时间,但现在回头一看,非常可惜,白忙活了2,3年。那时的努力对改变我现在的生活状况没有任何帮助。因为那时所学习的东西,现在几乎用不上,而且基本上都忘光了。

     

    以我自己为例子,每家公司工作2,3年之后便离开,3年,对于一个行业来说应该是刚刚迈过门槛,进门了,也能看到里面有啥了,但仅限于此。之前我误以为原来做软件,现在还是做软件,换个地方作对自己影响不大,其实这个观点很糟糕,什么叫软件?是C,Java,C#,编程语言本身吗?这只是工具,好比外科医生,刀只是他的工具一样,在胸外科干了5年,刚明白心脏周围的血管、神经、肌肉组织。忽然觉得压力太大,工作太辛苦,收入太低,于是转行做兽医,过着游山玩水四处找野兽的快活日子。这时让你解剖一只猪是不是得从头学起?是不是护士递过来的刀都没变?但却不知道从何开始了。决定做兽医的那一刻,意味着在胸外科5年所学的知识现在用不上了,打着兽医的旗号赚钱,那前5年是不是白白浪费了?也许你会觉得说浪费有点言过其实,多多少少有点相通。没错,但是再一个5年后,一个是行医十年的老江湖,一个可能是重复5年前的模样。道理简单。

     

    技术积累本身是一个漫长的过程,无聊,单调,而且很这个过程很辛苦,并不是所有人都能坚持,这是一个浮躁的社会。人们习惯了短平快的开发方式,有问题找外协,凡事最好马上有结果,立竿见影成为一种必须,都希望一夜暴富,都希望不劳而获,都习惯了快餐式生活,我们甚至不允许论坛上出现很长的文章,哪怕句句言之有物也会被鄙视。这个是社会问题,但我们必须很清楚,社会有问题,我们身在其中,也肯定有问题,我们要时刻告诫自己:没有积累成就不了高手。如果你也想称为高手,那么坚持。

     

    再一点,当前的环境,国内很少企业会考虑对工程师的培养,甚至培训都不再老板的考虑范围之内。年轻的工程师都处于自生自灭的状态。老板雇你,他考虑最多的还是你能否为他创造利润,创造多少,而你自己的成长,你的提高是你自己的事情。

     

    工作之余你必须付出更多的,真正属于自己的努力。我们总在抱怨自己做着简单,粗糙,没技术含量的活,担心没有提高。其实未必,什么叫技术含量?一定是自己未涉及的领域吗?把油倒进瓶子里有技术含量吗?在瓶口搁个铜钱呢?想想同行,他们也干着同样的活,想想传说中的扫地僧,我们会更坦然面对自己的处境,更清楚自己该怎么做。

     

    第二点:关于跳槽

    这一行为已经流行N年,年轻人总是遇到一丁点稍稍不顺心的事就吵着要离开,离职是否值得,这是一个老生常谈的话题,我多说也改变不了任何人的想法。我个人认为,如果你确实觉得除了跳槽之外创造不出更好的机会来实现自己的目标时,再走这条不得已的路也不迟。不要简单的因为能多赚几百块银子或出一口恶气而离开现在的位置。做好自己的职业规划,只有明白了自己想成为一个什么样的人,才能走好每一步棋。是否有兴趣做一个牛逼的工程师,是否准备好了就这么艰苦的干下去?我不鄙视把赚到一大笔钱当作终极目标的想法,但钱肯定是艰苦劳动的附属产物,这是一个浅显的道理,偏偏很多人不明白,甚至假装不明白。不少工程师简单地把发财的希望寄托在3,5年开发->3,5年技术支持->3,5年业务->捞个大单,当老板->发财这么一个简单的道路上,不错,很多牛逼的老板都是这么过来的,或是类似这么走过来的。但决定这么做之前你是否考虑过更基本的一些问题,比如多少人在尝试这么做,多少人能实现最终的目标,在比如自己是业务的料吗?把自己从一个见到生人说话都会结巴的雏,练成一个油嘴滑舌的奸商,需要多少时间?再比如,3,5 年积累的知识够吗?

     

    老罗说过,失败的原因只有一种,那就是半途而废。如果可以,我们不妨在一个企业工作很长的一段时间,这样才能积累行业经验,所谓行业经验,不外乎技术,业务,人脉。

     

    第三,关于深入

    解决问题就是我的工作。问题的解决方案往往不止一个,可以用简单的补丁把问题裹住,不让他出现。或者从源头查起,找到问题根本的地方把他干掉。咋一看,这个似乎没什么好说,能从根源解决问题谁不愿意?但现场情况往往没这么简单,要么你没有这部分的源码,要么生产时发现产品有致命bug,线上几百号人坐着等你,你没时间,要么,代码你根本没看懂,再要么,你连芯片规格书都没看完,不知道哪里可能会出问题。这时又怎么谈从源头解决问题呢?不深入又怎么能正真明白呢?很多时候老板会为了进度的原因让你赶快搞定下一个 bug,这时你会怎么办?这是个关于惰性和耐性的问题,所谓性格决定命运,这多少能看出点端倪吧。浅尝辄止,蜻蜓点水般地看待问题,只能让自己的水平永远停留在初学者的状态。而你的工作也随时可以被刚毕业的新人替代,等自己岁数大到一点程度时才恍然大悟,已经晚了。

     

    就这些了,其实还可以说很多,但都是细节。自己总结的结果往往不是很好,当*局者迷嘛,让身边的人来评价,会得到更有价值的信息。

     

    如果失败可耻的话是不是这些人都活不下去了?人生没有成败可言,只论精彩与否。努力过就没有遗憾。大可不必把他人的价值取向作为自己的成功标准,幸福不分贫富,如果你跟我一样,认为冬天躺在草坪上晒太阳是一种享受,认为老奶奶满地追儿子是一种惬意,如果你也认为自己的选择适合自己,并勇敢地接受生活中随之而来的一切,你就获得了一份属于自己的精彩。

     

    30 岁,就这么回事,不成功,但我也不觉得失败。当所有人都认为只能以豪宅名车来定义成功时,这个社会99%的人都失败了,那失败也不是一件可耻的事情。毕竟我们能凭自己的手艺养活了家人,不丢人。 

    640?

    640?wx_fmt=jpeg

    1.10年,嵌入式系统联谊会感恩有你!

    2.e络盟《嵌入式系统访谈》电子书可以下载啦!

    3.嵌入式软件开发编程规范很重要,很重要,很重要!

    4.编程语言 11 月排行:万年不变的前三,Go终于进前十

    5.Arm中国“周易”人工智能平台可以降低算力成本!

    6.微软“黑历史”:一个活了 45 年的愚蠢 Bug!

    640?wx_fmt=gif

    免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

    展开全文
  • 在百度搜索“嵌入式”、“嵌入式开发”、“嵌入式发展前景”等字眼,出来的都是一大堆培训机构,以及大篇幅的他们所谓的对嵌入式行业的“见解”,不否定其内容有一定的专业性,但“卖瓜赞瓜”的道理谁都懂。...

    640?wx_fmt=gif

    在百度搜索“嵌入式”、“嵌入式开发”、“嵌入式发展前景”等字眼,出来的都是一大堆培训机构,以及大篇幅的他们所谓的对嵌入式行业的“见解”,不否定其内容有一定的专业性,但“卖瓜赞瓜”的道理谁都懂。

    因此,作为一名一线企业嵌入式软件工程师的笔者,想通过自己的实际经历理性地评论当今嵌入式行业的真实状况。

    640?wx_fmt=jpeg

    1.嵌入式的定义和举例分析

    官方定义:

    根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行的装置”。

    这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

    目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

    说白了就是先设计硬件,然后根据需求编写能在该硬件上运行的软件,就成了所谓的“智能硬件”。

    或者说得还不够明白,那行,我们说一说具体的嵌入式产品有哪些,嵌入式是做什么的:

    传统嵌入式产品:空调主控模块、冰箱主控模块、家用遥控器、智能手机、教学投影仪、音响系统、雷达系统、路由器等等;

    前沿嵌入式产品:无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等;

    一起看一些前沿的嵌入式产品:

    下面是大疆无人机,可应用在高空拍摄、军事侦查、高空作业、自动巡逻、农业工作、矿业勘测、地形测绘等方面。

    640?wx_fmt=png

    下面是天猫精灵智能音响,可进行语音识别、对话交互,应用与娱乐、生活、购物、智能家具控制等方面,属于新一代音箱。

    640?wx_fmt=png

    下面是百度机器人,通过深度学习、神经网络等算法,实现“百度大脑”,具有自学习、自训练能力,如最强大脑的小度机器人。

    640?wx_fmt=png

    下面是自动驾驶汽车,自动驾驶是一个前沿的科技,在我国还没本真正实施,不仅是技术方面,它还得得到政府支持和认同。

    640?wx_fmt=png

    下面是海尔扫地机器人,能够自动巡逻,自动绘制室内地图,自动避障,自动清洁地面,还你一个干净的环境。

    640?wx_fmt=png

    下面是小米手环3,可显示微信、来电等消息内容,振动闹钟,心率计算,步数统计,实时运动数据查询,睡眠质量监测等。

    640?wx_fmt=png

    看完这些前沿科技产品后可发现,这些形形色色的“高端产品”都离不开嵌入式技术,离不开传感器技术,离不开软件程序。

    那么我现在可以告诉你,嵌入式开发的工作就是去开发以上等一系列产品 ,这就是嵌入式,相信此刻你对嵌入式行业已有“形而上学”的了解。

    2.嵌入式工程师在企业工作的真实内容

    嵌入式软件开发具体可以分三类:

    嵌入式驱动工程师:编写和移植各种芯片驱动(如音频芯片),优化硬件设备驱动(如温湿度传感器),得精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等等,开发难度最大。

    该类开发者一般是软硬件综合型人才,一般的嵌入式驱动工程师指Linux上的驱动开发工程师,需要精通Linux驱动框架(platform框架、input子系统框架等),结合芯片本身去编写驱动,驱动的好坏很大程度上决定一个产品的好坏。业界对驱动人才的定义是三年才算入门,可见此门槛之高。

    嵌入式系统工程师:主要是编写固件,根据不同平台移植操作系统,根据应用场景来优化系统,需要熟悉整个操作系统组成与调度,对固件的稳定性高求很高,如果系统不稳定,驱动和应用也是白做的。

    嵌入式应用工程师:编写业务逻辑程序,调用驱动工程师提供的接口控制设备,软件开发过程所涉内容范围非常广,主要使用C语言开发,但经常会涉及C++、Java、python、JavaScript、PHP等各类语言以及各种脚本语言、数据库、前端后台、各种通讯协议、甚至一些从来没听过的协议或概念。

    这需要很强的学习能力,该职位也是各大公司需量最大的,一般10人的开发小组,驱动开发与系统开发与应用开发的比例是1:2:7。

    根据我的经验,世界上可以分成两种嵌入式工程师,一种是大公司的嵌入式工程师,另一种是小公司的嵌入式工程师,我知道这样分类很不妥,但并非毫无道理,请听我一一下概述:

    大公司:大公司的特色是什么?答案:人多!

    人多导致的后果是什么?答案:项目分工非常细,都遵循“术业有专攻”这一哲学道理。

    例如职位是嵌入式驱动开发,那么大公司可能还会细分嵌入式显示屏驱动工程师、嵌入式音频驱动工程师、嵌入式电源驱动工程师等。

    这就是大公司一贯的作风,它希望去培养某一方面的人才;说白了就是如果你分配到的是一个显示屏驱动项目,那么有可能你这一年内都是在开发显示屏驱动,一年后你将是显示屏驱动方面的一个小专家。

    在大公司记住一点,你做的东西都是很“精”的;同时,大公司的薪资水平和福利也是相当可观的,有完善的晋升路线,离职率一般不高。

    小公司:小公司的特色是什么?答案:人少!

    人少导致的后果是什么?答案:项目分工不明确,什么都得干,它给你灌溉的思想是“小陈,我们培养的是综合性人才,在这里你就是全栈工程师”。

    估计很多人都没听明白,意思是说这里人少活多,你什么都得干。小公司才不会管你是嵌入式驱动工程师还是嵌入式应用工程师(有的公司还是区分的,的确不能以偏盖全)。

    反正是活你就得干,分分钟前端后台服务器你都得给我干,不要跟我说什么没学过,没学过就去学呗。

    小公司还有一个特色就是:“节奏快”,大公司里面可能开展一个项目会花上几个月的时间或者更长,在小公司是不存在的,领导都是指望着你几天或者两三周完成,那你也只能说呵呵了。

    的确,在小公司你可以得到飞速的进步,很强的综合性技能,前提是比人家花出更多的时间,把每一个项目理解清楚,而不是应付心态。坚持下来,两年后必能独当一面。

    小公司提供给应届生的薪资水平相对与到大公司来说要低,其福利不完善和晋升路线也一般比较模糊,所以小公司的离职率会比较高,经常出现两年三跳的情况。

    还有一个经验分享给年轻人:无论哪种语言,程序代码只是一个简单的工具,最后真正留下的只有原理、协议、框架、思维。

    3.嵌入式发展前景与当今状况

    目前的嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),从现在各种前沿的嵌入式产品来看的确如此,嵌入式产品的一个发展趋势是更倾向与自动化控制和人机交互,而不是强调“算法”这一块。

    要区分你仅仅是一名嵌入式工程师而不是算法工程师,什么一大堆“人工智能”、“阿尔法狗”、“深度学习”、“神经网络”都不需要深入理解,那是研究生、博士生做的。

    笔者并不是说你的能力不足,而是“术业有专攻”,这并不是一名嵌入式工程师的工作量,你需要做的仅仅是与他们的“云端大脑”进行对接,调用他们API就完事了。

    由于人工智能、深度学习、神经网络、区块链、大数据等先进学科的崛起,很多人都产生质疑:“嵌入式还有发展前景吗”?

    这个问题我在这里可以很肯定地告诉你:“嵌入式有很好的发展前景,前沿嵌入式技术即将崛起,或者说已经崛起”。

    的确,人工智能、大数据这些学科会给嵌入式带来冲击,就目前来看,大学生更倾向与python编程语言、机器学习这一块,而嵌入式学者的确比往年有所下降。

    但学者少了并不代表他的需求就少了,并不代表他的薪资水平下降了,目前的一个嵌入式技术更倾向于与智能学科相结合的趋势。

    以百度机器人为例,机器人的核心是大脑,即是“数据和算法”,但机器人大脑想机器人身躯能够像人类一样活动,能说会道,行走自如,那么就必须得依靠嵌入式技术。

    这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必定带动新型的嵌入式技术发展。

    对于发展前景,有一项更重要的参数,那就是当今嵌入式软件工程师的薪资水平。

    我下面给出一些理性的数据,是从各大招聘平台调研而来(数据只能作为参考,具体薪资还是得看个人修为,有的达不到该薪资水平,有的早已超过该薪资水平)

    非211、985院校应届毕业生平均月薪:8K;

    是211、985院校应届毕业生平均月薪:12K

    一年工作经验者月薪:10K-15K

    二年工作经验者月薪:12K-18K

    三至五年工作经验者月薪:20K-30K

    上述数据只针对那些“真正努力”的嵌入式工程师,不适合应“应付式工作”的嵌入式工程师,同时声明不对该薪酬水平负任何责任。

    4.展望人工智能带动前沿嵌入式技术

    人工智能给嵌入式带来的冲击,是福也是祸,人工智能实现智能化无处不依赖嵌入式技术,人工智能学科在不知不觉中带动嵌入式技术革新。

    从一系列智能产品,包括无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等。

    有哪个不依靠嵌入式技术来实现?并没有,人工智能越是想向人类表达他的智能水平,越是要依靠嵌入式技术。

    所以前沿嵌入式技术更倾向于嵌入式+智能学科的发展,当智能学科真正崛起,嵌入式必定又是一次浪潮与技术革新。

    作者:陈明,现居深圳。CSDN博客专家,目前从事嵌入式软件开发工程师工作。主要负责:语音识别、声学基础研究、嵌入式软件开发工作等。

    声明:本文系作者投稿,不代表CSDN立场。

     

    展开全文
  • 一只老鸟嵌入式工程师的血泪史!

    万次阅读 多人点赞 2018-02-28 10:54:32
    作为一名在嵌入式行业摸爬滚打许久的老鸟,回想自己的经历之路,那么漫长可又仿佛近在眼前。随着学生的日益增多,偶尔之间,会想起自己曾经的一个经历。——此文仅献给那些刚刚踏上硬件之路和还在徘徊的同学们,在此...
  • 一只老鸟嵌入式工程师的血泪史!

    千次阅读 2018-02-28 10:02:13
    作为一名在嵌入式行业摸爬滚打许久的老鸟,回想自己的经历之路,那么漫长可又仿佛近在眼前。随着学生的日益增多,偶尔之间,会想起自己曾经的一个经历。——此文仅献给那些刚刚踏上硬件之路和还在徘徊的同学们,在此...
  • 而所有人疑问的这技术这么发展,那嵌入式工程师的真实待遇又是怎么样的呢?跟着华清远见的小编一起来看看。那先通过一张图来先了解一下吧:这些就只是都是北京的,当然你们也可以在网上去搜一搜其他城市的,一般一线...
  • 文章主要介绍了嵌入式工程师的具体工作
  • 怎样成为一名优秀的嵌入式工程师

    千次阅读 2017-03-14 16:41:54
    无论是在北京、上海、深圳还是内地,嵌入式企业的人力资源经理们最头痛的就是没有办法为企业找到足够的嵌入式系统工程师,与每年几十万找不到工作的应届大学生相比,成为了一个鲜明的差别。   那么,是
  • 【人生杂谈】嵌入式工程师的小半辈子

    万次阅读 多人点赞 2016-10-02 17:24:30
    7年前,我将博客从CSDN搬移到开源中国(OSCHINA.NET),今天我又将重新开启CSDN的博客...下面就给大家讲述一下我这个嵌入式工程师过的这小半辈子。 讲述了一个嵌入式工程师世界观的变化过程。 第一章.博客迁移与回归 当
  • 嵌入式工程师完美简历

    热门讨论 2010-05-04 21:54:49
    嵌入式工程师完美简历嵌入式工程师完美简历嵌入式工程师完美简历嵌入式工程师完美简历
  • 嵌入式工程师学习路线

    千次阅读 2018-12-31 19:39:12
    ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:  (1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)  (2)必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本...
  • 1 嵌入式学习的一些概念理解误区 很多嵌入式初学者认为,学嵌入式,就是学习ARM,就是学习开发板。买一块开发板,然后在上面“移植”u-boot、Linux内核,再使用busybox制作一个根文件系统,大功告成!觉得可以...
  • 嵌入式工程师的经典面试题目及答案

    万次阅读 多人点赞 2018-07-07 11:27:31
    后来回到学校,在网上搜索,原来这些题都是嵌入式工程师的经典面试题目,很多网站上都可以找得到。现把他贴出来,附上网上的答案,跟大家分享,因为这些题实在太经典了。预处理器(Preprocessor)1 . 用预处理指令#...
  • 这个时代,大家都在谈转型,今天我们也来说说嵌入式工程师的转型! 虽然嵌入式系统已经有30多年的历史,但是原来一直是隐藏在背后的,自从物联网上升为国家战略后,嵌入式系统也从后台走到前台,成为备受瞩目的一...
  • 本套嵌入式系列培训视频,由线下嵌入式培训全套课程精心录制而成。该套课程历经多年已培训千名学员,广受好评。本着分享知识成就梦想的理念,现在线上超低价推广,助有心学习者早日成就梦想。本套课程分为三个阶段:...
  • 想要从事嵌入式开发,但又不知道怎么入门的,可以看下,下面我结合自身实际来谈一谈。 前提基础:简单的电路、模电、数电知识,C语言 一、从51单片机入手 如果有一些前提的基础知识,要上手51单片机不算难。首先,你...
  • 嵌入式工程师笔试题目

    千次阅读 2018-08-16 09:38:18
    嵌入式工程师对于工作来说最重要的就是面试+笔试了,作为一个面试过很多家的老鸟来说,总结了一些嵌入式工程师经典笔试题,而且也是很厂家的,快看看你都掌握了没 1.给两个变量,如何找出一个带环单链表中是什么地方...
  • 嵌入式工程师发展

    2018-10-19 17:37:21
    学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。...(2)会使用Linux平台下的编辑器vi(默认安装,占内存小,方便向嵌入式移植) (3)会使用L...
  • 通过学习软考嵌入式工程师、牛客网、各大名厂的嵌入式工程师试题,将其总结,希望可以帮助到广大求职者、参加软考、计算机等级考试的同志。 上次更新时间:2020年2月4日(更新中) 拓展: 2018年摩拜校招嵌入式...

空空如也

1 2 3 4 5 ... 20
收藏数 44,578
精华内容 17,831
关键字:

嵌入式工程师