Understanding the relationship between software and user value.
Very little software is developed for purely artistic purposes. Most software is built by businesses in order to sell to willing buyers with a need that the software can address. Developers who understand this relationship will be able to identify and implement solutions that no manager can even think of much less implement. That provides the power to move a business and is both rare and extremely valuable. That value provides you, the developer, with the power to work on the things that interest you most either for yourself or if you desire for someone else.
Knowing the difference between a project that will provide value and one that won't. This is a very hard skill to learn, but delivers massive payoff. Almost everything else can be learned from books. Build the wrong thing and it won't matter how well you did it.
For instance, those who can sit themselves down and work and work and work until there is passing code. And there are those who do as little work as necessary to accomplish a task in the most efficient or effective way possible.
Other valuable sub-skills include troubleshooting, good code convention, organized methodical approach, to name a few.
The code may be technically excellent, but solve the wrong problem. Communication with others, especially with the stakeholders and/or users, will help to distinguish wants vs needs vs nice to haves. It is not always easy to know how to ask the right questions to bring those differences to the surface. Good communication skills are very valuable, both in software development and in life.
Very little software is developed for purely artistic purposes. Most software is built by businesses in order to sell to willing buyers with a need that the software can address. Developers who understand this relationship will be able to identify and implement solutions that no manager can even think of much less implement. That provides the power to move a business and is both rare and extremely valuable. That value provides you, the developer, with the power to work on the things that interest you most either for yourself or if you desire for someone else.