I find that designers and managers tend to ridicule user interface designs created by programmers. Without question there have been tons of poor user interfaces made by programmers in the past, but it seems like the norm to assume all user interface designs made by programmers are bad.
Developers who strive to constantly improve themselves (like the users of this website) are on the internet a lot. I'd guess a typical Stack Overflow user has tried at least 10 different online email clients, 5 different IM clients, and used countless rich text editors on the web. They know what sucks about their universities old web mail system. They know GMail search rules. They know to make web pages load fast, and to use industry standard terms (i.e. call it a Shopping Cart instead of a Basket.)
But in the workplace, generally all user interface design matters are left up to designers, marketing, and management. Meanwhile, beautiful software gets destroyed in the process. They'll add some custom navigation that adds 500 kB to the page size because the programmer's html/css navigation was 'too simple.' "You have to understand, you aren't the typical user, and what seems like a good design to a programmer is confusing to the average user." Etc. Etc.
How do you become an authority on user interface design? What does it take so that you are no longer challenged or ridiculed on a design decision, and your work isn't mangled in the process? Do you have to start citing books? Are there college courses specifically for this?
Edit: Moving this to a community wiki since it's difficult for me to select an an answer, because they are all so good. Thanks!