将来五年程序员应当具有的十项技能

做为一名程序员,若是你想在这个领域内继续向前进步或者在当前的经济形势下保持不被炒鱿鱼,那么你就决不该当自满自足,你须要继续学习。近日,著名IT评论员Justin James在他的博客中列出了将来五年程序员应当具有的十项技能,若是照此实践,你将来的工做前景必定一片光明。程序员

当前的经济形势下,不少程序员将目光聚焦在短时间内的工做形式上,可是你仍然要抽出时间和精力学习新的技能。如下是做为程序员应立即刻学习的十项技能,以确保在将来五年内你的简历上有真材实料。固然这个名单很难作到详尽而没有遗漏,有些领域没有涉及到(好比大型机开发者)。然而,对于通常的主流开发而言,你至少要学会如下十条中的七条,并且掌握的程度不是那种你在工做面试上可以夸夸其谈,而是真正可以用于实际开发。面试

1,三大主流开发体系之一(.NET, Java, PHP)数据库

除非软件开发领域发生巨大的变革(这机率比如行星撞击地球),否则程序员至少须要知道三大开发系统中(.NET (VB.NET or C#), Java, PHP)的一种。并且仅仅了解核心语言是不够的,由于如今的项目拥有愈来愈多的不一样功能,这也迫使程序员对相关的框架和库了解得更深。框架

2,富客户端应用(Rich Internet Applications)函数

不管你对Flash是爱仍是恨,咱们都不得不认可在过去的几年里Flash的发展壮大已远不只是应用于动画制做。Flash以及Flex和AIR都具有愈来愈多的功能。而Flash的竞争者,如JavaFX和Silverlight等也在不断提高自身的性能和表现。让富互联网应用更加活跃的是,HTML 5正整合进全部种类的RIA功能,包括数据库链接、将W3C置于AJAX上等。在不远的未来,做为一名RIA领域的专家无疑将给你的简历添上浓重的一笔。工具

3,Web页面开发性能

Web开发恐怕在将来的很长时间内都是主流技术之一。许多程序员每每知足于构建后台、或者只是专一于框架基础而忽略了Web。可是愈来愈多的企业须要如何在交互代码(hand code)级别处理Web技术的人员,因此掌握JavaScript、CSS和HTML必将在将来五年内的职场上无往不胜。学习

4,Web服务端开发测试

REST 仍是SOAP? JSON 仍是XML?固然选择答案得依据项目来定,但若是一名程序员不会建立Web服务(尽管这个程序员也许不用写Web应用),那么他在工做岗位上必定倍感艰难。由于即使是过去那些被ODBC, COM或者 RPC主宰的领域如今也转到了一些形式的Web服务上了。动画

5,软性技能

一段时间以来就有这样一种趋势即:不管在企业内部仍是企业外部提升IT的能见度。程序员被愈来愈多地带去参加非开发性会议来提供技术支持。例如,没有IT升级系统,首席财务官不可能改变收支细则;没有IT升级CRM工做流,运营总监不可能改变一个中心呼叫进程。一样,客户常常直接与开发团队沟通以确保他们的需求被完成。是否每一个程序员都应该回去学习礼仪课来与别人更好的交往呢?那倒没必要,可是程序员的确要提升待人接物的软性能力,以在职场上得到更大的价值。

6,一种动态或者函数式程序设计语言(Functional Programming Language)

类如Ruby, Python, F#和Groovy等的语言虽然不彻底主流,可是语言内部包含的思想倒是开发界的主流。好比,微软.NET中的LINQ系统就是函数式程序设计语言的一个直接派生。得益于Rails框架和Silverlight的发展,Ruby和Python语言在一些领域变得很热门。学习这样一门语言不只丰富了你的简历,并且会开阔你的开发视野。我所遇到的顶级开发者几乎都曾在演讲中提到学习一门动态语言或者函数式程序设计语言的重要性,就个人我的经历而言,这确实颇有用。

7,敏捷开发

当敏捷开发第一次冲击主流的开发意识时,我跟许多开发者同样持怀疑的观点。由于它抛弃了控制、标准等,看起来是一种彻底与传统方法相悖的开发方法。但随着时间的发展,敏捷背后的思想被定义的愈来愈好,应用得也愈来愈棒。许多开发或者采用敏捷,或者在敏捷开发的实验阶段。尽管敏捷不是失败项目的万灵药,但它确实在软件开发中有一席之地。那些对敏捷有很好的理解而且有应用经历的开发者必将在将来五年内成为抢手货。

8,业务领域知识

开发团队愈来愈被看作是项目的合做者,这意味着了解该领域的开发者将对该项目的贡献更大。有了敏捷,开发者能够说咱们能够在这儿很简单地增长这个功能,而这将让咱们的产品更具价值。或者这个要求不符合咱们日志显示的经常使用类型。因为愈来愈多的程序员反对必须了解该领域内的全部问题(实际上也不可能作到),因此不能否认的是愈来愈多的企业但愿开发者起码了解该领域内的基础知识,越多越好。

9,质量控制

几年前的时候,不少企业和产品没有bug跟踪系统、没有版本控制和其余相似的工具,所写出的代码和产品都只是跟程序员和他所用的IDE有关。幸而开发领域有了新的、集成的工具如Microsoft Visual Studio Team System,并且产品、代码高质量及可用性的透明度提升,开源环境等,如今没有这种工具的企业已经愈来愈少稀少。开发者除了知道如何源代码控制、如何使用VM系统构建测试环境以外,还要作更多的质量控制工做,并具有很好的清洁意识来确保他与他的团队协调一致。那些将代码处存在我的硬盘中,没有记录代码变动、任务目录等的开发者,不但在传统的开发环境中不受欢迎,在敏捷的开发环境中也不受欢迎。

10,移动开发

在上世纪90年代末,Web开发一跃成为主流而且将原来传统的桌面应用开发边缘化。在2008,移动开发大肆进入人们的视野,并且至少在五年内移动开发都将是开发领域的重中之重。固然移动开发的方式有不少种,但不管你选择哪种都将令你成为将来的抢手货。(译/王玉磊)