Ask HN: How do you future-proof yourself?

26 points by behnamoh ↗ HN
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.

31 comments

[ 3.6 ms ] story [ 85.8 ms ] thread
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.

Seconded. I embrace change while appreciating that fundamentals compound over time and most things aren’t that different from one another. For example you mentioned Atom - your transition to Sublime, VS Code etc will be much easier because of your learnings in your previous editor. That’s something that you wouldn’t have had if you didn’t put online the time or you were x years younger.
This is a most weird.. but a completely on point solution for someone who seeks for a way to have a bread on the table.

I've seen enough people in my life whose education and experience doesn't compute with what they are doing in their life. Thing is - they are a way happier, compared to what they did in the previous life. Sure, you can't just abandond everything and be happy, but this is the wzy how someone finds their happines.

Don't forget, most of sysadmins dreams of [electric] sheep farm.

A close knit community with food security and explicit "governance" around what technologies they adopt and careful monitoring of the effects? Who are very careful about their supply chain and dependencies?

That's almost too future-proof.

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 ...

> Still, it may be moot for most of those tools evolve sufficiently during their lifetime that one can wonder if they remain the same.

This is a very good point. I hadn't thought about it.

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.

Those are all variants of tunic, which dates back to the ‘70s. The differences are more like climate controls in different cars than significantly different tools.
I'm aware of Unix, but there have been some developments and divergences since the 70's. MacOS could probably be called a Unix variant as well. And ChromeOS is a pretty different beast from Debian despite nominally both being Linux.
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.
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.
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.

RTF is still supported by major word processors. You can also open the files as text, RTF is just markdown with control characters.

Tangent to the topic but if you’re stuck with old RTF fills something else is wrong with them.

Maybe they were corrupted over the years. They open, but there are a bunch of trash characters, some real text in the middle, but it seems like some is missing.
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.

The issue is that with age your capacity to learn drops precipitously and you have to learn more and more on what you've already known, so there's great value in strategising your learning to build some skills that will be relevant in your later working years.
Do an insanely good job on whatever you are working on. You'll get a really good reputation. Future proofed.
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.
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).
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.
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.

"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.

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.

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.

> You future proof by continually learning That's a good point.

Also, I agree, Windows and probably macOS aren't going anywhere anytime soon, but they constantly change over time, which breaks some apps and workflows.

Example: I heavily use Karabiner on macOS, but there was a period of time that the app was not working after a new macOS update.

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.
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.

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.

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.
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.