We joke about it on HN pretty regularly, how it seems like programmers have the most hubris of anyone, always thinking every problem can be neatly solved with a bit of logic.
A tendency to analyze and solve problems rationally. Even if unfortunately it is not at all a rational problem at the time.
A tendency to (successfully) deep dive in a recursive fashion on problems. Ex: contractor is doing something weird, talk to the city inspector. City inspector refers to building code. Read building code. Work with contractor to bring up to code, or sic the appropriate regulatory authority on them.
Etc.
Similar to debugging something weird in someone else’s backend.
Short version, any sufficiently complex profession will have problems and associated solutions analogous to problems and solutions outside its domain. Therefore, the more deeply one understands a complex profession of that nature, the more likely one is to successfully apply lessons from that professional domain to problems outside it. Programming of course has peculiarities in that regard which color the kind of solutions one comes up with, eg a preoccupation with process and systems, linguistics, etc.
For the long version you can check out my book on the subject, shameless plug: https://www.amazon.com/Mindful-Programming-Christopher-Henni...
To contradict a sibling comment, I do not believe the world can be controlled, or that algorithms are a solution to everything. One important element of mastering programming (a world largely of pure logic) is to recognize how it differs from our human world.