您的位置:首页 > 编程语言 > VB

未来5年开发人员必需的10项技能(转)

2010-06-08 17:32 381 查看
来自: http://dict.cn/kuaile/16/n-1516.html

原文出处不详

With the recent changes in the economy, a lot of developers are focused on their short-term job prospects. At the same time, it’s important to make sure that you get the most bang for your buck when it comes to taking the time and energy to learn new skills. Here is our list of 10 skills you should be learning right now to make sure that your resume is relevant for the next five years. The list is hardly exhaustive, and there are huge swaths of the industry it won’t cover (mainframe developers, for example). Nonetheless, for average mainstream development, you can’t go wrong learning at least seven of these skills — not only to the point where you can talk convincingly about them at a job interview, but actually use them on the job.

Note: This article is also available as a PDF download.

1: One of the “Big Three” (.NET, Java, PHP)
Unless there is a radical shift in the development world (akin to an asteroid hitting Redmond), most developers will need to know at least one of the Big Three development systems — .NET (VB.NET or C#), Java, or PHP — for the near future. It’s not enough to know the core languages, either. As projects encompass more and more disparate functionality, you’ll need to know the associated frameworks and libraries more deeply.

2: Rich Internet Applications (RIAs)
Love it or hate it, in the last few years, Flash is suddenly being used for more than just animations of politicians singing goofy songs. Flash has also sprouted additional functionality in the form or Flex and AIR. Flash’s competitors, such as JavaFx and Silverlight, are also upping the ante on features and performance. To make things even more complicated, HTML 5 is incorporating all sorts of RIA functionality, including database connectivity, and putting the formal W3C stamp on AJAX. In the near future, being an RIA pro will be a key resume differentiator.

3: Web development
Web development is not going away anytime soon. Many developers have been content to lay back and ignore the Web or to just stick to “the basics” their framework provides them with. But companies have been demanding more and more who really know how to work with the underlying technology at a “hand code” level. So bone up on JavaScript, CSS, and HTML to succeed over the next five years.

4: Web services
REST or SOAP? JSON or XML? While the choices and the answers depend on the project, it’s getting increasingly difficult to be a developer (even one not writing Web applications) without consuming or creating a Web service. Even areas that used to be ODBC, COM, or RPC domains are now being transitioned to Web services of some variety. Developers who can’t work with Web services will find themselves relegated to legacy and maintenance roles.

5: Soft skills
One trend that has been going for quite some time is the increasing visibility of IT within and outside the enterprise. Developers are being brought into more and more non-development meetings and processes to provide feedback. For example, the CFO can’t change the accounting rules without working with IT to update the systems. And an operations manager can’t change a call center process without IT updating the CRM workflow. Likewise, customers often need to work directly with the development teams to make sure that their needs are met. Will every developer need to go to Toastmasters or study How to Win Friends and Influence People? No. But the developers who do will be much more valuable to their employers — and highly sought after in the job market.

6: One dynamic and/or functional programming language
Languages like Ruby, Python, F#, and Groovy still aren’t quite mainstream – but the ideas in them are. For example, the LINQ system in Microsoft’s .NET is a direct descendent of functional programming techniques. Both Ruby and Python are becoming hot in some sectors, thanks to the Rails framework and Silverlight, respectively. Learning one of these languages won’t just improve your resume, though; it will expand your horizons. Every top-flight developer I’ve met recommends learning at least one dynamic or functional programming language to learn new ways of thinking, and from personal experience, I can tell you that it works.

7: Agile methodologies
When Agile first hit mainstream awareness, I was a skeptic, along with many other folks I know. It seemed to be some sort of knee-jerk reaction to tradition, throwing away the controls and standards in favor of anarchy. But as time went on, the ideas behind Agile became both better defined and better expressed. Many shops are either adopting Agile or running proof-of-concept experiments with Agile. While Agile is not the ultimate panacea for project failure, it does indeed have a place on many projects. Developers with a proven track record of understanding and succeeding in Agile environments will be in increasingly high demand over the next few years.

8: Domain knowledge
Hand-in-hand with Agile methodologies, development teams are increasingly being viewed as partners in the definition of projects. This means that developers who understand the problem domain are able to contribute to the project in a highly visible, valuable way. With Agile, a developer who can say, “From here, we can also add this functionality fairly easily, and it will get us a lot of value,” or “Gee, that requirement really doesn’t match the usage patterns our logs show” will excel. As much as many developers resist the idea of having to know anything about the problem domain at all, it is undeniable that increasing numbers of organizations prefer (if not require) developers to at least understand the basics.

9: Development “hygiene”
A few years ago, many (if not most) shops did not have access to bug tracking systems, version control, and other such tools; it was just the developers and their IDE of choice. But thanks to the development of new, integrated stacks, like the Microsoft Visual Studio Team System, and the explosion in availability of high quality, open source environments, organizations without these tools are becoming much less common. Developers must know more than just how to check code in and out of source control or how to use the VM system to build test environments. They need to have a rigorous habit of hygiene in place to make sure that they are properly coordinating with their teams. “Code cowboys” who store everything on a personal USB drive, don’t document which changes correspond to which task item, and so on, are unwelcome in more traditional shops and even more unwelcome in Agile environments, which rely on a tight coordination between team members to operate.

10: Mobile development
The late 1990s saw Web development rise to mainstream acceptance and then begin to marginalize traditional desktop applications in many areas. In 2008, mobile development left the launch pad, and over the next five years, it will become increasingly important. There are, of course, different approaches to mobile development: Web applications designed to work on mobile devices, RIAs aimed at that market, and applications that run directly on the devices. Regardless of which of these paths you choose, adding mobile development to your skill set will ensure that you are in demand for the future.

 

由于最近经济形势的变化,很多开发人员只关注他们短期的工作前景。与此同时,把时间和精力花在学习最能带来回报的新技术上是件非常重要的事情。这里是我们列举的10种你需要马上开始学习的技术,让你的简历在未来5年不会落伍。这个列表并不完全,有很多业界的领域(比如大型机开发人员)没有涉及。尽管如此,对通常的主流开发来说,学习其中至少7项技能肯定不会错 ——不但要达到能在面试时侃侃而谈的程度,还得能在工作中运用自如。

1: “三大”之一 (.NET, Java, PHP)
除非开发世界有根本的改变(类似小行星击中雷德蒙),在不远的将来,大部分开发人员将需要了解三大开发系统——.NET (VB.NET或者C#), Java, 或者PHP——中的至少一个。并且只了解核心语言也是不够的。因为项目会包含越来越多不同的功能,你需要对相关框架和库有深入的了解。

2: 丰富互联网应用 (RIAs)
不管爱她还是恨她,最近几年,Flash的用途突然间不仅仅是制作政治人物弱智歌曲演唱动画而已了。Flash也萌生出了以Flex和AIR为形式的附加功能。Flash的竞争对手,比如JavaFx和Silverlight,也在不停的在特性和性能上加筹码。HTML5集成了所有RIA的功能,包括数据库连接和把正式的W3C印章加到AJAX(译者:这个地方拿不准)。在不久的将来,RIA专家将会是简历的一个重要筛选条件。

3: Web开发
Web开发在近期内不会消失。很多开发人员满足于忽略Web或者只是使用他们的框架给他们提供的"基本元素"。但是公司需要越来越多的真正知道怎样使用底层技术进行“手工编码”的人。所以要获得成功请在未来5年里努力钻研JavaScript,CSS和HTML。

4: Web服务
REST或者SOAP? JSON或者XML? 尽管选项和答案取决于项目本身,不使用或者创建Web服务对一个开发人员(甚至是那些不做Web应用程序的)来说越来越困难。那些原来采用ODBC,COM或者RPC domains的领域,现在也在某种程度上过渡到了Web服务。不会用Web服务的开发人员将会发现他们被排挤或者沦为维护人员。

5: 软技能
有一种已经开始了很久的趋势,IT在企业内部或者外部变得越来越透明。开发人员被卷入越来越多的非开发性会议和过程以给与反馈。举个例子,CFO要改变会计规则不能不依靠IT去更新系统。如果没有IT去升级CRM的工作流,运营经理就不能更改呼叫中心的流程。同样的,客户常常需要和开发小组一起工作来保证他们的需求被满足。每一个开发人员都需要找主持人帮助或者去学习《怎样结交朋友并影响别人》么?不是。但是拥有这种能力的开发人员对他们的雇主来说更有价值——并且更抢手。

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

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

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

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

10: 手机开发
上世纪90年末代web开发被主流接受开始在很多领域将传统的桌面程序边缘化,在2008年,手机开发开始兴起,在未来5年里,它将会变得越来越重要。当然,手机开发有很多不同的方法:针对手机设备的web应用程序开发,针对市场的RIAs,和直接在设备上运行的应用程序。不管你选择了哪个方向,把手机开发加入你的技能集会保证你满足未来的需求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息