Ask HN: Tips for a programmer learning design?

16 points by paul-woolcock ↗ HN
I am a computer science student getting ready for my last 2 semesters. I do mostly C && Python, and have noticed that most Python jobs I see posted are for Django developers. Unfortunately, I'm not much of a designer, and am interested to hear from a programmer who "learned" design, as opposed to most of the designers I know, who seem to have been "born with it".

10 comments

[ 5.3 ms ] story [ 37.5 ms ] thread
Lots of online video tutorials, various photoshop books, and the need to want to design something. Not to mention endless use of le best friend Google to look for stuff. It's the only way to go.
But what about the high-level stuff? When is a design "good", what colors should you use, etc. Such information is very hard to find on Google.

Learning programs such as Photoshop and Inkscape, IMO, is the easy part. There are so many tutorials about how to do specific effects. But not about when to apply which design principle and such.

In my honest opinion, you won't find any such useful information. I've seen horribly design sites convert extremely well and visually appealing sites convert extremely well. Design principles can be broken down into so many broad tangents beyond visual looks that it gets ridiculous. While there are some books that touch on various stuff, in my honest opinion, the best way to learn UX is to really just try various stuff until you understand the basic underlying principles that meet your specific site needs.
I learned a lot from and like http://24ways.org. Highly recommend scanning through their articles for things that interest you, especially ones on prototyping without Photoshop.
>"I am a computer science student"

Take a studio art course. It will require a high level of commitment which is the only way to learn design.

[edit] It also has the potential to make your resume stand out among a stack of recent CS grads.

Learning by example worked for me. Took several years but I think I am now getting pretty good at it [0].

PatternTap [1] and website design galleries like SiteInspire [2] are invaluable resources for realizing what it is that you like and trying make sense of the design patterns and elements. Dribbble [3] is a great resource too, but you can be easily overwhelmed by it.

So basically just sit down and start looking at other people's work. Analyze why this subjectively looks better that that and you will see the patterns emerge, e.g. generous spacing works really well, and so does contrast, slight texturing goes a long way in certain cases, etc. This will lay a groundwork for general feeling of the design.

Some time after start learning tools (like InkScape, PS or Illustrator) and start reproducing other people's work. This will develop motor design skills. Accenting, nuancing, coloring, pixel-level effects, etc.

I find learning by example a far better approach than going to the classes where you are presented with an already digested version of information; and not shown how best practices compare to not so best practices. Some formal design tutoring is certainly helpful, and it can be done with books and reference materials on as needed basis. This is especially true for composition and typography.

[0] http://dribbble.com/apankrat [1] http://patterntap.com [2] http://siteinspire.net [3] http://dribbble.com

(edit) And no designer is "born with it". They just don't show you their early (crappy) designs, that's all :)

That's a great progression you've outlined there (and looking at your work, it has clearly worked well). I think the whole process will go more smoothly if there is a framework within which to make those observations. Understanding the philosophies behind design principles, typography, geometric relationships, use of white space, composition, and color theory will make it easier to understand what you're observing.

So, I also suggest my own book, which comes out in September, and will hopefully provide such a framework for programmers learning to design: http://designforhackers.com

I'm not a good designer by any means, but I've learned a lot by finding sites I like and just poring over their CSS to find out why they did what they did.