嵌入式工程师如何规划职业之技术之路
虽有担心,但是看到很多刚入门的嵌入式工程师无法把握今后的技术之路时,我决定冒着被人骂的危险来写出这篇文章,呵呵。
不过写由于MAS只对嵌入式软件有些体会,所以也只能写关于嵌入式软件工程师的,硬件的朋友们,对不住了。
闲话就不多说了,转入正文。
进入嵌入式这行的人形形色色,有之前学计算机的,有学电子类相关的,有压根一点都不沾边的,还有一些硬件工程师转过来的,基础也千差万别。
技术之路的终点也千差万别,有的最后走上了管理,有的最后转行做了PM,有的最后成了技术流的销售,还有极少数的人成了真正的技术专家。
这篇文章说的技术之路的终点只有一个,就是真正的技术专家,而专家之后怎么走,就看你自己了。
嵌入式技术大体上可以分为以下几个部分,编程语言,内核技术,操作系统,总线接口,系统集成。
其实细心的可以发现,在CESDN的论坛分区上就已经体现了,除了系统集成只是在嵌入式系统大区里面体现了下,其他的都有明确的板块对应关系。
但是我们的学习之路并非是要如此学习,而是分为几个层次,根据我多年对业内的观察,将嵌入式工程师的技术范围分成下面几个等级: 1。
初级:8051或其他单片机,UCOS,I2C,SPI,UART。
汇编和C能力一般,系统集成能力弱。
2。
中级:在初级的基础上,ARM/MIPS,其他一些RTOS并了解Linux,SDIO,USB。
汇编和C能力不错,有一定系统集成能力。
3。
高级:主要是对中级的进阶,这一个层面已经不在于掌握具体的技术,而是掌握当前流行技术中的基本思想和构成方式,所以任何流行的技术,对于这一阶段来说,都是手到擒来的。
而由于掌握了所有技术的原理,系统集成能力也是超强。
对于初级和中级,都有一些明确的标杆,因为在这两个阶段,工程师还是在入行阶段,所评判的标准往往是你会做什么技术,掌握了什么技术,而学技术的最搞境界并非掌握了具体的技术,而是掌握了这个技术的构成思想以及模式。
拿个很简单的例子来说,所有的接口技术,其实都可以归纳为几个要点,单工还是双工?如何发起传输,如何应答,如何报错,如何纠错,如何在其基本传输之上建立高级的应用。
只要掌握了这些,接口技术还有什么难的?无非就是一些具体的方式。
当然,新入行的工程师不必要一开始就了解这些,可以慢慢的从初级到中级,然后最好自己能够悟到高级。
说到这里可以结束了,我想也不用说的太具体,但是因为最近业内普遍流行在某个平台上编程而忽视深入的技术研究,所以我想再罗嗦下,纠正下这样的观点。
Android也好,MTK的Tune Key也好,你只是在别人的指挥下舞蹈,而你的技术,并没有因为你做这个的时间长短有任何提升,你的提升只是更好的掌握了这个平台,5年后呢?这个平台退出市场了,你掌握的这些还有什么用处么?学技术,要扎实,要从低至上。
很多人一入门,首先想的就是,我搞Linux和ARM应用处理器。
我想问问,你懂 Linux里面进程怎么调度的么?这不是回字有几种写法的问题,而是皮毛和骨骼的关系。
按照技术的发展,你完全应该先从UCOS之类的RTOS学起,然后慢慢学到Linux,你会发现,Linux的最基本的东西,如系统调度,信号量,事件等,是和UCOS的原理类似的。
而如果你一开始学习Linux,你学到的只是如何在Linux平台上完成你的事情。
最后说点实际的,现在Linux和Andriod是很吃香,也有很多人建议一开始就学习这些热门技术,这样能挣钱。
没错,开始的时候,你可以速成,但是如果你这么来规划你的技术之路,你的薪水也永远只是在工程师的主流薪水上波动,想要成为技术大牛,年薪百万,永远不可能。
技术需要从基础做起,一步一个脚印,成为顶尖,没个三五年,难。
不过能够坚持下来的,必成大器。
软件工程师发展路线是什么?
软件工程的发展路线我认为:1、在软件设计领域有独特的研究,喜欢写程序,并能朝着这个方向努力。
例如JAVA,ASP.NET,其他的单片机设计好像归到电子信息工程类更好一些,当然对底层的C,C++感兴趣也可以。
2、软件工程有很多方向,可以对自己喜欢的方向做研究,关键是基础打好,对数据库,软件设计等专业课要深入的学习。
3、第一步,最好成为一个基础程序员。
4、通过基础程序员的训练,逐步成长为项目经理。
5、从项目经理成为大区经理,或某个方面的项目总工(总监)。
6、或从项目经理转变成为一个商务销售,因为从技术转型的销售,对产品的理解远比销售经理好的多。
如果可能就从销售到大区销售总监。
个人理解,若有不妥,欢迎回帖!...
软件测试的发展方向,应该学习哪些知识?
软件测试工程师未来的发展 从事软件测试有没有前途,未来的职业发展方向怎样呢? 陈宏刚博士表示,软件测试工程师在微软的发展有几种途径:一种走技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。
第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。
第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。
陈宏刚博士现在还带着一个测试小组,两个清华软件学院的学生,一个南开的专门做软件测试的博士生,一个北邮的学生,他们负责总部一个产品的测试。
陈博士表示,在自己简单的讲讲思路,共同探讨之后,他们一星期就找出了70多个Bug,也感觉学了很多知识,并表示以后专注于软件测试专业,因为他们感觉软件测试真的是一门很深的学科,有很多可以研究的课题。
其实微软的测试人员很多也都是硕士、博士,他们同样在做创造性的工作,保证着程序质量,推动着软件的进步。
软件测试是正在快速发展,充满挑战的领域。
尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的到临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。
网络测试是一个新环境,而且是很大的挑战。
软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望。
软件测试需要熟练掌握测试的相关理论,熟悉测试的流程和测试的技巧,可以给你推荐一本书《测试的艺术》,网上可以下载到电子版的。
熟读这本书基本上就可以应付笔试了,呵呵。
另外,想要在测试方面取得更好的成绩,呵呵,也就是想拿到更多的薪酬,进入更高的层次,要学习性能测试和自动化测试,国内目前已LoadRunner和QTP为主,可以多关注一下。
有基本的编程技能学习起来会比较容易,这也是一般的公司喜欢招收计算机相关专业毕业生的原因,据我的经验,只要掌握了基本的C语言就差不多够用了,后期用到的东西可以找开发人员请教,顺便学习。
呵呵另外,要多搜集网络资源,几个有名气的测试网站上都有很多入门级的建议,可以好好的参阅一下。
(1)熟悉计算机基础知识; (2)熟悉操作系统、数据库、中间件、程序设计语言基础知识; (3)熟悉计算机网络基础知识; (4)熟悉软件工程知识,理解软件开发方法及过程; (5)熟悉软件质量及软件质量管理基础知识; (6)熟悉软件测试标准; (7)掌握软件测试技术及方法; (8)掌握软件测试项目管理知识; (9)掌握C语言以及C++或Java语言程序设计技术; (10)了解信息化及信息安全基础知识; (11)熟悉知识产权相关法律、法规; (12)正确阅读并理解相关领域的英文资料。
通过本考试的合格人员能在掌握软件工程与软件测试知识的基础上,运用软件测试管理方法、软件测试策略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。
高级软件测试工程师和初级软件测试工程师有什么区别
初级测试工程师:刚入门的拥有计算机科学学位的个人或具有一些手工测试经验的个人。
开发测试脚本并开始熟悉测试生存周期和测试技术。
工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
高级测试工程师/程序分析员:具有3-4年经验的测试工程师或程序员。
帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其它初级的测试工程师或程序员充当顾问。
继续拓展编程语言、操作系统、网络与数据库方面的技能。
熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估。
软件测试工程师(SoftwareTesting Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),测试软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。
简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。
按其级别和职位的不同,分为三类。
★高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估[1] ;★中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;★初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
软件测试工程师 - 进阶之路以下软件测试职业发展的各个阶段,看看大家现在都到什么阶段了,为自己好好规划下自己的职业道路。
这是国外公司的职位分布,中国国内一些走在前列的公司,也差不多在国内可能晋升要快的多。
1、初级测试工程师刚入门的拥有计算机科学学位的个人或具有一些手工测试经验的个人。
开发测试脚本并开始熟悉测试生存周期和测试技术。
2、测试工程师/程序分析员 具有1-2年经验的测试工程师或程序员。
编写自动测试脚本程序并担任测试编程初期的领导工作。
进一步拓展编程语言、操作系统、网络与数据库方面的技能。
3、高级测试工程师/程序分析员 具有3-4年经验的测试工程师或程序员。
帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其它初级的测试工程师或程序员充当顾问。
继续拓展编程语言、操作系统、网络与数据库方面的技能。
4、测试组负责人具有4-6年经验的测试工程师或程序员。
负责管理1至3名测试工程师或程序员。
担负一些进度安排和工作规模/成本估算职责。
更集中于技能方面。
5、测试/编程负责人具有6-10年经验的测试工程师或程序员。
负责管理8至10名技术人员。
负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。
负责开发项目的技术方法。
为一些用户提供支持与演示。
开发一些特定领域的技术专长。
6、测试/质量保证/开发(项目)、经理 具有10多年的工作经验。
管理8名或更多的人员参加的1个或多个项目。
负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。
为一些用户提供交互和大量演示。
负责项目成本、进度安排、计划和人员分工。
7、计划经理具有15年以上开发与支持(测试/质量保证)活动方面的经验。
管理从事若干项目的人员以及整个开发生存周期。
负责把握项目方向与盈亏责任。
8 、测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等。
高级软件测试工程师和初级软件测试工程师有什么区别
初级测试工程师: 刚入门的拥有计算机科学学位的个人或具有一些手工测试经验的个人。
开发测试脚本并开始熟悉测试生存周期和测试技术。
工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
高级测试工程师/程序分析员: 具有3-4年经验的测试工程师或程序员。
帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其它初级的测试工程师或程序员充当顾问。
继续拓展编程语言、操作系统、网络与数据库方面的技能。
熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估。
软件测试工程师(SoftwareTesting Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),测试软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。
简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。
按其级别和职位的不同,分为三类。
★高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估[1] ; ★中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务; ★初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
软件测试工程师 - 进阶之路 以下软件测试职业发展的各个阶段,看看大家现在都到什么阶段了,为自己好好规划下自己的职业道路。
这是国外公司的职位分布,中国国内一些走在前列的公司,也差不多在国内可能晋升要快的多。
1、初级测试工程师刚入门的拥有计算机科学学位的个人或具有一些手工测试经验的个人。
开发测试脚本并开始熟悉测试生存周期和测试技术。
2、测试工程师/程序分析员 具有1-2年经验的测试工程师或程序员。
编写自动测试脚本程序并担任测试编程初期的领导工作。
进一步拓展编程语言、操作系统、网络与数据库方面的技能。
3、高级测试工程师/程序分析员 具有3-4年经验的测试工程师或程序员。
帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其它初级的测试工程师或程序员充当顾问。
继续拓展编程语言、操作系统、网络与数据库方面的技能。
4、测试组负责人具有4-6年经验的测试工程师或程序员。
负责管理1至3名测试工程师或程序员。
担负一些进度安排和工作规模/成本估算职责。
更集中于技能方面。
5、测试/编程负责人具有6-10年经验的测试工程师或程序员。
负责管理8至10名技术人员。
负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。
负责开发项目的技术方法。
为一些用户提供支持与演示。
开发一些特定领域的技术专长。
6、测试/质量保证/开发(项目)、经理 具有10多年的工作经验。
管理8名或更多的人员参加的1个或多个项目。
负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。
为一些用户提供交互和大量演示。
负责项目成本、进度安排、计划和人员分工。
7、计划经理具有15年以上开发与支持(测试/质量保证)活动方面的经验。
管理从事若干项目的人员以及整个开发生存周期。
负责把握项目方向与盈亏责任。
8 、测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等。
如何提高软件功能测试的能力呢?
软件手工/黑盒/系统/功能测试,一年时间就已经学完啦,足够满足生产应用啦。
测试员的话,黑盒测试的用例编写方法会用吗?软件测试流程背下来了吗?缺陷管理工具用明白了没?缺陷生命周期都记住了吗?上面是基础,5年以上的话,需求分析能力如何啊?数据表结构能看懂否?行业选了没?基金,银行,医疗,保险,ERP,相关知识掌握多少?被测系统的逻辑结构,物理结构,能否看懂?被测系统是否能分析出其特性?是否了解项目管理?测试团队与开发团队如何配合?会管理测试团队吗?知道自己的团队做的快不快,好不好,有多快,有多好,比谁快,比谁好么?除了黑盒,白盒了解么?除了手工,自动化了解么?除了Client端/web测试,接口测试了解么?除了系统测试,单元测试,集成测试了解么?除了功能测试,性能/安全/稳定/可用/兼容/本地/国际测试了解么?呵呵,如果不了解,就用关键字去查查吧。
网络工程师这一职业的发展前景怎么样?
网络工程师的就业前景1、起点高,发展空间大:网络工程师的起点很高,处于薪资高、地位高的地位。
根据中国IT行业协会公布的调查数据显示,目前一年工作经验的月薪一般能够达到6000-8000元,一些高级网络工程师年薪普遍高达10万。
网络工程师的发展空间非常的大,可以做数据库工程师、网络安全 工程师、网络管理员等;随着经验的积累可以做高级网络工程师、项目主管、项目经理还可以自己创业!2、职业寿命长,越老越吃香:网络工程师职业寿命较长,而且网络工程师的待遇会随着您的经验不断的增加,随着经验的积累可以选择多方面的职位。
3、性别无偏好,就业歧视小:一般人认为IT行业是男性的天地,这是对女性能力的亵渎。
不管是在学校还是在社会上,很多女性表现出来的能力都超过男性,如在学校,很多学生会主席很多奖学金获得者都是女学生,而在社会上,在各行各业也涌现出很多女强人。
对于网络工程工作而言,也是如此,而且女性更为细致,在排错、纠错方面有优于男性的性质。
4、需求量大,工作稳定:网络工程师属于技术比较强的职业,公司看中的是技术和经验,不会随便的辞退。
加上网络工程师这个职位缺口比较大,人才非常的却反,一项来自中华英才网的统计数据显示:网络工程师每年的缺口超过60万人,而且这个数据随着中国网络的普及而快速递增!一、工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。
网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。
企业(或政府)信息化过程需要以下四种人:1、企业信息化主管:负责信息化建设中的目标与方案决策,信息化建设中的方向研究2、工程技术人员:负责信息化系统的设计、建设,包括设备、系统、数据库、应用系统的建设3、运行维护人员:负责信息化系统的运行、维护、管理以及基本的开发4、操作应用人员:主要应用信息化系统进行本职工作二、一般来说,IT企业的IT技术职位根据职能可以分为:1、管理岗位:企业信息化主管CIO、总监、IT经理、项目经理等;2、工程技术岗位:规划设计师、网络工程师、系统工程师、软件工程师和数据工程师等;3、运行维护岗:数据库管理员、系统管理员、网络管理员、服务器管理员等;4、操作岗:办公室文员、CAD设计员、网页制作员、多媒体制作员等;5、根据企业规模大小,规模较小的企业一个岗位可能涵盖几个岗位的内容,系统管理员既要负责系统管理,又要承担网络管理;大企业则会分的比较专业,有网络设计师、系统集成工程师、网络安装工程师、综合布线工程师和系统测试工程师等。
软件工程师的发展道路我是一名湖南中型企业的高软,在麓谷的一家公...
对于初中学历来说,学的会是学的会,但是比较辛苦。
首先,你还需要掌握一些数学知识,离散数学(涉及到数据结构和算法以及编程逻辑)、关系代数(涉及到数据库编程)。
其次,你需要一定的计算机专业英语的阅读能力。
软件开发的一部分工作就是阅读英文专业资料,因为软件开发需要用到很多的组件库、函数库以及工具库,这些软件库的使用说明基本都是英文写的,而且绝大多数没有中文翻译。
一个程序员有的时候一天下来写不了20行代码,8个小时里有7个小时在读这些说明文档。
最后,你还需要学习与软件开发直接相关的技能,涉及到编程语言、通用应用层数据交换技术(XML/Xpath/XSLT、JSON、YAML等)、网络技术、数据库技术、软件工程系统知识等等。
以上内容只是一个程序员需要掌握的基础知识,具体开发的时候还涉及到软件开发框架、设计模式等知识。
最终能否学会就看你自己的学习能力和毅力了,不要被广告忽悠。
我在少林路想学人工智能软件开发工程师去那里学呢@
当然是四川新华电脑学院啊 2006年,四川新华电脑学校受到广大读者的积极支持再次荣登华西都市报,成为“诚信培训机----IT类”的五大培训机构之一!同年,在Adobe FY06渠道年会暨教育峰会上四川新华电脑学校荣获“2005年度Adobe快速成长奖”。
学校交通方便,有近20辆公交车直达;校区生活设施齐全,拥有篮球场、足球场、乒乓球台、食堂、学生公寓等。
学校还在北京、上海、昆山、广州、深圳、南京等地设立就业办事机构,专人负责推荐就业,并与万余家用人单位建立长期稳定的合作关系,拥有完善的就业保障体系。
“十年树木,百年树人”,四川新华电脑学校顺应市场要求,依据社会强大的脉搏,严谨办学,教育树人,在国家方针政策的指导下,积极推动国家现窢胆促感讵啡存拾担浆代化建设,为社会培养出优秀的电脑人才,合格毕业生就业率保持良好
转载请注明出处51数据库 » 软件工程师的进阶之路
嗨老别