177 karma · joined August 31, 2010
The activities of designing and of coding overlap extensively. Both require a clarity of communication, a deep consideration of the purpose of the thing to be designed/built, and a sense of taste.
If in the habit of extracting general principles from concrete examples, coders can become better coders by learning aspects of design and vice versa.
Many of the concepts in a 'coder' book like 'How to design programs,' for example, are readily applicable to UX design, e.g: refactoring, wishful thinking, generalisation of purpose, and the control of complexity by use of 'black boxes.'
Likewise, a 'designer' book like 'The design of everyday things' is full of stuff that applies usefully to the activity of coding, e.g: the importance of meaningful feedback, and of ensuring a clear mapping between expected actions and their outcomes.
These correlations aren't everywhere to be found, though. But I've always found interdisciplinary people to have the freshest approaches.
(def map
(-> |list f|
(? (== list []) []
// (: (f (. list)) (map (.. list) f)))))I find it inevitable that I study a new thing in terms of what I studied before. So I approached programming with an aesthetics/communication mindset.
If you are going the other way, you mind find it useful to approach design via quite formal subjects like proportion, symmetry, colour theory, and user behaviour. These have syntax and grammar, like any programming language.
Don't worry about photoshop or whatever. Don't focus on 'drawing graphics,' but on usability. Your programming background will serve you well in that.
What and I trying to day? Basically, you're probably already further down the path to designerhood than you might think, since you're a practical person who needs to communicate and handle complex systems.