It's a common knowledge that since the IT industry develops very quickly, most of the skills get outdated fairly rapidly: jQuery, .NET, Ruby on Rails, etc. They change all the time so that it is difficult to keep track of them and especially learn them. Once I learn Ruby on Rails 3.2, Ruby on Rails 4 has appeared; the same thing for other frameworks and libraries.

What skills (or rather, technologies) get outdated slower and, at the same time, pretty useful in terms of being able to find a job? I figure these are knowing networks and algorithms. What else?

  • 3
    Specific technologies go out of date quite rapidly — they're very subject to fashions — but the principles behind them don't. Oct 6, 2013 at 16:17
  • Because of legacy code, COBOL may never go out of date. Oct 6, 2013 at 19:16
  • 2
    Concurrent and distributed programming - that is, if you learn all of the paradigms that lead to concurrent programming. Being a new and hot technology means that it has a long shelf life to go. That still couldn't prevent its ultimate replacement by quantum computing, but it should give you one or two decades of employment.
    – rwong
    Oct 6, 2013 at 20:30
  • @DonalFellows, and what are these principles?
    – Oskar K.
    Oct 6, 2013 at 20:56
  • Riding a bicycle will never go out of date :-)
    – Stephen C
    Oct 7, 2013 at 8:02

3 Answers 3


Well at the risk of sounding slightly cheesy: Ideas are timeless. By this I mean that the notion of a depth first search is goodness knows how old, but still totally relevant. Likewise, things that aren't totally platform and technology dependent tend to have a longer lifespan.

If you learn things like

  • Algorithms
  • Data structures
  • Paradigms and Concepts
  • Common [Coding] Sense
  • How to Document
  • A Sparkling Sense of Humor

then no matter what technology you're using, you'll still be a reasonably competent developer.

Depending on what sort of work you do, compilers, webdev, dbs, finance, whatever, their will be a certain amount of domain specific knowledge that will be relevant so long as the field is relevant.

  • the first 2 make sense (they are really the same thing), but the others are kind of abstract.
    – Oskar K.
    Oct 6, 2013 at 6:35
  • 2
    I would add "data modeling" to second bullet.
    – NoChance
    Oct 6, 2013 at 9:23
  • 1
    I'd add the ability and propensity to think at the top of the list, but probably it comes without saying. I mean the inclination not to jump to conclusions, actually check your assumptions, follow through with logical conclusions, and check what you came up with for contradictions. Sounds basic, but it's amazing how many people find the above too hard and daunting.
    – 9000
    Oct 6, 2013 at 15:08

If you can understand the concepts, you can understand any language. The computer industry goes in circle with old technology coming around again in a slightly new form.

Even if you spend 100% of your waking time learning everything possible, you will still not know it all, and you will fall behind in some of the technology.

C++ is still around, but Pascal and FORTRAN really are not.

My point is that it is not possible to determine what will go out of style slowly. You try to find a niche and go with it. The more you learn, the more you can use to understand the next "thing".

  • 9
    Your language examples are bad ;-) Fortran still has a strong niche in scientific and high-performance computing. Pascal is obsolete, but derivatives like Delphi aren't dead yet. C is only two years younger than Pascal, but it is as strong as ever – and it will be for a couple of more decades, because all our OSes and many programming languages rely on C code. Java will stick around for a long time, solely because lots of important enterprise code is written in it – compare to Cobol. But will newer languages like CoffeScript and Julia stay/become relevant? Who knows…
    – amon
    Oct 6, 2013 at 11:01
  • Indeed. Traditional Pascal may be dead, Delphi/Object Pascal is still very much relevant. In the same way that traditional Basic (and even VB) has no place, VB.net is still out there and in use. The likelyhood is that if you learnt one of the earlier 'renditions' of these languages, that you could refresh your knowledge relatively easily.
    – Scott P
    Oct 6, 2013 at 12:50
  • @ScottPritchard VB.NET is bad example, it just tries to be similar to VB because of syntax, but it is just the same thing as C#, and has very little in common with VB or BASIC. Also, as far as I know, Delphi/Object Pascal are used only because there are some bits of old ugly code that is hard to rewrite. Starting new project with some kind of Pascal is 100% crazy. Oct 6, 2013 at 17:41
  • 1
    @amon Fortran is very much alive in science, Intel, IBM, Absoft and others will sell you a Fortran compiler up-to-date with the latest standards. What do get out of date are APIs; DOS interrupts and classic Mac Toolbox calls are really and truly dead. Oct 9, 2013 at 16:59

The answer lies in understanding life as a process. Does life change computers or does computers change our life or the way the business is done?

It is basically the usage of software as a product or service that first goes obsolete due changes in business scenarios. The next new level of thinking and rethinking is done to save its death in terms of its usability. When the next level of thinking comes into play, technologies and their components are first analysed, language being a starting point, first comes into change... It needs to reduce the complexity, maintenance and learning curve to build the next wave of applications/software.

Hence, according to my understanding, I feel only those languages go slow in changes that remain above the critical threshold level that determines actual usage by the end users.


Not the answer you're looking for? Browse other questions tagged or ask your own question.