I wish I had mod points to downvote such a negative and bigoted post. From the viewpoint that you wrote, it sounds like you are not a programmer yourself but look from the outside in. I'm actually quite sorry that you've only run into the bad programmers out there (and the implication that you've never met a good one). More likely than not, I'm inclined to believe that you just weren't able to appreciate the good ones. There's a mix of good and bad out there. Different people have different strengths and making sure that the programmers with the right skills are doing the right job is usually not the responsibility of the programmers themselves but of HR and management. So, when you're mad that the programmer making the UI for something isn't a good UI designer, remember to place some of that blame on the party that hired them or the manager that isn't evaluating the strengths/weaknesses of his employees.
Something to also remember since you seem to not be a programmer yourself is that what seems easy to you is often the most complicated stuff to implement. Programmers are not monkeys, but problem solvers. You give a programmer a problem to solve and they let you know what they see as the easiest/most scalable/best longterm (all depending on the goals that they are trying to accomplish) solution. If you have no respect for them, then go find someone that you do respect to solve your problem. It's difficult to work with people that you don't respect and if you're being difficult, then you can't blame the programmer then can you? You're going to have to at least share the blame for problems that occur when you contribute to the issues.