The art of building abstractions alone determines if your program is readable, maintainable, and evolvable with time. And to "name things well," practice making your code concise, akin to a fiction writer.
Complex ideas are conveyed by making the dictionary "bigger" rather than naively making the text "longer." A longer text makes it hard to distinguish between the point and its context. Similarly, we make code concise by building abstractions: a library of vocabulary. Thus, our code highlights what's unique to our application.
A good abstraction uses domain terms. Thus, one can understand a financial application's code better by just reading an accounting textbook instead of relying solely on written documentation. Also, if your processes mimic the real world properly, there are fewer opportunities for tech debt than using "invented semantics."