一、嵌入式软件工程师是什么?
嵌入式的开发领域非常宽阔,上到飞机大炮,下到智能马桶都存在着嵌入式的技术名词,那么将嵌入式工程师软件开发进行细分的话,实际上大多数公司都是做应用层业务需求;比如做人脸识别打卡机的,做GPS导航的,做云终端设备的公司等。
这类的公司,除非已经是非常大规模的,正常是几十号研发在运作。人脸打卡,人脸识别模块是核心,但是硬件和软件是买的,公司可能制作c++,QT实现上班打卡业务的工作使用场景,数据传输,导出导入等相关编程。
GPS导航的,GPS模块,核心驱动,Linux,WinCE的,都不需要此公司的开发者去做开发。
云终端的,核心接入协议可能是买思杰的方案,也有可能买Vmware的方案,再不行的就搞个山寨的spice协议,rdp协议这些免费开源的。
以上几个产品,核心模块,买之,接口使用之,大多国外技术。硬件方案,要么开发板生搬硬套要么外包给硬件厂商。
那这些公司的开发做什么呢?
如果产品UI是的是[QT], 那就写大量的[C++ ]代码,各种好的软件框架,各种多线程,多进程配合。
如果UI是GTK,那就写大量的C代码,各种结构体来模拟面向对象的开发思想,当然也可以学习内核开发者写的牛x框架,比如学习输入子系统,设备驱动模型啊,binder驱动模型啊,将内核的编程思想灵活运用到应用层编程,写出稳定,拓展性极强的框架就是很牛的人物啦。
真正涉及到Linux底层开发的偏少,如果一个人真正深入掌握[linux内核]的进程管理,时间管理,内存管理,文件管理,各种驱动框架等,能在各种硬件平台做一个实时操作系统的,还懂裸机,写点启动代码来引导自己的操作系统,那就是大牛中的大牛。
回归到刚进入嵌入式世界探索的孩子们,其实你们目前的水平去分析uboot,分析linux内核源码,是一件很egg疼的事情。
调用接口来实现多线程,来处理进程通信,来写socket编程都是难事,甚至还在纠结指针传参,纠结指针数组和数组指针,怎么能去看uboot,linux内核源码呢?
或许连C和指针,C程序设计都没懂多少。而在那里高谈大论。不管怎么样,只要我们基础扎实了。才能进一步探究[Linux内核]框架。
二、嵌入式软件工程师前景好吗?
其实越是刚毕业,越应该找大公司锻炼,等有经验了再到小公司,优先不是考虑工资。工作不同于学习,是做事,而往往多数小公司的做事流程规范性欠佳
三、在未来嵌入式软件工程师和软件工程师哪个前景好?
嵌入式软件工程师也是软件工程师的一种,不做嵌入式的工程师很多也会了解一些嵌入式开发,这些技术基本都是相通的,可以看看嵌入式工程师的市场怎样,比如从招聘上来看。嵌入式只是软件开发的一个方向,不过有兴趣深耕这一方面也是可以的,但一般不严格区分这两者。http://nndev.cn
四、嵌入式软件工程师前景怎么样?
嵌入式软件工程师的发展前景还是可以的。
当然,学习门槛相对来说也不低。需要专注的去学习。
下边总结了2023年嵌入式相关的行业和公司,可以参考看看
汇总嵌入式软件行业和相关的公司五、嵌入式软件工程师有哪些必备技能?
详见我刚写好的教程中的:
- 嵌入式软件开发 - 嵌入式软件期间会涉及哪些内容
和
- 嵌入式软件开发 - 嵌入式软件开发需要学习哪些知识
六、招聘嵌入式软件工程师的痛点在哪?
痛点可以从公司招聘者和应聘者两个角度来看:
应聘者:
1、都有的面试要求:嵌入式软件工程师,面试要求会 C/C++,面试的算法题与普通的软件工程师没有区别,其他各方面的要求也是一样。
2、嵌入式软件工程师特有的面试要求:SPI/I2C 等通信的时序需要了解;需要能看懂电路图;需要能识别出硬件设计的风险问题,并提出对应的测试方案;当硬件调试出现问题,需要能使用示波器等仪器分析是硬件出现问题还是软件问题。
3、薪资:看前面的要求,比普通的软件工程师要求要多2的要求,然后薪资比普通的软件工程师还有低。
公司招聘者:
公司给的招聘人员需要也是一位资深的嵌入式软件工程师,也得掌握前面提到的技能,但这样的工程师在公司中学习的知识需要比其他人多,相对的获得晋升的机会会更少,而去面试的人通常会是一个普通的软件工程师,不是资深的嵌入式软件工程师。一个普通的软件工程师面试不出对应聘者要求的第2点内容。
========================分割线=============================
综上,个人认为痛点是:
1、公司负责招聘的人通常不懂嵌入式,不能选出合适的候选人;
2、公司对嵌入工程师的要求是按普通工程师的要求来算的,但是最重要的是应聘者要求的第2点,但实际面试要求忽略不算,同时没有降低第一点的要求(会第一点就可以去面试其他薪资更高的工作)
3、公司对于嵌入式的重视程度相对于普通的软件工程师低。同样的时间,嵌入式需要学习的知识更多,更重要的是这是一个重资产的行业,公司不会倾斜更多的资源购买设备。普通软件一台办公电脑。嵌入式,要电路板,对应的开发工具,示波器要吧,几十到上百万的资产,还得工厂试产,供应商选型,仓库存储。
七、如何评价嵌入式软件工程师普遍年纪较大?
在年纪方面,不要过于执着,也不要过于焦虑,很多人都说嵌入式软件工程师是不是青春饭?
答案不是偏执的,什么职业都是年轻则机会多,年纪较大则经验丰富。
30岁是分水岭?言外之意也就是说在过了30岁之后就不能再搞开发工作了,只能转行做其他,人们普遍认为做软件开发都是跟代码打交道,非常用脑子,只有年轻人才有更多的精力去投入软件开发工作,当然这些理论也都是所谓的外行人给出的定义,当然这些理论也就成为新程序员的前进的大障碍,终导致搞不清楚自己的发展路径。
其实不必为30岁以后而烦恼,30岁以后照样可以编程程序,不管你在30岁以后是否已经进阶为"开发经理"还是一如既往的"程序员",一样都可以做编程序的工作。
我们不难发现嵌入式工程师将是未来发展前景非常广的职业,尤其是有经验的工程师,在30岁以后即可不必做初始程序员了,你所做的将是核心编码工作,尤其是难度较大的编码工作;你只需要解决10%核心的问题,其它的大可以交给团队里精力充沛的年轻人去做。
无论是什么职业,也无论你处于什么领域,我们首先要明确一点,就是都会有一条持续性提高的路线,IT行业同样跟其他行业一样,都会经历 新手--> 熟手 --> 管理者三个阶段。前两个阶段,是大部份人都会经历的,熟能成巧,做的时间长了,自然就成了熟手、高手了。但是第三阶段,就不是看个人有多厉害,而是看你能否凭借自己的经验和技能,去指导更多的人一起去完成任务。
所以作为嵌入式软件工程师的你,大可不必为所谓的行外人的话语所担心,在30之后,你更应该锻炼自己的团队能力,担当管理者的角色,如果你离分水岭还比较远,那也千万别被这样的职业定位所误导,对待这样一个这样的朝阳职业应该有一个明确的定位和规划。
八、嵌入式软件工程师职业是青春饭吗?
如何来看待"30岁风水岭"?不难发现我们听得多的误解莫过于是"软件工程师职业是青春饭"这句话,当然这样的说法在日常生活中也非常受欢迎、很流行。言外之意也就是说在过了30岁之后就不能再搞开发工作了,只能转行做其他,人们普遍认为做软件开发都是跟代码打交道,非常用脑子,只有年轻人才有更多的精力去投入软件开发工作,当然这些理论也都是所谓的外行人给出的定义,当然这些理论也就成为新程序员的前进的大障碍,终导致搞不清楚自己的发展路径。
其实不必为30岁以后而烦恼,30岁以后照样可以编程程序,不管你在30岁以后是否已经进阶为"开发经理"还是一如既往的"程序员",一样都可以做编程序的工作。我们不难发现嵌入式工程师将是未来发展前景非常广的职业,尤其是有经验的工程师,在30岁以后即可不必做初始程序员了,你所做的将是核心编码工作,尤其是难度较大的编码工作;你只需要解决10%核心的问题,其它的大可以交给团队里精力充沛的年轻人去做。
无论是什么职业,也无论你处于什么领域,我们首先要明确一点,就是都会有一条持续性提高的路线,IT行业同样跟其他行业一样,都会经历 新手--> 熟手 --> 管理者三个阶段。前两个阶段,是大部份人都会经历的,熟能成巧,做的时间长了,自然就成了熟手、高手了。但是第三阶段,就不是看个人有多厉害,而是看你能否凭借自己的经验和技能,去指导更多的人一起去完成任务。
所以作为嵌入式软件工程师的你,大可不必为所谓的行外人的话语所担心,在30之后,你更应该锻炼自己的团队能力,担当管理者的角色,如果你离分水岭还比较远,那也千万别被这样的职业定位所误导,对待这样一个这样的朝阳职业应该有一个明确的定位和规划。
九、女嵌入式软件工程师的出路在哪里?
嵌软学生党说说自己的看法…
1.我觉得题主既然已经有比较久的工作经验,沟通能力也不错,可以尝试转管理啊~
2. 如果感觉做开发太累(毕竟女生做这一行不容易啊),可否尝试转做测试?求别拍,只是听师兄说他们那儿的测试组很多女工程师,压力不大,很多人每天都能早早下班回家带孩子… (师兄所在的是互联网公司,但就我理解而言,嵌软测试要做的工作是大同小异的)。
3. 如果题主是觉得一直做这些底层的东西前景不好,可以试试往上层转移?脑洞一点的想法就是出国读个CS硕士(题主说英语基础不错嘛),学下机器学习,计算机视觉什么的… 当然前提是要有兴趣和这个精力,以及家庭规划要安排得下(要考虑结婚成家什么的…)
另外,真心钦佩女工程师,题主能在嵌软这一行从业这么久肯定是真爱吧~ 加油啊!
十、嵌入式软件工程师这个岗位有什么能力要求?
一、基本介绍
嵌入式开发就是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的EDA研发以外,侧重的就是在一定硬件条件下的系统化设计和软件研发。
二、职业要求
应具备哪些能力
1.最重要的是C语言编程,以及C++、QT应用层所用到的知识,这个与你读程,应用,开发项目,做系统移植息息相关;
2.操作系统:Linux,WINCE等,至少学习过一种,并且还需要对些基础知识有蛮多的了解;
3.对ARM,FPGA,DSP等这些硬件比较了解。
当然,一些基本的综合素质,像英语能力,团队协作能管理,也很重要。
码字不易,希望得到你的点赞收藏+关注。
学习、交流、进步