软件世界新转变:工程师走俏,程序员出局
【IT168 专稿】软件开发者的角色,在当今社会的今天已经悄然生变,或者成为一名开发者,或者成为一名分析师从而充当了架构师的角色,发生这样变化的原因,在于当今天商业的开发模式的转变而衍生出的的,简单的基于C/S模式的程序开发和简单的基于Windows的应用程序调用数据库的日子将不复存在了。
当今世界的程序开发,软件程序员,开发者,分析师,工程师,架构师都面临着工作角色的宽泛化和期望值的提高。全世界的组织机构也是这么要求这些IT专业人士,这在十年前还是很少见到的。
软件开发者也开始意识到不仅要有专业化的知识,同时,还需要掌握各种其它相关的知识。
知识面的扩宽让也让程序员的角色变得越来越模糊,一个小公司的程序员需要拿出一个端到端的解决方案,而其他的在大公司的软件开发人员,有着相同的职位,只是收到详细的需求说明,敲敲键盘,写出代码获得需要的功能,他们不需要去调查部署,也不需要跟外面的人进行沟通。
Jeffrey Hammond,他是Forrester Research的一位应用开发分析师,他告诉我们 “在过去的三年里,我发现了一件事情,越来越少的人称自己计算机程序员,越来越多的人定义自己是软件工程师,系统工程师”。
当然,这是有原因的。这些程序员越来越多的涉及到事务的过程,在他们快速的拿出一个方案时,需要和事务的领导者沟通接触。
Jason Brooks,为Blackfin工作的软件工程师,他在告诉记者:“现在越来越多的用户参与进来,与更多的程序开发者利用Agile或者类似于Agile的方法论来实现快速的软件开发,这就要求他们与用户接触,测试软件的安全性和功能,直到成功的完成整个开发周期”。
职位与工作内容不匹配
Erik Miller,Intermountain Gas公司的一名程序员,他说: “通常,一个公司拥有不同水平的程序员,分为I, II, III三个等级,最后是程序员/分析师的位置。我的职位是III的等级,但是大多数时间我做的程序员/分析师角色的工作,这意味着我要分析整个事件和拿出一个解决方案,接着编程。大多数低于350人的公司都是这种情况。你最好去一个大的公司,拥有一个编程团队才不会这样。”
在其他的组织,一个程序员或许成为了一名开发者,或者一名分析师充当了架构师的角色。发生变化的原因就是各种商业衍生出来的需求。简单的基于C/S模式的程序开发,简单的基于Windows的应用程序调用数据库的日子已经一去不复返了。
结果,开发者开始要学习一些其他的技术,不仅仅是编程语言,他们要开始为件工程师,而与技术人员不同。
Hammond说:“由于某些原因,软件开始越来越多的嵌入到设备中去,比如像手机、PDA、置顶盒、赌博设备。另外,还存在一个趋势,就是要要求提供应用程序能够和设备结合,互动服务,还需要一些程序将这些信息通过Web应用程序传递”。
同时,SOA的出现,作为一种新的编程模式,滋生了一些特别的需求。SOA是一种架构方法,把各自单独的商业软件连接起来,为了形成新的解决方案。
Hammond解释道:“你看那些接触到底层的人,用的是Java,C, C# 他们是编写Web服务软件的人;你看那些事务分析或者事务开发者,事务程序员,他们是或许不是计算机专业的,他们是服务功能的提出者和组装者。”
他说:“这中状况开始影响着开发者看待自己的方式,并且导致市场上的一些小分歧。你是一名低水平的服务功能的实现者还是高水平的服务构造者?都不重要,他们都是SOA和Web应用软件所需要的类型。”
${PageNumber}
认证能说明问题吗?
在澳大利亚,为了量化你的技能,认证考试的发展比商业还要快速。这里有很多合法的证件,根据相关的应用程序而不同,其中大多数是某一特定技术的应用的认证。
要想达到软件架构的水平是最难的,即使许多开发者也从事应用程序的互联策略,这通常由架构师来设计。但是,即便你拥有同样的知识,与架构师之间的差距还是存在的。
Brooks解释道:“软件架构是或许不需要知道怎么编程,当然大多数都知道怎么编程,但是他们关注更高层次的东西,如会有什么意外发生,项目的流程,是否满足商业需求。一名软件工程师需要能解释和执行商业需求。软件工程是比软件架构师低一个水平。
当今有两种软件开发引导着开发的潮流,分别是:.Net 和 J2EE.
微软公司提供.Net的认证,而Sun公司提供J2EE认证,J2EE认证是用Java编程。”
微软公司首先开始恢复它的认证项目,是为了促使.Net的发展。最低程序员可以成为微软某一专门领域的专家;举个例子,他们可以成为一名微软的技术专家:.Net Framework 2.0 Web专家、Microsoft技术专家、.Net Framework 2.0 Windows专家。
同样的,一名程序员可以成为Sun公司的认证程序员,可以使Java 2平台的,可以是Java SE5.0的。
这些认证针对性很强,但是通常很容易得到,你通过一两门考试,你就获得了认证。另外,获得认证的难易程度还取决于你要考的是微软还是Sun公司的技术认证。随着技术的不但更新,认证变得越来越不满足企业的需求了。
如果一个程序员想获得更高级别的认证,他们需要更多的经验和很高的理解能力。微软的专业系列认证需要进行更多的考试和一些必备的初级认证,同时,你还要定期的换取新的认证。这种高级别的认证也要求你的设计软件的技能和管理工程的才能。
对于Sun公司来说,它下一步就是要进行Java程序员认证和一些专门技术的认证,如Sun公司的Java开发认证、Web组件开发认证、事务组件开发认证、Java Web服务开发认证、移动应用程序认证。
Sun公司的最有声望的认证是它的企业架构认证;微软是它的微软架构认证。虽然这两种认证所设计到的架构功能不一样,但是,它们都是很难获得的。
当然,这里还有很多其他的开发相关的认证。IBM提供WebSphere认证和Rational开发工具认证,还有Lotus Notes 和Domino认证。Adobe公司,也提供Flash、Dreamweaver、 ColdFusion认证。
虽然这些认证都对特定的开发技能的一种衡量,但是,它们的价值通称受到怀疑。${PageNumber}
认证不能成为你的重要筹码
Hammond说:“我从来没有看到开发者由于他目前所有的证件而获得职位的,在整个招聘的过程中,通常会是问你一些问题,如你知道那些工具,你已经学会了什么语言,你从事编程工作有多长时间,你做个哪些软件程序等等。那些你很会使用并且掌握的技术比一个证件更加重要。”
在大多数情况,证件所起的作用就是确保你的简历能够送到人力资源部去,进入到人事经理的办公室。证件提供了一个你理解那些技术的一个基本证明。
Brooks说:“这里有一些证件,比如说微软架构认证和Sun公司的架构认证,这就不同了,你必须要经过很大的努力才能获得,但是通常来说一个C#认证,任何人都能获得,他并不能证明你的水平有多高。到了面试你的技术的时候,没有人会问你获得了什么证件”。
只掌握基本编程技能将会举步维艰
总之,要明确的是:“只会使用一种语言的程序员在任何公司里并不占有多大的优势。从事专门技术的程序员,如果不能习得新的技能的话,就会很难找到工作,或者很难将工作进行下去”。
如果一个程序员的工作就是根据需求说明把代码编写出来,那么很有可能别人就要求用更低的薪水来取代你的工作。
David A. Kelly,Upside Research的董事告诉TechNewsWorld说:“在未来的日子里,真正的开发者将会在印度,中国,俄罗斯或者其他的国家,而开发项目经理,架构师,事务的设计者将在美国,他们定义,管理,配置技术方案来解决商业问题”。
“对于那些拥有高级技术的人,和那些有很深专业知识造诣和事务流程设计能力的开发者和IT员工,还是有一席之地的。而那些超级明星程序员将会成为未来的技术顾问。”
0
相关文章