HACKER Q&A
📣 atomicnature

Best UI design courses for hackers?


Hello HN,

What have been some of the best UI design courses, in your experience?

I'm aware of avant garde works such as Bret Victor's "Magic Ink" and love it.

At the same time, I'd also love to learn more about more "down to earth" tutorials/examples/exercises/courses to build practical UI skills. Something above "react tutorials", but something below Victor's "Magic Ink"

Big plus point if there is a coherent set of principles/system propounded, to make it easy to apply in our specific context.


  👤 druskacik Accepted Answer ✓
Refactoring UI is a book you can read in a couple of hours, but it helped me immensely to design my projects. It does not go to a great depth, but it's very useful for simple and quick hacking.

https://www.refactoringui.com/


👤 zer0tonin
What helped me go from being completely unable to design a simple form to doing okay looking UI (not great yet) was simply to learn to draw. The best UX designers I've had the occasion to work with came from art school backgrounds, so I think there's definitely something to it.

After grinding drawing for a while, it becomes very easy to simply see what works (and what you like) in other software UI-wise, and re-use that on your own projects.

One recommendation I have is not to try to over-focus on the design of single components (ie. buttons or form inputs). It is fine to reuse a lib for that. What's really going to make the difference is how you organize them across the page, and the colors you pick.

Edit: since I haven't really mentioned any courses: proko.com has great drawing courses. For books, check out Andrew Loomis' Fun with a pencil and Betty Edwards's Drawing on the Right Side of the Brain.


👤 hypertexthero
The following will give you a good understanding of UI design.

Number 3, Designing Interfaces, has a coherent set of principles.

1. [Don’t Make Me Think](https://sensible.com/dont-make-me-think/)

2. [The Design of Everyday Things](https://en.wikipedia.org/wiki/The_Design_of_Everyday_Things)

3. [Designing Interfaces, 3rd Edition](https://www.oreilly.com/library/view/designing-interfaces-3r...)

4. [Nielsen Norman Group Interaction Design: 3-Day Course](https://www.nngroup.com/courses/interaction-design-3-day-cou...)

5. [Apple Human Interface Guidelines](https://developer.apple.com/design/human-interface-guideline...)

6. [A Dao of Web Design](https://alistapart.com/article/dao/)

7. [Usability Testing](https://www.nngroup.com/courses/usability-testing/)

It’s important to practice, not just read. The term is “dogfooding”.

https://developer.mozilla.org/en-US/docs/Learn/Getting_start...

Finally, probably first of all, it’s worth thinking about whether your user interface is harmful to the people using it, and changing if so:

https://www.deceptive.design/

https://www.humanetech.com/key-issues


👤 fzeindl
Apples Human interface guidelines helped me a lot in improving the windows gui application, apps and websites I was developing in my career. After reading them I was definitely able to create much simpler UIs. (Example: use verbs in message-boxes. Not: Delete? Ok/Cancel, But instead: Delete XYZ. Delete/Keep.) https://developer.apple.com/design/human-interface-guideline...

👤 ironskull
It's definitely not cheap, but I would be surprised if Erik Kennedy's https://www.learnui.design isn't the best course out there. In fact, he has three courses:

1. UI design

2. UX design

3. Landing Page design

I own all 3 and they are among the best purchases I've ever made, even at the cost. Erik is a former programmer who has taken the engineers mindset and systematically analyzed and broken down the various parts of UI design. It is very practical, which was something that was lacking in most resources I found when I was in your position.

If anyone is interested, I would recommend starting with the UI course, which probably runs around $1000. Unfortunately It is only available at certain intervals, probably every 6-8 weeks.

If the cost is intimidating, you can get a lot out of his blog, which will also give you a taste of how he thinks about design: https://www.learnui.design/blog/.


👤 coldbrewed
I found Design for Hackers[1] to be an incredibly informative book; it provides a great deal of insight into UI patterns, color schemes and selections, and overall UI design. It's definitely more oriented towards graphical UIs but provides enough general insight into design considerations that you could generalize it for TUIs and CLIs if needed.

[1]: https://designforhackers.com/


👤 brainbag
I am a longtime developer but I'm passionate about design and UX. I'm always on the lookout for materials that I can give my team and other developers to help them get better at design. It's not a course, but "The Non-Designer's Design Book" (ISBN 978-0133966152, Robin Williams) is the best material for design fundamentals I've found. It's very approachable for anyone and it's broadly applicable across all kinds of design. Everyone I have convinced to read it has loved it, and I've seen an improvement in output and understanding. I highly recommend this if you have an interest in design.

Refactoring UI is also valuable and can be impactful, though it's heavily web focused and is more like a Web Component Design Cookbook rather than foundational knowledge.


👤 j3d
Not sure if this fits your goal of a UI design course, but I found Josh Comeau's CSS for JS Devs course to be a great way to learn the fundamentals of CSS in a way that resonated with my developer mindset.

https://css-for-js.dev/


👤 civilitty
> At the same time, I'd also love to learn more about more "down to earth" tutorials/examples/exercises/courses to build practical UI skills. Something above "react tutorials", but something below Victor's "Magic Ink"

I have no recommendations for UI in general but for practical UI skills I really like Every Layout [1] which covers common page layouts and how to make them responsive beyond just media queries.

[1] https://every-layout.dev/


👤 gjsman-1000
I wouldn’t say it’s a course as much as a book, but I found Refactoring UI to be pretty helpful. It’s done by the folks that brought us Tailwind.

https://www.refactoringui.com/


👤 no_wizard
In addition to the many great recommendations already posted in replies I recommend reading and watching videos about how Steve Jobs approached product design, and watch some infamous Apple keynotes.

A part of this is developing a sense of “taste”, which I strongly believe is possible to do but you have to have a certain mindset to do it. This helped me immensely once I realized it.

One great website with great tidbits around the creation of the original Macintosh is Folklore[0]

[0]: https://www.folklore.org/index.py


👤 karaterobot
As a designer, I think the two best exercises you could do would be:

1. Look at designs that work or do not work, and ask what makes them work or not work. You may have a gut reaction: examine that reaction in cold blood.

But that's basic stuff. After you do that, you should ask what the designer had to trade off in order to arrive at that solution. Design is how you solve a problem given a set of goals, requirements, and constraints. If you understand the problem at that level, it's a very short path to the design. It's trivial to say "this designer was bad at their job" if you see a bad product, but it's more instructive to understand all the inputs into that bad decision, rather than just judge the output.

2. Give a shit. This is what makes someone good at their job—any job. Sweat the details. Do not trust a checklist of steps for "how to do design good" any more than you'd trust a corresponding recipe for "how to do programming good".

The reason I went from front end development to design is that I found I cared more about getting it right than the original designer who handed me the mockups did, and realized I should be sitting upstream of where I was. If you don't give a shit, no course is going to make you a good designer, and if you do give a shit, you won't need a course. Along the way, sure, you have to pick up some basic skills, but that's trivial, and ought to be second nature for a hacker.


👤 hackermailman
Daniel Jackson's book https://subconscious.substack.com/p/concept-design-in-three-...

I use it all the time after reading it for example they redesigned git into gitless using these methods to audit and find redundant or confusing features.


👤 patcon
I recall the HackDesign website/course being great a few years ago! Not sure about now, but used to be free...!

https://hackdesign.org/


👤 WillAdams
An early text on this was:

https://www.goodreads.com/book/show/344729.Designing_Visual_...

(if it's at all possible, get a first edition which has good quality reproductions of the screen grabs)

A list of the chapters gives a good idea of the content:

- Introduction

- Elegance and Simplicity

- Scale, Contrast, and Proportion

- Organization and Visual Structure

- Module and Program --- "The module is a scale of proportions that makes the bad difficult and the good easy" Albert Einstein (to Le Corbusier, 1964)

- Image and Representation

- So What About Style?


👤 prossercj
It's not a full course, but this set of principles influenced my approach to design:

https://anthonyhobday.com/sideprojects/saferules/

EDIT: To be clear, not the author. Just found this on HN at some point


👤 photon_collider
I found the book Practical UI (https://www.practical-ui.com) useful for learning practical design tips. I still reference it from time to time in my work.

👤 keiferski
It's not a course, but I recommend the book "Universal Principles of Design." It's a set of principles covering various aspects of design, both for UI/graphics and 3D physical objects.

👤 ndiddy
Not a course, but the best resource I've found for UI design is the Windows 2000 interface guidelines book: https://www.amazon.com/Microsoft-Windows-Experience-Professi... . It lays out everything (big and small) that made older Windows versions nice to use in an easy to digest format.

👤 catalypso
Adding two resources to the mix:

1. https://growth.design: case studies + cognitive biases & principles that affect your UX

2. https://lawsofux.com/: a collection of best practices that designers can consider when building user interfaces.


👤 panic
There’s no coherent set of principles or system for UI design. It’s all about what will work or not work for real people. Paying attention to your own feelings about what works or not is the first step—listening to your users and understanding their feelings will take you the rest of the way.

👤 abhinavsharma
I'd like to add https://growth.design/psychology to an already great list that's building here.

👤 esafak
Can anyone recommend any online communities to have designs critiqued?

👤 ilrwbwrkhv
None. The thing is for UX you have something like don't make me think but UI is a matter of taste so everyone has their own rules which might not appeal to you. You can check out the windows 95 design docs as that might give you some ideas and then I would suggest using an uncommon UI component library and let that do the heavy lifting till you can hire a designer.

👤 ChicagoDave
I’d add an additional request. Are there any materials specifically about touch interfaces?

👤 robertlagrant
I think the best practical approach for designing UIs is to download (and buy) Balsamic[0] and use that to design UIs. Cut through the nonsense of colours and pixels in the first instance and just lay things out logically and simply.

[0] https://balsamiq.com


👤 waprin
I am a long-time developer who's always dreamed of building an indie software business but design skills hold me back.

I recognize this and get plenty of feedback around it. So this year I set out to improve to at least try to get to "mediocre" instead of "terrible".

Refactoring UI and Erik Kennedys blog / class are mentioned and are great resources and I own both.

I did Dribbble's Figma UI design class which was $600. It's biggest strength is that its a cohort based class, and cohort classes tend to have much higher finishing rates than self-paced classes. Their instructor will review your Figma designs but only if you finish in time so if you want to get your $600 worth you better open up Figma, so I recommend it for that reason. Kennedy's is self-paced and while it's extremely high quality, I haven't even worked through most of it for this reason.

Of course, the single most important thing you can do is build lots of UIs. If you're like me, your UIs will suck, but if you do it more regularly, you will also notice more UI/UX techniques on other websites. I save all those in a Notion database organized by category and refer to them.

One thing I almost never see mentioned but it was a really good piece of advice. I told someone that I was between hiring contractor designers for my project, and trying to improve at design and do it myself. One person told me, it's not mutually exclusive. So you can design an app, and it will probably look bad. Then hire an experienced UI/UX designer off Upwork to do a better job. And pay attention to the decisions they made and the decsions you made and compare the difference. Figma is a great tool these days because it's much more collaborative than just getting a big stack of PNGs or SVGs at the end, you can discuss design choices in Figma comments as the designer works.

Another thing worth noting - professional designers will make several versions and iterations of everything, each screen and each component on that screen. And then pick the best one. The Dribbble instructor said, the best design is almost never the first one. This is time consuming and tedious if you don't love design but it's how you get the best results.

If you just have a one-off project and don't truly care about improving at design, the simplest option is to hire a contractor. UI/UX is not something you learn in a weekend and then you're good to go, it's more like learning a language or an instrument in that you're either going to invest a lot of time to learn it well or you're going to suck. It's pretty affordable to hire-out because it's mostly up-front work.

Hiring contractors and spending for classes is the expensive route but spending money can expedite the process. But, there's lots of free resources if you're broke. The single most important thing is design a lot, and pay attention to other people's designs and what they're doing.


👤 b2bsaas00
Refactoring UI

👤 adriangrigore
Best rule I believe is just iterate until satisfied.