
Getting Comfortable with the Softer Side of Development - fogus
http://prog21.dadgum.com/175.html
======
rolleiflex
>Learn basic graphic design. Not so much how to draw things or create your own
artistic images (I'm hopeless in that regard),

This is called illustration, not graphic design. However,

> ..but how to use whitespace, how fonts work together, what a good color
> scheme looks like. Find web pages and book covers that you like and
> deconstruct them. Take the scary step of starting with a blank page and
> arranging colors and fonts and text boxes on it. Hands-on experimentation is
> the only way to get better at this.

Your description of graphic design is quite spot on. I would also recommend
using a pen and paper, and trying to draw an UI with those—the most basic you
can get without getting tangled into specialty–tools such as Illustrator and
else. If you end up with an UI you are satisfied with, draw the next screen,
i.e. what happens when an user clicks a button. Do a few of these and get an
user to use it, when he clicks on something, replace the page. It's funny, but
it works: it's called paper prototyping, the easiest and cheapest (both time
and cost) way to get valid, useful feedback on design of user interfaces.

~~~
Illotus
This is great advice, paper prototyping is really under utilized technique. It
is really good way to concentrate on the interactions without getting too
bogged down with details.

------
npsimons
_all it takes is reading a review of OS X or Windows where hundreds of words
are devoted to incremental adjustments to the Start menu and dock to realize
those fluffy details aren't so fluffy after all. They matter._

Yes, they matter very much, and yes there are some things you can nail down in
the UI arena; but point number two (confusing OS with UI) is very cogent,
especially for computer science. Please don't muddy the waters in CS curricula
anymore than they have been. This kind of stuff is CS, but it does not belong
in a proper OS course. It belongs in a UI or human factors course (which I do
think more people would benefit from than an OS course; most people aren't
going to be working on OS level stuff, even if understanding would help them
be better programmers).

~~~
Dirlewanger
Agreed. I don't really get the point of this post. Understanding OS
fundamentals shouldn't be conflated with understanding interaction design
principles. They're related, sure, but their cores are not. Talking about OS
UI design principles would be relevant at the end of the course in order to
demonstrate some of the concepts learned.

------
pnathan
These are good points, but, not computer science. These are HCI. Maybe a HCI
course should be a required part of CS curricula. That can be debated. I don't
see anything wrong with it.

Anyway. "Foster a minimalist aesthetic".

Why? Why not baroque? Why not "classical" ala Mt. Vernon? Why minimalism?

~~~
YellowRex
It's trendy and easier to do an okay job with than the kind of baroque
skeuomorphism prevalent in iOS.

See <https://news.ycombinator.com/item?id=5698352>

------
YellowRex
One of the courses I took as an elective in my first semester in a Master's in
CS program was a course in Human-Computer Interaction, which included user
testing off-campus.

It was the second-most useful course I took, after a great "studio-format"
software engineering course, which itself emphasized a number of soft skills
such as writing and presenting.

------
jbranchaud
It would be interesting if an operating systems course covered these things,
but I think what you are looking for is a Human-Computer Interaction (HCI)
course.

My university offers one or two, but I don't know how common this is across
other institutions.

------
programminggeek
There is a difference between product design and product engineering. It's
like the difference between architect, engineer, and construction worker.

Now, in software, there is maybe a place for people who know all three areas
pretty well, but it's not a well defined job role in most companies.

~~~
bgilroy26
It's true that dividing labor that way is necessary to get projects of any
significant size to work.

On the other hand, I think the level of understanding gained by walking in ux
and graphic designers' shoes the way that the article describes would be a
great boon for engineers whose work affects and is affected by the work of
such folk.

