Fog Creek Software
Discussion Board

Designing, can it be learned by programmers??

Just wondering, I am a VB / ASP programmer. I am not claiming to be very good but I seem to get most task done with some satisfaction and skill. But when it comes to designing, I am producing crap..and one customer did say it to me face recently.

After a lot of thinking, I asked a design student to change the design for me and he came up with a brilliant sample in like an hour. And I spend three days to produce garbage.

Since programmers are logical and analytical by nature, can they design as well. I mean not simple designs but really cool ones. Do you guys do the designing part yourself and only do programming or what???


Saturday, October 12, 2002

This question is the same as saying
"Massage, can it be learned by physiotherapists??"
"Car Mechanics, can it be learned by engineers??"
"Painting, can it be learned by sculptors??"
"Gardening, can it be learned by farmers??"

It's pointless, maybe you are just a really, really bad designer.

Why am I even bothering?
Saturday, October 12, 2002

Unless you're not intelligent and can't learn new things... I don't see why you should have a problem. If you put the same amount of time, effort, and resources into learning design, then it's a no-brainer, you can become good. But is that what you really want to focus on? Don't try to be everything to everyone. Focus on what you like doing, and do it well.

Carl Sagan
Saturday, October 12, 2002

I think it is in your interest to at least become a reasonable designer. Becoming great requires lots of work like everything, but becoming reasonable just requires learning a few rules and fooling around with them a bit. Learning what not to do won't make it great, but it will certainly allow you to avoid crap.

The list is fairly long, but they fit into a few themes:

- Don't over do it - use only 1 or 2 fonts, 3 or so (balanced) colors, don't cram stuff in, don't use any crazy filters or effects. Probably use a plain white bkg. Avoid stretched metaphors. Basically be conservative (but vote for whomever you like).

- Don't cloud the message - keep things as simple as you can, and make sure background stuff isn't noticable. Use a lot of blank space, and surrond more important things with more space. Space is good, clutter is bad. One main message is good. It is harder than most people think to design with too much blank space - try it, it is a weird thing. Don't think of it as wasting paper, think of it as saving ink ; ).

- Balance things. Look at all the objects and make sure left and right, top and bottom are about balanced (meaning appropriate prominece). If you take a pencil and an hour, and fill little boxes with shapes, you will see and understand the effects of balance. It is hard to explain, but easy to understand. It doesn't have to balance, but it has to have a reason not to if it doesn't. Look at color and contrast etc too. You don't have to get scientific, it is pretty much intuitive after you bother to check.

- Keep track of the order of things. People should look at the important things first, sub sections second, details last, fine print never. Also it should be a no brainer to find the second paragraph after the first etc.

- Don't get creative. Things like standards and templates and existing work is generally pretty good. Look at that and copy the jist of it. Copy copy copy. Using a few standard little tricks, like large first capital letter, or the little bars you see all over magazines gets you very far. Remeber you are trying to get the user NOT to notice or comment on the design. Eventually you will come up with your own style (= opinions) if you want to take it that far, so just be sure to copy what you like.

- be consistant. If you use a font, stick with it - use the same colors everywhere, make sure your shadows always fall in the same direction etc. Just like with a programming style, you at least want to have a standard style/naming etc and stick with it throughout your program. Which standard is better is a debate for another day.

I'm sure you could read these types of things and apply them to programming, or anything people do. And of course you can break all these rules once you know them, just like anything else... Don't listen to "artists" who will tell you things like "free your mind from impure thoughts" etc - first learn the basics, then do the drugs. The basics are easy and extremely powerful, you could double your ability in a day I bet. It not only isn't that hard or mysterious, it is actually a very similar thinking process to desinging a program imo. Just a long list of choices and tradeoffs.

Robin Debreuil
Saturday, October 12, 2002

Don't listen to "artists"... "free your mind from impure thoughts"?

Actually I've heard that "free your mind" crap primarily from managers!  An empty mind is a controlled mind!!

Creativity isn't possible in a vacuum... and it certainly won't be found by mechanically following rules.

Joe AA
Saturday, October 12, 2002

This from Joel's book reviews:

"The Non-Designer's Design Book"

It won't turn you into an artist but it explains 4 principals:
Contrast, Repitition, Alignment, and Proximity, that can make your stuff look a lot better.

Saturday, October 12, 2002

I totally agree Joe : )

The one thing I think people often misunderstand is that they think design needs to be creative. In fact most design is about communicating an idea effectively. If anything needs to be creative, it is the idea, not the design.

Robin Debreuil
Saturday, October 12, 2002

Unless you really want to learn desiging GUIs I don't see why you should learn it. Now, if you're a one man business that's different but if not you should leave this to the designers and do what you're good at - coding.

Saturday, October 12, 2002

Patrick wrote:

"Unless you really want to learn desiging GUIs I don't see why you should learn it. Now, if you're a one man business that's different but if not you should leave this to the designers and do what you're good at - coding. "

If you're suggesting that a lot of companies have full-time user interface or graphic designers on staff to make GUI decisions for the software developers, I'd have to say that I haven't worked at or for any of those companies.  It has been my experience that in many situations/companies, it usually falls on the software developer to figure out how the GUI stuff (web or desktop based) should be done.

Patrick, if you have the ability to just say, "no, I won't or can't do it" -- more power to you.  Unfortunately, most people do not.

Charles Kiley
Saturday, October 12, 2002

Best advice:  Find a design that works, and rip it off.  Okay, that's a bit extreme, but taking the layout from one site or program combined with the color combinations of another can work.  You can always buy or download for free, UI widgets, fancy buttons, etc.

Copying working asthetic designs happens all the time in other fields, such as construction, automotive design, and print advertising.

I don't have any links handy, but there are sites dedictated to lists of links to sites that have "good design".  A yahoo search might turn these up.

You have negligible legal worries if you're mainly using colors, layout, site organization, etc.  Just make sure you don't carbon copy or something like that.

Go with what's proven; don't reinvent the wheel.  Best of luck!

Bill Carlson
Saturday, October 12, 2002

suhu, it sounds like you are not a good designer. I suspect you might not be a good programmer either. Sorry.

Engineer and Designer
Saturday, October 12, 2002

Engineer & Designer,

Yeah, Ok, whatever. Real helpful you are there. So impressed I am with your ability to communicate and create a good impression.


There is some confusion here which you need to clear up -- some people think you mean design in the sense of color, layout, web page and dialog UI design.

Others think you mean software engineering or architecting level design - deciding on classes, partitioning functionalitny, or whatever.

Which are you asking about? Was the person who helped you a Software Engineer or a Graphical Artist?

Sarain H.
Sunday, October 13, 2002

I'd like to see some of the work (links anyone?) of the programmers who think they have exceptional talent as graphic designers.


Why not check out this book recommended by Joel:

The Non-Designer's Design Book

Guy Incognito, MCSD DOA PITA
Sunday, October 13, 2002

Er... are you saying you don't think its possible to be good at both? Sorry, I can't tell your tone from the message, though 'exceptional talent' sounds a bit like a setup ; ). There are many many I know who are good at both, I can give links if you are serious...

Robin Debreuil
Sunday, October 13, 2002

What about Joel's book, UI Design for Programmers?

I was decent at drawing and art in grade school and high school, but in the programming world it takes me eons do edit a webpage into a version I find satisfactory. It can be fun if it's on my time but at work it is a distracting time sucker that

For now my strategy is to resist the temptation to make the design look really cool, accept default designs whenever I can and focus on the programming. (The temptation can be strong though).

Thursday, October 17, 2002

*  Recent Topics

*  Fog Creek Home