开发人员未来五年的必须技能(翻译)

极其偶然的拜读了来自 http://blogs.techrepublic.com.com/ 的一篇博文 “10 skills developers will need in the next five years” 受益颇多,现推荐分享给同样从事网站开发的朋友们。

摘要:或许作为开发人员的你在这个领域里已经是出人头地,但为了能有更光明的前途,现在可不是为了仅仅是保住工作而骄傲自满的时候,看看下面列出的一些马上需要你去学习的技能吧,这些技能能让你在未来五年内不会落伍。需要注意的是这个列表并不完整,在业界的多数其他领域并没有涉及,尽管如此,对于通常的主流开发人员来说,能够学习其中的多数技能肯定没有错。

一、开发环境

除非开发届有着根本的革命,否则在不久的将来,绝大部分开发人员将需要至少了解乃至掌握三大主流开发系统(.Net Java PHP)其中之一,并且只了解其核心语言也是远远不够的,因为项目会加入更多不同的功能,你需要对相关开发框架或库有深入的了解。如利用 Drupal 开发等。

二、网络应用

富网络应用程序(RIA)不管你是爱她还是恨她,最近几年 Flash 的用途突然间不仅仅是制作弱智歌曲演唱动画了。也萌生出了以 Flex 及 AIR 为形式的附加因特网应用。而 Flash 的竞争对手 JavaFx Silverlight 等也在不停的在特性和性能上加筹码。在未来的 HTML5 集成了所有 RIA 的功能,包括数据库连接和正式的 W3C 印章加到 AJAX 等。在不久的将来,是否 RIA 专家将会是简历的一个重要筛选条件。如联想 Data 使用的上传工具即使使用了 Flex 技术等。

三、前端开发

网站网页的前段开发在近期内肯定不会消失,这里有很多开发人员满足于忽略前段开发或者只是使用他们的框架(如 jQuery 等)给他们提供的基本界面。但是公司需要越来越多的真正知道怎样使用底层技术进行“手写编码”的人。所以要获得成功请在未来五年内努力钻研 JavaScript CSS XHTML 等等前端技术。如使用纯 CSS 实现多级下拉菜单等。

四、网络服务

REST SOAP JSON XML 等等,尽管选择和答案取决于项目本身需求,不过使用或者创建网络服务对一个开发人员来说越来越困难。那些原来采用ODBC COM RPC domains 的领域,现在也在某种程度上也过渡到了网络服务。不会用网络服务的开发人员将会发现他们被排挤或者沦为维护人员。如熟悉代码托管技术及企业 ERP 使用等。

五、沟通技能

目前有一种其实已经开始相当长时间的趋势,技术人员在企业内部或者外部变得越来越透明。开发人员被卷入越来越多的非开发性会议和过程以给与反馈。开发人员的工作将涉及整个公司运转,但是每一个开发人员都需要去学习《怎样结交朋友并影响别人》么?虽然不是那样,但是拥有这种能力的开发人员对他们的雇主来说更有价值也更抢手。如具有良好沟通能力的开发人员。

六、其他语言

如像 Ruby Python F# Groovy 等等这样的语言并不主流,但他们包含的想法却是。比如微软 .NET 中的 LINO 系统是函数编程技术的直接产物。 Ruby 和 Python 在某些部门很热门,这需要分别感谢 Rails 和 Silverlight 框架。学习其中的一门语言不只会提升你的简历;它将开阔你的视野。我见过的每一个顶级开发人员都推荐学习至少一种动态或者函数编程语言用来理解新的思考方式,就个人经验来讲,我可以告诉你确实有用。其实各种程序语言中的算法思想说到底都是想通的。

七、速成开发

在速成开发方法刚开始进入主流视线的时候,我和其他认识的很多家伙一样持怀疑态度,它看起来就像某种对传统的下意识反应,丢掉控制和标准而偏爱混乱。但是随着时间的推移,速成开发背后的智慧被更好的定义和表达出来。很多团队不是应用了速成开发就是在进行概念证明实验。尽管速成开发不是治愈项目失败的终极灵药但它确在很多项目上有一席之地。

八、领域知识

和敏捷开发密切关联,开发小组在项目定义中被越来越多的看做是同伴。这意味着了解问题领域的开发人员能够用更可见的,高价值的方式给项目作出贡献。敏捷开发中,一个能够说,“从这里,我们也可以很简单的添加这项功能,而且这能给我们带来很多回报,” 或者 “噢,这个要求和我们的日志中显示的使用模式并不相符” 的人将是优胜者。正如许多开发人员有抵制了解问题领域的想法,不可否认的是越来越多的组织希望(如果不是要求)开发人员至少能理解基本的内容。

九、清洁开发

之前,很多团队都没有使用 bug 跟踪系统、版本控制、及其他类似工具。只有开发人员和他们选择的 IDE 但是,感谢新的整合套件的开发,比如微软 Visual Studio Team System 以及高质量开源环境的爆炸性发展,没用到这些工具的组织变得更不常见。开发人员必须比知道怎么在代码控制中提交和获得代码或者怎样用虚拟机系统配置测试环境了解更多的东西。他们需要在适当的地方养成严格的卫生习惯以保证他们和其他的小组恰当的合作。代码牛仔把所有的东西存放在私人 USB 盘上,不把对任务对象的相应改变记录成文档,等等的人,在传统的团队里不受欢迎,在需要团队成员之间紧密合作的敏捷开发环境中更是如此。或许这些仅适用与大型企业与开发团队,但谁确定自己没有那么一天呢。

十、手机开发

上世纪 90 年末代 web 开发被主流接受开始在很多领域将传统的桌面程序边缘化,在 2008 年手机开发开始兴起,在未来五年里,它将会变得越来越重要。当然,手机开发有很多不同的方法:如针对手机设备的 web 应用程序开发,针对市场的 RIAs,和直接在设备上运行的应用程序。不管你选择了哪个方向,把手机开发加入你的技能集会保证你满足未来的需求。如微软 Mobile 谷歌 Android 苹果 MacOS 等等。

由于最近经济形势的变化,很多开发人员只关注他们短期的工作前景。与此同时,如果能把时间和精力花在学习最能带来回报的新技术上将是件非常重要的事情。这里是我们列举的十种你需要马上开始学习的技术,将让你的简历在未来五年内不会落伍(附,文中内容译自 http://blogs.techrepublic.com.com/ 上的一篇文章)。