HACKER Q&A
📣 behnamoh

How do you future-proof yourself?


Been using proprietary OSs (Windows, macOS) and I think fundamentally they're rock solid. But I also fear the day that Apple and MS either go bankrupt or just stop supporting their OSs. It happens all the time at a smaller scale, like, each version of macOS breaks some features/apps that I'm used to, and MS stops supporting Windows versions after a few years. I always thought Linux would be the most future-proof OS, but choosing something like Fedora entails the same problems as above (something being maintained by a corporation), and other distros seem too distracted that I don't know if most of them will be around in a few years anyway.

Same thing with my tools. Atom was dropped in favor of VSC and Zed, despite having millions of users. Again, it seems something like Vim or Emacs would be the most future-proof alternative. Sure, VSCode is supposedly open-source, but I don't think people will fork and maintain it if MS suddenly stops support. I fear that any sophisticated and complex project, even if it's open-source, will not be properly supported outside of its core team, especially if there are competitive alternatives.

TLDR— How do you go about making yourself future-proof? In the sense that you won't have to re-learn new tools every few years and instead focus on getting the job done.


  👤 gregjor Accepted Answer ✓
Join the Amish. If you work with technology constant change comes with the territory. You future-proof yourself by adapting.

I’ve worked in the software business for 40 years and I’m happy I’m not stuck with what I learned decades ago.


👤 al_borland
Major shifts won't happen all that quickly. You'll see them coming and have time to adapt and learn new things. There is generally also a long tail of companies that are slow to move that still need support.

The main thing I think about for future proofing isn't related to skills, but rather data. What file formats should I use to ensure I can still get access to me data a couple decades from now. When I was young my dad told me to use rtf for the papers I wrote, so I could open them anywhere, but I can't open those anymore on modern systems (or the files or corrupt). My thought is to use text files or markdown wherever and whenever possible, but then there is a question of ease of use. How much time will I spend trying to maintain a text based system vs just having to spend a few hours migrating every 5-10 years if there is a big shift in where/how I'm looking to store my data.


👤 doktorhladnjak
Why do you need to be future-proof? Optimizing for that outcome means giving up other significant qualities in your tools. Avoiding change is how you end up a fossil who can't adapt.

👤 nbernard
Under the assumption that the lifetime of such "tools" follows a power law, then the life expectancy of a currently used tool is how long it has already been around. So, from this point of view, the older the tool (editor, language, etc.) the better.

Still, it may be moot for most of those tools evolve sufficiently during their lifetime that one can wonder if they remain the same. Is Emacs with modes such as org or magit really the same emacs that was used in the '90s? Would a Linux sysadmin from 2000 really feel at home with a 2022 Linux and systemd, containers and ...


👤 moondev
Switch to Linux.

If the capability and stability of your development workstation and tools are important to you, there is no better option than a platform controlled and continuously innovated by the community itself.


👤 faeriechangling
Windows NT is going to stick around like Cobol and I wouldn't worry so much. MacOS and Apple stuff in general I see as less resilient to the winds of change, but the sheer momentum of iOS which is based on the same Kernel makes me think MacOS is going nowhere soon.

You future proof by continually learning, and by learning things that don't age as much. Your knowledge of VSC might not matter in twenty years, but your knowledge of social skills won't.


👤 eternityforest
Truly modern tools, when used as they seem to be intended, aren't skills, they're vague familiarities.

Even programming language take only weeks to do useful work in, if you know any similar language.

If VSCode vanishes there will be some other similar open source tool, that will probably be better somehow. And I'll probably be up and running fast because everything will be labeled with tooltips.

I don't have any custom scripts and modifications, so it's not like I'll be losing a lot.

GUI tools are interactive and largely guide the user, so there can be close to zero learning time for the better ones, on simple tasks. There's some learning to be maximally effective, but... everyone else will have that same time too, it's not like you'll be fired or the world ends if you're a little slower for a bit with a new tool.

Then again, I don't have any strong muscle memory or spatial thinking ability, so I don't get as attached to details of tools anyway.

I just try to make sure everything uses common standard formats like Markdown, and avoid things that are based on customization.


👤 gunfighthacksaw
If you know the future, play the lottery, or even better, form a startup :)

Otherwise, it’s a similar problem to being on eg the cutting edge of music. You either consume everything you can until you can make judgements on what will stick or not, or you create things yourself and try your hardest to make them the next thing.

Luckily, in our industry, you can also:

- know the fundamentals of math/science/technology: there is never truly anything new, there are always rehashes of something else

- be smart enough to absorb radical new theories: self explanatory, better learners can get a grasp of the content more effectively

- socially positioned enough to delegate what you don’t understand: if formally verified quantum blockchain on tensor cores (or whatever) doesn’t resonate with you, but you think it could be useful later, get a younger/brighter person to do what you won’t or can’t. You might reap major rewards from having a protege in the space, and if you don’t, then you helped the next gen learn something new, so feel good about that.


👤 jshzglr
Tough to answer this directly, but the Lindy effect serves as a good guide. Things that are disproportionately old and still widely used are probably your best bet. But as others have said this seems like the wrong approach. You're not a toaster. As soon as you stop adapting you might as well be dead.

👤 hotpotamus
I'm still a fan of open source here. Never really used Fedora, but I was under the impression it's a fairly genuine hybrid community/corporate project and Red Hat is fairly decent about that. Of course IBM is going to IBM. I've liked Ubuntu for a long time, but after a decade or so, Canonical is pretty well trying my patience and has me playing more with straight Debian which is what, about 30 years old now?

The BSDs also seem quite staid - I'll probably be moving any firewalls I can to PFSense where possible after dealing with the lifecycle hassles that Cisco and Sonicwall have put me through now.

But I think the most important thing is to use open formats to store your data; you don't really own it if it's closed.


👤 burntoutfire
Become an indie, then you can work with your preferred tools from the nineties and still produce quality software (there are people like that). If you want a job, there's no escaping the tech treadmill though.

👤 _vertigo
Maybe I’m just young, but what field that you work in that you feel it’s worth investing in preventing the need to stay up to date? In my field, I find myself needing to learn so much every week that the idea of learning a new IDE or something every 3 years seems like a drop on the bucket.

I’d argue that rather than resisting change you should embrace it - future-proofing oneself means adopting new technologies proactively and staying ahead of the curve to avoid being left behind, not finding the magical set of tools than won’t ever become obsolete.


👤 tkiolp4
I focus on getting better at learning. That’s how I have survived the last 15 years in the software industry. Luckily enough, I like learning… but I do choose what to learn. For instance, I have been learning Ansible recently (for side projects) just for fun and because I like its core (agentless way of performing chores on multiple machines). I haven’t yet learn k8s (because I dislike the idea of it).

👤 jhoelzel
Coding is not like a lot of studies because learning never stops. What we are doing right now might very well be completly obsolete in 10 years.

Have a look at even the "simple" things like PHP: When I was learning it in version 2.x it was a straight forward but cubbled mess. Now, with PHP8 its anything like that and it became a "modern programming language".

Change is the only guaranteed constant.


👤 jimmygrapes
I'm still catching up on a few decades of various technologies and concepts so I don't have a great answer, and I see everyone else has already given the obvious answer of "adapt" so here's my take as someone who didn't: don't be afraid of jumping head first into the absolutely brand new and unproven; even better if you can create it and/or harden it.

👤 muzani
"VSCode is supposedly open-source, but I don't think people will fork and maintain it if MS suddenly stops support."

Cordova and Parse (now Parse Server) suddenly lost a lot of support when dropped by a big name.

It seems that most people pick technology not by how good it is, but whether big names support it. And this ends up a self-fulfilling prophecy.


👤 danielmarkbruce
Do an insanely good job on whatever you are working on. You'll get a really good reputation. Future proofed.

👤 jstx1
Use the thing that you like the most right now and don't worry about it too much. Especially with these examples - who cares if your code editor isn't supported anymore - you can always switch to a different one with hardly any cost.

👤 tbihl
In practical terms, never stop learning and keep savings for a solid runway.

If you ever find yourself somehow completely outside of what you need for core competencies, then step away from work and grind like crazy to get caught up.


👤 toomuchtodo
Never stop learning, always be saving towards financial independence so that you’ll be okay when you’re no longer able or willing to learn something new to support yourself.

👤 dzhiurgis
Saving some CASH for HOUSING