2 ms·
I've written about this before. You're right, but I think you miss (or simply gloss over) something that is critically different in software -- abstraction and
by kenjackson 13y ago
I've written about this before. You're right, but I think you miss (or simply gloss over) something that is critically different in software -- abstraction and reusability.
The nature of SW is to create abstractions that are reusable. So if you've built a good reusable abstraction, no one needs to know what's "under the hood" except in rare circumstances.
Ask your frontend web dev to explain some differences between the x86 and ARM ISA. Most won't have clue. Even much higher up the stack, most probably couldn't explain how TCP/IP work. For the most part it's irrelevant.
Other fields don't/can't build on lower levels in such a way that practitioners never have to learn the lower levels at all. How many surgeons are there that don't know cell biology?
Your best hope is to either continuously churn with the latest trends. Or pick a part in the stack that is likely to not change, and be a niche expert (aka, a networking guru, or x86 god). Your job opportunities will be much smaller, but if you can find your team (e.g., compiler architect or processor performance analyst) you'll likely to have a job for as long as you like.