>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.
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.
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).
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.
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?
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.
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.
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.
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.