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?

closed as off-topic by gnat, Doc Brown, Bart van Ingen Schenau, Jim G., rwong Oct 6 '13 at 20:31

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – Doc Brown, Bart van Ingen Schenau, Jim G.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    Specific technologies go out of date quite rapidly — they're very subject to fashions — but the principles behind them don't. – Donal Fellows Oct 6 '13 at 16:17
  • Because of legacy code, COBOL may never go out of date. – Alan Shutko Oct 6 '13 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 '13 at 20:30
  • @DonalFellows, and what are these principles? – Oskar K. Oct 6 '13 at 20:56
  • Riding a bicycle will never go out of date :-) – Stephen C Oct 7 '13 at 8:02

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 '13 at 6:35
  • 2
    I would add "data modeling" to second bullet. – NoChance Oct 6 '13 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 '13 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 '13 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 Pritchard Oct 6 '13 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. – Sarge Borsch Oct 6 '13 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. – Michael Shopsin Oct 9 '13 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.