10 skills developers will need in the next five years

10 skills developers will need in the next five years

Summary: Guest post: If you’re a developer looking to get ahead in your field (or in some cases, to simply stay employed), this is not a good time to be complacent. TechRepublic's Justin James lists the skills you’ll want to work on now to maximize your future job prospects.

SHARE:

Guest post: If you’re a developer looking to get ahead in your field (or in some cases, to simply stay employed), this is not a good time to be complacent. TechRepublic's Justin James lists the skills you’ll want to work on now to maximize your future job prospects. For more posts like this See TechRepublic's 10 Things blog.

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.

Topics: IT Employment, Browser, Software Development

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

46 comments
Log in or register to join the discussion
  • You forgot one thing!

    You need to be able to work for the same or less hourly wage than someone in India, Russia, or China. Qualifications are one thing, but CEOs always go for cheaper. Being able to work for 3rd world wages is the ultimate "Skill" developers need.
    ddmattison
    • One killer "Wall St." skill

      If you are able to fail colossally, I mean losing 60 billions a quarter kinda failure, you will be officially too big to fail and receiving an ocean of tax payers' money while happily collecting your bonus. That's one skill everyone should develop while Obama is still in office.
      LBiege
    • this is 'must have' skill

      i like the way you pointed out this point/skill.
      Rakesh Juyal
  • Adobe: Unemployed? Learn Flex!

    http://www.osnews.com/story/21276/Unemployed_Developer_Learn_Flex_

    If your objective is to be agnostic, then Flex is the way to go!

    Flex is a serious worry for Microsoft.

    It folds in Dreamweaver into an Eclipse Java IDE Rich Internet Application development environment.

    Write once. Run everywhere.

    If you are a FOSS purist, then Adobe Flex IS NOT the way to go.

    Lots and lots of open source options, but hats-off to Adobe for the helping hand to the unemployed.

    (P.S., I am an IT Cloud Computing Consultant. When I am not engaged in a paying project, I return from being a 'consultant' to the 'unemployed' ranks. So, color me unemployed.)

    I embrace open source tools when and where I can, but I am not a FOSS purist.

    Dietrich T. Schmitz
    Cloud Computing Services
    http://www.dtschmitz.com
    no_zd_user_name
    • Aahahahahahahah

      "Flex is a serious worry for Microsoft."

      Microsoft looks at Flex and laughs. Sorry buddy, Flex/Flash is as dead as fried chicken.
      jackbond
      • Bond. Jack Bond.

        Sorry. But the de facto market survey says:


        [Flash Flash Flash]

        It's a gas gas gas!

        Try again.
        no_zd_user_name
        • AOL was the market leader in the 90s

          And now it's gone. Just a matter of time for Flash/Flex. The Adobe POS was never designed to be a RIA platform. Now that an actual RIA platform exists (I'll let you take a guess), Adobe's crapware is doomed. Notice they've already lopped off 10% of their workforce?
          jackbond
          • Workforce

            Who isn't lopping off 10% of their workforce?

            Did you forget that MS laid off 8500 employees?
            no_zd_user_name
  • RE: 10 skills developers will need in the next five years

    On that note... Powerbuilder is an excellent tool. Write Once, deploy as a desktop app or .NET application with the click of a button. Presto... it does all the work for you. I know some have written it off, but the new version is amazing. It even includes PocketBuilder for writing Mobile Apps. I deployed one of our desktop apps only a few tweaks to Win Mobile and it only took 3 or 4 hours from the time I started using the tool.
    notlehs
    • Dead.

      PowerBuilder is DEAD. We had an app here...this is 7 years ago...could NOT find a contractor for our life! Had a guy working remotely from 5 hours drive away, coming down once a month. NOT the best situation. Yeah, maybe we could have found someone (we're not far from Chicago) closer at twice his rate...but that's not what ya call a happening platform with readily available resources. Java, by contrast, has an abundance of resources. And, no, not ALL development is done in Java -- much is in C#, C, etc. BUT...it is a heavy hitter in the enterprise space -- and is NOT going away anytime soon. In that regard, PowerBuilder is already dead. We and others seem to have moved completely off of it, and have zero plan of going back!
      Techboy_z
    • Powerbuilder sucks

      I was a Powerbuilder developer--the language is mediocre, the framework is byzantine, the data objects are a pain to deal with.

      Not to mention the training--oh God the training! Ycch. And the certification tests. Arg...

      Besides, which companies are still using Powerbuilder?

      Let it rest in peace, man.
      wolf_z
  • Disagree

    I actually think that #1 is a fallacy. People are moving AWAY
    from .NET, Java and PHP to languages like Ruby and Python
    that are lighter weight (compared to Java and .NET) and more
    flexible (compared to PHP). I think within the next 5 years
    there will be a revolution in languages like Ruby and Python
    and they will overtake clunky behemoths like Java or .NET.
    Part of this is due to the meteoric rise of Ruby on Rails, but a
    lot of it is that .NET and especially Java development is like a
    million-piece jigsaw puzzle.
    wayne62682
    • Ermm, no homey don't think so....

      It will be a 'long time' before Java drops off the top tools list my friend. A long time, especially when Google opens up and announces support for Java on their Google App Engine:

      http://googleblog.blogspot.com/2009/04/new-features-and-early-look-at-java-for.html

      Sorry.

      .NET on the other hand will remain on an island and although that island is big right now, the movement to Dynamic scripting languages is significant to draw programming to O/S agnostic tool sets.

      BTW, don't count Perl out. It belongs in the Dynamic language list along side of Python and Ruby.

      There is NO other language like Perl.

      Microsoft are hedging their bets on Dynamic languages and have 'bastardized' Python with their IronPython project, but do have an interesting slant on JS compiled languages with their Unity project (write all of your code in one language e.g. GWT or pyjamas and compile the server/client code to Javascript).
      no_zd_user_name
      • AGREED!!!

        Java, Perl, JavaScript, CSS. You got yer full toolkit for web and many mobile kits right there.
        Techboy_z
    • Nope, and here's why.

      First, there are a lot of very different development needs, where the light weight stuff just doesn't cut it.

      Not everything is WEB development or IT database development.

      There is embedded development, often still requiring C or assembler.

      There is GUI standalone app development where C# and Java tend to shine.

      There is high performance development.

      And game development.

      And very large scale and complicated applications that generally aren't well served by dynamic languages.
      DevGuy_z
    • I disagree with you...

      If anything RoR seems to be on a decline right now. Rails is nice but it was never as amazing as some made it out to be. Its a nice framework of design patterns that might excite many noobs or people that don't have enough of a clue about design patterns to implement one. But most skilled programmers eventually see it as limiting. Thats not just for Rails but any of the "enforcing" frameworks that try to do everything for you. If anything frameworks may start to go the route of Zend Framework for PHP and be more of a toolkit but still capable of the "enforced" style of development.

      Spring seems to have taken the toolkit route with Java and MVC.Net stands to make ASP.Net an actual viable solution for real web development so I don't think those are going to die off. Besides they are the two most popular and strongest platforms for general development. I don't think Ruby and Python will pass them up for general enterprise development.
      storm14k
    • Ruby is a massive step backwards

      People with short memories may think that weak typing is new but it is ancient. Secure code absolutely must do type checking. With Ruby the type checking must be an explicit routine in the code and you have to pay for it during run time. Furthermore for any system that runs at a high CPU and RAM load, Ruby will make it worse. Ruby is slower than Java.

      Ruby may compare with PHP, but PHP is still faster and it has a lot more support behind it. Ruby is too little too late. PHP6 will have more OO support and it can do all of the same things.
      T1Oracle
      • I don't think its Ruby they like...

        Its Rails that gets them all excited. But Rails is just a collection of some of the most common things that developers have been doing all along. It just excited noobs because they don't have to learn the hard way or do any study of patterns on their own.

        Rails isn't worth the lack of flexibility, speed and community as compared to PHP and its frameworks if you ask me.
        storm14k
        • That's the other thing, PHP has FOSS MVC frameworks

          There is so much FOSS for PHP it's ridiculous. You don't need Ruby for Rails, the same basic stuff is already in existing PHP and Java frameworks.

          hype + amateur programmers + naive executives = wasted $$$
          T1Oracle
    • 100% agree.

      You are brain dead or myopic if you think PHP, Java and .NET represent
      even a moderate % of the software development out there. While I know
      .NET and Java (along with several other language tools sets) I never use
      them in a professional setting. After 25 years....

      Ignore this author.
      Bruizer