"i promise you that you don't program a computer with empathy no matter how hard you try"
Perhaps non-intuitively, I believe this is not true. You can tell the programmers who lack empathy -- they write code with no consideration for those who will use the end result or work with it later on. It requires empathy to make an effort to be understood and to be useful to others.
And in the case of anything with a UI, empathy shows up in spades (or doesn't). Just compare that app that seems to anticipate your every need and "just works" to whatever alternatives it's usually competing against. You can't just get away with it by copying whatever Apple does or having a cargo cult "design philosophy" -- you actually have to develop some kind of empathy for the people who use your product.
Still not a requirement.
A person with a strong talent for structure will be able to construct an efficient UI. Not all programmers are like this, many programmers are tech-nerds that just want to cramp all the cool things up in to UI and these people are the main problem.
Perhaps non-intuitively, I believe this is not true. You can tell the programmers who lack empathy -- they write code with no consideration for those who will use the end result or work with it later on. It requires empathy to make an effort to be understood and to be useful to others.
And in the case of anything with a UI, empathy shows up in spades (or doesn't). Just compare that app that seems to anticipate your every need and "just works" to whatever alternatives it's usually competing against. You can't just get away with it by copying whatever Apple does or having a cargo cult "design philosophy" -- you actually have to develop some kind of empathy for the people who use your product.