Here are a few that I can think of:
- Patterns - Separation of Concerns - Modularization - Source Control - Abstraction - Domain expertise - The ability to translate user requirements into tech - Tolerance for some degree of ambiguity - Debugging - Best practices in quality - Unit testing
I'm sure there are more and some people might disagree. The gist is that tech changes, but common practices, skill sets, and thought processes are long lasting.