Development Skills that are future proof

Solarion

Honorary Master
Joined
Nov 14, 2012
Messages
28,051
Reaction score
17,805
I've been looking at the last decade or so of development I've come across. Some things have not aged well as in they are no longer used or horribly outdated. The .NET framework for eg. Even Asp.NET is vastly different from what it was. SQL has remained imho about the same. I see things like Kubernetes and Azure DevOps and how they seem to be the in thing but they may not even be around in a decade. I don't see the point of learning things that are basically "temporary". I want a skill set that one could consider hardcore and one could comfortably settle into for the next 20-30 years.

C# I can imagine being around. SQL surely? What other languages/tools could you see still being around in years to come?
 
I've been looking at the last decade or so of development I've come across. Some things have not aged well as in they are no longer used or horribly outdated. The .NET framework for eg. Even Asp.NET is vastly different from what it was. SQL has remained imho about the same. I see things like Kubernetes and Azure DevOps and how they seem to be the in thing but they may not even be around in a decade. I don't see the point of learning things that are basically "temporary". I want a skill set that one could consider hardcore and one could comfortably settle into for the next 20-30 years.

C# I can imagine being around. SQL surely? What other languages/tools could you see still being around in years to come?
COBOL.
 
My suggestion is to change careers. I've been working in IT for about 20 years now and still learn new technology stacks and techniques every day. You will be able to reuse the foundations of programming over and over again but the rate of change is just accelerating in my opinion. But its just the nature of the career in IT.
 
C# and Java.

SQL goes with the above as there are usually 3 core components to an application - a presentation layer, backend layer and data layer...
 
Wrong industry to look for that. There are longer and more evolved languages that are mainstay but guaranteed?
 
My take (after nearly 40 years writing code) is that if you're looking for technologies that will future proof your skills, you are probably doing something suboptimal.

I've seen a lot of technologies come and go. The thing that has kept me gainfully employed has primarily been things outside of specific technologies. I know C/C++/ASM much better than most, but I am far from a C++ language-lawyer, spec quoting type (and I've encountered a bunch of them :p).

I've had to pick up new technologies all the time, but nobody is going to pay me what I get paid because I know an API, framework or language. I get paid well, because if I'm asked to do something, I get it done in the best way possible, and if I'm not asked to do something, I figure out what I should be being asked to do, and do that. :) This also means really learning whatever business/domain I'm in reasonably well, so that I can make these calls.

My advice is to learn the "theory" (CS/Stats/Maths) - that is important forever, but also watch and learn the process (and people) of software engineering over time, so you have a good sense of what, how and who. Also, please be judicious when it comes to job hopping - don't stay at a toxic company, but if you are overly hoppy you're going to learn a lot about peripheral contributions to small projects, but next to nothing about the domain, core software engineering skills, large projects, etc., which will eventually cap your career.
 
Last edited:
Also, learn C/C++ :) I've been using them for ~30 years, and although I now do a fair amount of Python, the C/C++ code is unlikely to be replaced anytime soon.
What kind of stuff do you build?

I am always curious as my frame of reference is entirely web-based.

Take simcloud.co.za, for example, so on there you can do the following:
  • You can buy prepaid airtime and data
  • You can track the usage of a sim
  • You can monitor simcards
  • You can do bulk prepaid recharges via CSV, etc
  • You can lookup the balance of sims
  • You can lookup the networks of sims
  • You get tax invoices
  • You can set alerts and auto topups, etc.
In essence, a fairly complex system in my opinion.

Yet, this is all built-in PHP 7 and runs on Cpanel, and I do 1000s of orders a minute, I always wonder how C++ would make it different, C I can understand, since I do use Phalcon from time to time and I do write my own C extensions for PHP, but C++, I mean (this can also be my limited understanding), but the hosting of C++ feels like a barrier versus just using a LAMP stack, so I always assumed c++ will be more on the software side and not web side, like I use a browser to access a PHP website, but that browser is probably built in c++ or Javascript
 
What kind of stuff do you build?

I am always curious as my frame of reference is entirely web-based.

Take simcloud.co.za, for example, so on there you can do the following:
  • You can buy prepaid airtime and data
  • You can track the usage of a sim
  • You can monitor simcards
  • You can do bulk prepaid recharges via CSV, etc
  • You can lookup the balance of sims
  • You can lookup the networks of sims
  • You get tax invoices
  • You can set alerts and auto topups, etc.
In essence, a fairly complex system in my opinion.

Yet, this is all built-in PHP 7 and runs on Cpanel, and I do 1000s of orders a minute, I always wonder how C++ would make it different, C I can understand, since I do use Phalcon from time to time and I do write my own C extensions for PHP, but C++, I mean (this can also be my limited understanding), but the hosting of C++ feels like a barrier versus just using a LAMP stack, so I always assumed c++ will be more on the software side and not web side, like I use a browser to access a PHP website, but that browser is probably built in c++ or Javascript
Nothing web based at all. Engineering/simulation, high performance supercomputer code, low latency tightly coupled parallelism, high speed trading, machine learning, new processor R&D, etc.

C++ would be useful so for some low latency, high throughput web backends, but I expect the usage there is pretty niche.
 
I've been looking at the last decade or so of development I've come across. Some things have not aged well as in they are no longer used or horribly outdated. The .NET framework for eg. Even Asp.NET is vastly different from what it was. SQL has remained imho about the same. I see things like Kubernetes and Azure DevOps and how they seem to be the in thing but they may not even be around in a decade. I don't see the point of learning things that are basically "temporary". I want a skill set that one could consider hardcore and one could comfortably settle into for the next 20-30 years.

C# I can imagine being around. SQL surely? What other languages/tools could you see still being around in years to come?
Deployment tools like Ansible and docker are going to be around for a very long time because of the problems they solve.

No sane person ever wants to go and fiddle with their deployment scripts.
 
The only software development skill that is future proof is the skill of embracing change :)

Any career in the industry will require that at some point you learn a new language/framework or whatever they will call it.

It’s also entirely possibility that you will remain at the same time employer for you entire working life and there you can learn new skills as they migrate to new platforms or not
 
I've been looking at the last decade or so of development I've come across. Some things have not aged well as in they are no longer used or horribly outdated. The .NET framework for eg. Even Asp.NET is vastly different from what it was. SQL has remained imho about the same. I see things like Kubernetes and Azure DevOps and how they seem to be the in thing but they may not even be around in a decade. I don't see the point of learning things that are basically "temporary". I want a skill set that one could consider hardcore and one could comfortably settle into for the next 20-30 years.

C# I can imagine being around. SQL surely? What other languages/tools could you see still being around in years to come?
Concepts hitched to mathematics will last the test of time.
If my decades of experience has taught me anything... its that programming languages and frameworks are at best fickle... quickly adopt the new / popular and move on.

e.g. You can find COBOL programmers and jobs today... but it most certainly is anything but rewarding.
 
You see a future in c# but not .net?
Are you including .net core?

In all honesty I'd say build up a portfolio and keep it up to date annually. I'd rather hire someone who can think for themselves than someone with x experience in one or more technologies.

Coders are nimble... the good ones anyway.
.net core has already surpassed its sell by date...
...it was always (as I'm fairly sure you're aware) a temporary solution... one to be replaced by .net 5 -- the merger of previously dissimilar .net frameworks.
 
.net core has already surpassed its sell by date...
...it was always (as I'm fairly sure you're aware) a temporary solution... one to be replaced by .net 5 -- the merger of previously dissimilar .net frameworks.

.Net Core is actually a substantial part of .Net 5, they just don't call it Core anymore because they want to showcase a single unified platform that caters for cross-platforms and is open source.

Here's what MS said...

.NET 5.0 is the next major release of .NET Core following 3.1. We named this new release .NET 5.0 instead of .NET Core 4.0 for two reasons:

*We skipped version numbers 4.x to avoid confusion with .NET Framework 4.x.
* We dropped "Core" from the name to emphasize that this is the main implementation of .NET going forward. .NET 5.0 supports more types of apps and more platforms than .NET Core or .NET Framework.


So if you believe .Net Core is past it's sell by date and is temporary, I can tell you from working on .Net Core 2.0, 2.1, 3.1, and now .Net 5.0, many of the .Net Core classes exist, actually I think all 3.1 classes exist. In fact, when we upgraded our .Net Core 3.1 apps to .Net 5.0, it was merely a target change in the project, and everything still compiled and ran as it did. .Net Core is a fundamental part of .Net 5, even of MS removed "Core" from the name.
 
.Net Core is actually a substantial part of .Net 5, they just don't call it Core anymore because they want to showcase a single unified platform that caters for cross-platforms and is open source.

Here's what MS said...




So if you believe .Net Core is past it's sell by date and is temporary, I can tell you from working on .Net Core 2.0, 2.1, 3.1, and now .Net 5.0, many of the .Net Core classes exist, actually I think all 3.1 classes exist. In fact, when we upgraded our .Net Core 3.1 apps to .Net 5.0, it was merely a target change in the project, and everything still compiled and ran as it did. .Net Core is a fundamental part of .Net 5, even of MS removed "Core" from the name.
That... arguably is just a different way to express "it was always (as I'm fairly sure you're aware) a temporary solution"... the goal was always to unify the formally dissimilar frameworks.

In short...
.Net core is dead... .long live .net 5, .net 6, etc.
 
Top
Sign up to the MyBroadband newsletter
X