FAQ: Should UX Designers Know Programming and Computer Science?FAQ: Should UX Designers Know Programming and Computer Science? The post sharing ideas on one of the debatable questions on the crossroads of design and development: do interface designers need to know how to code?
The question if UI/UX designers should know how to code is one of the “eternal” discussions in the design sphere. The more diverse UX design becomes in its evolution, the more opinions arise. Having answered several questions of this sort on Quora recently, we would like to share our ideas with readers here as well.
What is the difference between UI/UX designer and programmer?
UI and UX design present different aspects of creative flow for digital products. Basically, UI design aims at creating an effective and attractive user interface while UX design aims at providing a positive user experience. Interaction with a product via the user interface is a part of user experience, so we UX design as a creative field is broader and includes UI design as its integral part.
Work on information architecture for a website UX
Working on the UX and UI for a digital product such as a website or mobile app, designers have to concentrate on such core aspects as:
- usability (the product is convenient, clear, logical and easy to use)
- utility (the product provides useful content and solves users’ problems)
- accessibility (the product is convenient for different categories of users)
- desirability (the product is attractive and problem-solving, it retains users and creates the positive experience which they are ready to repeat).
UI design of some screens for Home Budget App
Programmers or developers are people who actually build the website or mobile application planned and designed by UI/UX designers. They breathe life into the plan, with the code they create the live product which users can actually apply to solve their problems and satisfy wishes. Programmers transform the structure and visual performance thought out and created by designers into the real interface.
How interfaces look from the programmer’s point of view
Therefore, to see the difference, we can apply the metaphor of an actual construction site:
– UX designers are architects who come up with the general concept, its structure and the flow of interactions as well as a variety of factors which influence positive or negative user experience (in case of real building it could include transportation, quality of air, availability of shops and entertaining points, educations and sports facilities, neighbors, etc.).
– UI designers are architectural visualizers who find the best solutions for visual performance of the object corresponding to the style, the environment, user’s expectations, and aesthetic needs based on the already agreed architecture, structure, and core factors of interaction.
– Programmers are actual builders who create the final object in reality. As well as on the building site, they have various specializations: some are good in creating the foundation, others know how to realize visual features made by designers, and some of them work out effective interaction with this object in particular environments and for new requirements which can arise later.
Do UI/UX designers need to know computer science and programming to create top-quality user-friendly designs?
This is the question in which the terms should be clearly defined.
Computer science in its traditional understanding is a broad comprehensive study including theory and practices for making and using the computers (now it can also go further to other kinds of digital devices and gadgets). It is often characterized as the scientific and practical approach to computation as well as study, exploration, and automation of diverse operations with data. Therefore, the person with a major in computer studies is usually a specialist in the theory of computation and design of this sort of system and hardware.
In this perspective, yes, knowledge of computer studies is a great basis for creating problem-solving and user-friendly interfaces. UI/UX designers are professionals dealing with much more than just the looks of a website or an app: they think over the logic, transitions, usability, accessibility, emotional and aesthetic appeal, data presentation and lots of other things forming the whole user experience. Whatever is the way to get this knowledge – higher education, courses, apprenticeship, self-education, etc. – it underlies the necessary basis of knowledge which allows a designer to understand human-computer interaction for appropriate and effective design solutions. The knowledge of computer science is an important factor in being a competent designer of modern user interfaces.
As for programming, the situation is different. There are, basically, two camps of extreme positions. One side claims that programming/coding is the absolutely vital thing to know and you cannot provide really efficient UI/UX without knowing how to code. The other side believes that the knowledge of programming kills creativity in design as in this case designer is limited with the rules, standards and restrictions of development. Both positions are supported by numerous articles and discussions and both somehow make sense if you think about the issue in the perspective of real design projects.
On the basis of our team experience, it’s easy to state confidently: you definitely CAN be a competent and successful UI/UX designer for mobile and web with no background or major in programming.
Basically, the task of UI/UX designer is to analyze the target audience and their needs, to make a research, to create an efficient layout and well thought-out system of transitions, to wrap it in an attractive but highly usable and clear visual design and to test the solutions. UI/UX designer is not a developer: they work on the same product but from different sides, as well as for example a writer, an editor and a publisher work differently on the same book. However, it is obviously pleasant for developers if a UI/UX designer is able to produce designs that consider at least the basic limitations and points of programming and coding.
You can find a great bunch of successful experts in app and web design who have never had anything in common with the sphere of coding and development and provided great design solutions with a very high level of usability. Nevertheless, in the case of high-level specialists, it’s impossible to say that they are totally out of the issue. Designers, who are keen to create viable product designs, usually tend to get acknowledged with the general understanding of development basics. That really supports the designer in providing effective design as possible, considering all the stages of its creation and implementation. However, it doesn’t mean that without this sort of knowledge it’s impossible to create good designs. Moreover, if designers work in a team with developers, they can create designs without knowing how to code even easier as they are supported by developers who control the process from the perspective of coding.
The happy medium should be found in this issue without any extreme positions. If designers tear themselves too far away from development reality, they risk losing viability of their designs and could end up having a great deal of amazing and terrific concepts none of which will be implemented in real products. On the other hand, if designers concentrate too much on the limitations of coding, they risk becoming unable to think out of the box and provide original design ideas. Keeping a wise balance provides harmony.
So, to sum up, a person can become a successful UI/UX designer not knowing programming and development; however, this kind of knowledge can be supportive if used wisely.
Working on interfaces created from the first line of design to the real digital product, like Upper App and Toonie Alarm, we find thoughtful and organized teamwork the most effective workflow: UI/UX designers, developers, content, and branding specialists have to be involved in the creative process from the very beginning and combine their strongest sides into one product. The wise delegation of tasks works more quickly and effectively than the attempts of one person to explore and cover everything. And this sort of teamwork lets designers and developers share their knowledge and understand each other’s decisions for the sake of good outcome solving users’ problems.