10 skills developers will need in the next five years
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.
http://blogs.techrepublic.com.com/10things/?p=643
分享到:
相关推荐
"未来五年程序员需要掌握的10项技能" 在未来五年内,程序员需要掌握多种技能以适应不断变化的技术潮流和市场需求。以下是十项关键技能,涵盖编程语言、互联网 Rich Application、Web 开发、Web 服务、软实力、动态/...
根据给定文件的信息,我们可以总结出未来五年程序员应当掌握的十项关键技能: ### 1. 掌握至少一种主流编程语言(.NET、Java、PHP等) 在未来的五年里,程序员应该至少熟练掌握一种主流的编程语言,比如.NET (包括...
【未来五年程序员应当具备的十项技能】 在不断发展的信息技术领域,程序员需要持续学习和适应新的技术和工具,以保持竞争力。以下十项技能是著名IT评论员Justin James认为程序员在未来五年内应该掌握的关键技能,...
全国职业院校技能大赛是检验和提升高职学生技能水平的重要平台,尤其在2018年的高职组河南选拔赛中,“移动互联网应用软件开发”赛项更聚焦于学生的实际操作能力和创新思维。该赛项旨在通过比赛,培养学生们在移动...
《2020年河北省职业院校技能大赛高职组大赛智能硬件开发及应用赛项规程》是针对高职院校学生举办的一项专业技能竞赛,旨在提升学生的智能硬件开发与应用能力,培养创新精神和实践操作技巧。该赛事涵盖了多个相关职业...
在“GZ-2022039 移动应用开发赛项”中,参赛者不仅需要具备基础的编程能力,还要了解并运用云计算技术。云计算为移动应用提供了强大的计算资源和存储空间,例如使用Amazon AWS、Google Cloud Platform或Microsoft ...
根据提供的文件信息,以下是对“GZ-2021031 嵌入式技术应用开发赛项规程.pdf(2021年高职组国赛专用)”中所包含知识点的详细解析: 1. 竞赛目的与背景 嵌入式技术是信息化时代和数字化时代的关键技术,尤其在人工...
《2023年山东省职业院校技能大赛——应用软件系统开发赛项》是针对职业教育领域的一场重要赛事,旨在检验并提升学生的应用软件系统设计与开发能力。此赛题不仅关注理论知识,更注重实践操作,是对于参赛者综合素质的...
- **工作经验**:调查结果显示,大多数嵌入式工程师拥有3至5年的工作经验,这表明行业内对于具备一定实践经验的人才有较高需求。 - **学历要求**:在学历方面,本科学历占据了主导地位,但随着技术的深入发展,...
【2023年山西省职业院校技能大赛(高职组)“软件测试”赛项竞赛规程】 本次大赛旨在强化职业教育在软件测试领域的实践教学,提升学生的专业技能和综合素质,特别是对于软件测试工具和技术的掌握。赛项对接软件测试...
总的来说,2014年嵌入式应用开发赛项是一项综合性的技术挑战,它要求参赛者具备扎实的嵌入式系统理论知识,熟练的硬件调试技巧,以及高效的应用程序开发能力。通过这样的比赛,学生可以提升实际操作能力和团队协作...
【全国职业院校技能大赛高职组“移动互联网应用软件开发”赛项】 该赛项是针对中国职业院校学生的一项重要赛事,旨在考核参赛者在实际工程环境中开发移动应用的技能、设计能力和创新能力,同时检验他们的团队协作、...
在2024年上海市高职院校学生技能大赛中,嵌入式系统应用开发赛项将充分考验参赛者在这一领域的综合能力。该赛项旨在培养学生的创新思维、实际操作技能以及团队协作精神,通过解决实际问题来提升其专业素养。 嵌入式...
通过以上对2024年广西职业院校技能大赛高职组《Python程序开发》赛项的分析可以看出,比赛不仅要求参赛者具备扎实的Python编程基础,还需要熟练掌握数据处理、数据分析、数据可视化以及机器学习等相关技术。...
调查显示,大多数嵌入式工程师具有1-5年的工作经验,这反映出嵌入式行业在当时正处于快速发展阶段,吸引了大量新入职的技术人员。同时,也有相当一部分工程师拥有5年以上的工作经验,表明行业内存在一批资深的专业...
8. **应用开发**:具体到大数据分析应用开发和微信小程序开发,这要求参赛者具备编程和应用开发的能力,能够利用云计算资源开发出实际的应用程序。 9. **工程文档**:最后,提交的工程文档应详细记录整个项目的过程...
总的来说,2019年山东省职业院校技能大赛的HTML5交互融媒体内容设计与制作赛项旨在培养学生的创新思维、技术应用能力和团队合作精神,通过实际项目锻炼他们的专业技能,为未来职业生涯奠定坚实基础。
在当今信息化社会,计算机专业学生不仅要掌握专业知识,还要具备一系列软技能以适应未来IT行业的快速发展。在大学四年的学习过程中,学生需要关注以下几个核心知识点和能力: 1. **基础知识与技术**:计算机科学的...
7. **企业人才需求现状**:企业对于具备嵌入式开发技能的人才有持续的需求。除了基础的技术能力外,企业还重视工程师的团队合作能力和解决问题的能力。 #### 嵌入式工程师对职业生涯的看法 1. **对工作薪资的满意...