> Ask yourself, or a software developer of a certain age: what were the guidelines for crafting excellent software 5 years ago? 10 years ago? 20 years ago? The farther back one goes, the less relevant the answers will be to our modern craft. Memory management? Not a significant issue for most programmers today. Multitasking? Obliterated by modern operating systems with efficient context switches. Concurrent programming? Constantly reinvented in the wake of multi-core CPUs, GPUs, and higher-level programming language features.
Uh what? I guess I don't really get the OP's premise here. While the specifics and priorities change, I don't see how mastering the best practices in any of these areas is in danger of becoming obsolete. For example, threadsafe implementation seems like an engineering skill/mindset that will apply across many platforms and architectures.