It is a good idea for any software developer to be at least conversant in the issues surrounding human factors and visual design. You may need to work closely with specialists in these areas, or at least you'll need to know which areas deserve attention from someone besides a computer scientist. Many bad interfaces come from software designers who aren't aware they are doing anything wrong - they are blind to their own weaknesses. Human factors is the study of people's characteristic needs and desires - what should be considered and accommodated in any tool. Cognitive psychology considers how people think and learn, clearly a valuable thing when you are making choices about displays and controls.
Visual design encompasses layout, typography, the use of color, symbolism and animation.
Increasingly, the generation and interpretation of sound are part of interface design. Very often, the user interface accounts for a large percentage of the code in an application. As a consequence, managers, value people who have good skills with interface tools and windowing systems. Communications and Networking , distributed systems. It has become the norm for computers to be connected to other computers, either through private networks or public networks like the Internet.