Why do so many programmers hate UI work? Because it is tedious. Especially, for the Web, but other types of UI are only slightly easier. Layouts, margins, paddings — neverending stream of little tweaks to make it look OK on all sane environments, and somehow this freaking button sometimes overlaps that input field. Rrrr! And yes, it should not hang on button clicks, which means a lot of asynchronous programming, which is a nightmare.
And don’t even speak about aesthetics and usability! Choose right colours, element sizes and locations, find/draw images and put them where they fit, think about user workflows — isn’t it a designers’ or Ux specialists’ job?! Leave me alone, I’m a programmer. I work with backend layers, where everything is straightforward and linear, there are no buttloads of different environments to adjust to, and design is guided by mere logic without pesky fussing with ‘user friendliness’ and ’beauty’!
You see, this is the problem. Making backends is not conceptually different to making UIs. You need to do a lot of tedious work (if anything, backends are even more tedious, than frontends). You need to have a good taste to make good backends. You need to think about users and how to make their lives better. No difference whatsoever.
There is just one thing, which is very different. If your UI sucks, it is obvious right away. Anyone without any technical background can easily tell, if your UI sucks. Not so for backends. Backend suckiness is often hidden from users. Moreover, it may not be apparent to other programmers, until they dig deep enough into your code. And an eye-bleeding UI does not have that many excuses, as a mind-blowing architecture.
Isn’t it the reason why many programmers don’t like working on UIs? Because UIs make their overall helplessness obvious to everyone? Think about it next time you’ll be dreaming of backend tasks while writing CSS…
P.S. I don’t mean designers or Ux experts are useless. There is a huge gap between adequate UI and great UI.