Actually HCI (basically the computer science of user interfaces) is not a simple concept picked up through hacking. You should at least take your university's course(s) as a good starting point. Read Donald Norman's books; not directly about programming, but fascinating stuff. Nielsen is considered a guru of Web usability, and the thin client interface is predominant nowadays.
At least with Java for example, I don't believe there were any good GUI/HCI books out for years. The only offerings were ho-hum AWT, then Swing texts. Sun finally came out with one (Java Look & Feel Guidelines) a few years back. I read most of it online, and it's high quality but falls short because it doesn't demonstrate proper code or patterns to implement successful designs. It needed more practical coding guidelines IMO.
Independent of Swing, part of what I'm saying is the vast majority of hackers and wannabe hackers are not successful GUI designers.
Edit:
Another reason exacerbating the Swing GUI usability situation is how relatively easy it is to program with the API. It may not be drag and drop just like VB (but there are too many two-way GOOD visual form designers for Java to count out), but even coding by command-line is quite accessible. Easy to pick up, but obviously challenging to master.
Btw, how do you like the MRJ for OS X? It's up to Java2 1.3 now? I wish they'd hurry up and port Apple's nifty shared memory JVM feature to other platforms.
