TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: How can a programmer learn graphic design from the ground up?

78 pointsby tianyicuiover 14 years ago
(I'm a native Chinese. Being a spelling/grammar Nazi to me really helps me. Thanks.)<p>Hello HNers,<p>I'm a college student and a programmer. My dream is one day I will have my own kick-ass startup.<p>I know how to <i>write</i> clean code; but what I don't know is how to <i>draw</i> things with paper or CSS or Canvas or Photoshop or anything. I can implement Linux device drivers, purely functional data structures, lexers/parsers or socket servers; but I can't even design a simple logo or a good-looking webpage. Sometimes I do have ideas how the logo/webpage should looks, but I just don't have the ability to draw (implement?) them. To be clear, HTML or CSS is just another programming language for me, but I only know the syntax and grammar. I don't know how to do graphic design at all!<p>I want to learn graphic design, both for my current projects and for my future startup (same reason with the suggestion that "non-technical" person should learn to code). I want to have basic skill on how to use computer to draw icons, logos, buttons and webpages.<p>But I have no idea what to do and how to start. How can a programmer learn graphic design from the ground up? Should I learn drawing in pen and paper first? Or should I learn Photoshop? Or should I just learn how to draw by writing code in CSS/Canvas? What books/websites can you recommend? Is self-learning enough or a mentor/teacher is required?<p>I'll appreciate your advice, thanks!

25 comments

astrodustover 14 years ago
A large part of becoming a better designer is in studying the design of others so you can recognize what design actually is. It's in deconstructing things to identify what techniques were used, what layouts were employed, what the rationale might have been behind various decisions along the way.<p>It cannot be over-stated how important it is to be able to recognize design in order to be a designer. While you won't need to be able to identify typefaces at a glance, you should be able to understand the fundamentals. You should be able to identify short-comings and be able to think up ways to remedy that. Like programming, a lot of design is problem solving in the context of many constraints.<p>The other part is simply doing it. Design things. Constantly. Make up logos. Work with type. Whip up experimental layouts and see how they work, look for faults, and try to fix them. Re-design sites you're familiar with, even if you're simply re-implementing them, so as to understand how they work. The way you gain experience is by exploring and doing.<p>Everyone focuses on tools as part of their problem. "If only I knew Photoshop better, I'd be an amazing designer," they say. This presumes that Photoshop does the designing for you, which of course it doesn't. You can see work from people who think it does where they've turned on every filter, used every plugin, and exercised each font in their "500 Free Fonts and Clip-Art" collection.<p>Obviously you will need to learn some tools. I'd advocate picking a few that will get you the furthest along and learn them well. Instead of knowing a bit of Illustrator and a bit of Photoshop, choose one and double down. You can also do a lot of designing with a pencil and paper if you know CSS well enough.<p>If you're intending to be involved in a start-up, being multi-talented is essential. Unlike large organizations where there's formal departments, you'll often be wearing a dizzying number of hats. You'll be the designer-programmer-customer-support-cleaning-staff-accounts-receivable person and then your partner might be the sales-testing-tech-writer-photographer-blogger person. Rarely do you get to focus on just one thing.<p>Knowing even a little bit of design can help get you started more quickly, get you further along in projects without having to engage an outside designer, and will make your efforts come across more clearly.<p>Design is, after all, not just about pretty pictures but about presentation and communication.
评论 #2017140 未加载
keeptryingover 14 years ago
I'm in the same position as you. And I've been trying to do this without much sucess. And then I found this book and it really has the very basics down pat:<p><a href="http://www.amazon.com/Non-Designers-Design-Book-Robin-Williams/dp/0321534042/ref=sr_1_1?s=books&#38;ie=UTF8&#38;qid=1292437264&#38;sr=1-1" rel="nofollow">http://www.amazon.com/Non-Designers-Design-Book-Robin-Willia...</a><p>After you finish that, you'll be able to put together great wireframes and layouts.<p>For the color part I'm reading a book on color theory. The very first thing I learnt in this book was that there is a reason that beginners cant work with color - because they cant "see" true color. This takes a while - google for "Color constancy"<p>These are the very basic steps that I wish someone had pointed me to ... everyhting else builds up from here.
ookblahover 14 years ago
This is just my $.02. I believe the best way to learn is by imitating. Go on every CSS/Design Inspiration (dribbble, forrst, ilvdsgn) site you can and see what is appealing to you and then try to duplicate it in your own time. Analyze ones that everyone thinks are "cool" and figure out what makes them so. Look up articles on color theory, spacing, typography.<p>It might sound lame just copying a design (note: I don't mean rip then release it, this is just for your own benefit), but by picking it apart you'll slowly be creating building blocks for you to do your own stuff.
silentgrooveover 14 years ago
I've been a designer for 7 years now, and one of the things I did when I was first starting out was find examples of designs I liked and attempt to copy them very precisely. (Should go without saying that this is a practice exercise, not suggesting to rip off others work). The exercise did a few things for me:<p>- helped me learn new software (learned bezier curves by copying the starbucks logo) - forced me to be really attentive to the details of design - got me in the physical habit of making good looking things - let me focus first on the mechanics before implementing my own ideas - forced me to find examples of design to look at<p>I think this is akin to reading someone elses code when learning a new programming language. It is also a great way to study art, drawing by hand others great works. In graphic design, I would focus more on understanding typography and composition (what things are emphasized and how, I.e. scale, color, space) than on learning to draw. You can be a great designer with rudimentary drawing skills.
ygtckrover 14 years ago
If I were you, I would be inspired from <a href="http://www.cgsociety.org/" rel="nofollow">http://www.cgsociety.org/</a> <a href="http://abduzeedo.com/" rel="nofollow">http://abduzeedo.com/</a> <a href="http://blog.drawn.ca/" rel="nofollow">http://blog.drawn.ca/</a> <a href="http://www.logodesignlove.com/" rel="nofollow">http://www.logodesignlove.com/</a> <a href="http://www.davidairey.com/" rel="nofollow">http://www.davidairey.com/</a> <a href="http://www.helveticbrands.ch/blog/" rel="nofollow">http://www.helveticbrands.ch/blog/</a> and will try to create my ideas first on paper with pencil and then digitize them with proper technology, searching for tutorials like the ones on tuts network <a href="http://tutsplus.com/" rel="nofollow">http://tutsplus.com/</a> CG Society is a great place to immerse yourself with graphic design.<p>But I think that if you want to learn graphic design just to create your own design and logo, I would say don't bother. You can easily hire a designer to do that for you and it would be cost effective. Just learn to distinguish good design from the bad and learn to effectively communicate the ideas you have.
评论 #2009713 未加载
ivanzhaoover 14 years ago
If graphic design is the makeup, then typography is the bone. You should start with the bone, and I can't recommend enough of this book: <a href="http://www.amazon.ca/Elements-Typographic-Style-Robert-Bringhurst/dp/0881791326" rel="nofollow">http://www.amazon.ca/Elements-Typographic-Style-Robert-Bring...</a><p>Also, by typography I don't just mean fonts, but also the layout, the structure, the readability, etc.
redmarover 14 years ago
I found this (free) book really useful: <a href="http://designingfortheweb.co.uk/book/index.php" rel="nofollow">http://designingfortheweb.co.uk/book/index.php</a>
评论 #2009070 未加载
lojackover 14 years ago
I'd highly suggest reading "Don't Make Me Think"<p><a href="http://www.amazon.com/Think-Common-Sense-Approach-Usability/dp/0789723107" rel="nofollow">http://www.amazon.com/Think-Common-Sense-Approach-Usability/...</a><p>It's more of a usability book, but it covers some visual aspects to design. Beyond that it comes down to reading, practicing, critiquing and being critiqued. Any time you visit a new website think to yourself: what looks good, what looks bad, what is intuitive, and what doesn't make sense.
venturebrosover 14 years ago
#1 HTML and CSS are not programming languages.<p>#2 you cannot learn how to draw by using CSS. CSS has nothing to do with any of that .<p>Onwards, I am not artistic at all. I made the mistake of going to an art school and it made me hate art even more. I came to the realization I will never ever be able to create mindblowing amazing websites kind of like what you see featured here <a href="http://www.thecssawards.com/" rel="nofollow">http://www.thecssawards.com/</a> and many other sites. I was not born with artistic talent it is something you have to be born with not something you learn.<p>Once I came to the conclusion that I suck as an artist I started to mimic. I mimic other designs and change them up a bit. I learned that it is best for me to keep in a grid instead of breaking out of it (do a search for web grid systems). This has helped me a lot I went from designing websites that looked like they were in the 90s to something more up to date. My sites still look kind of tempalatey but they still have a customized feel to them.<p>I also use free UI elements on my sites you can find tons of them online. For logos I do the same thing I do with websites find logos I like and mimic with my own styling.
评论 #2011222 未加载
noahcover 14 years ago
There are two issues here. Learning how to design and learning the tools of design.<p>I took two digital art classes in college. You could tell who struggled with design and who struggled with the tools. The kids who struggled with the design piece had really crappy images. The ones who struggled with the tools had really simple images.<p>You can learn either/or or both. I focus on really simple design because I don't know photoshop, css, xhtml, etc well enough to pull off complicated designs. However, using simple tools like size, layout, and color you can do a lot.<p>I recommend getting started with blueprint css framework and going from there. You'll learn more about design than the tools, but you'll also pick up some css.<p>As far as self-learning vs mentor/teacher goes. You need feedback. If you can get feedback while self-learning it can work. I know there are some websites out there that can help you with that.
评论 #2009223 未加载
twfarlandover 14 years ago
I've gone in almost the opposite direction, I studied fine arts and have been steadily moving into dev over the last few years.<p>I find it inevitable that I study a new thing in terms of what I studied before. So I approached programming with an aesthetics/communication mindset.<p>If you are going the other way, you mind find it useful to approach design via quite formal subjects like proportion, symmetry, colour theory, and user behaviour. These have syntax and grammar, like any programming language.<p>Don't worry about photoshop or whatever. Don't focus on 'drawing graphics,' but on usability. Your programming background will serve you well in that.<p>What and I trying to day? Basically, you're probably already further down the path to designerhood than you might think, since you're a practical person who needs to communicate and handle complex systems.
cgopalanover 14 years ago
"I want to learn graphic design, both for my current projects and for my future startup (same reason with the suggestion that "non-technical" person should learn to code)"<p>Theres really no strong reason that a non-technical person should know how to code. Which means you do have to get back to the question - why do you want to learn graphic design? If you feel that you want to learn it just so you can do that for your start-up, realize that its not necessary. You can definitely get those things done for reasonable price through sites like 99designs (reasonable even for a start-up budget). IMHO, the best reason to learn graphic design (like most other skills) is because you WANT to do graphic design. In that scenario, how soon you pick it up will not be a factor, which is the way it should be.
评论 #2009432 未加载
petercooperover 14 years ago
There's an HNer writing a book on this very topic based on soke blog posts they wrote. I can't remember who it is, alas, but hopefully this will remind someone who can follow up with some links..
评论 #2009603 未加载
thechangelogover 14 years ago
I had found Andy Rutledge's archive (<a href="http://www.andyrutledge.com/" rel="nofollow">http://www.andyrutledge.com/</a>) to be a really great introduction to design. The 'Practice' section in his archive has some really great introductions, especially his articles on perception.<p>This one is a good place to start: <a href="http://www.andyrutledge.com/gestalt-principles-1-figure-ground-relationship.php" rel="nofollow">http://www.andyrutledge.com/gestalt-principles-1-figure-grou...</a>
blahblahblahover 14 years ago
There are a lot of things that can be learned effectively from books, but I don't think graphic design is one of them. Books can help, but one of the key skills in graphic design is having an internal sense of how a variety of different people with different viewpoints will react to a particular design. I think that skill is best learned through class discussions and the critiques of your peers.
Dramatizeover 14 years ago
All you need to remember is form follows function.<p>This means creating a UI that's easy to use, if you do that then people don't really care about how it looks.<p>Look and Pinboard.com or Instapaper.com. People love the businesses even though the sites aren't pretty.<p>You would get more benefit from learning about how people interact with websites. Sites like useit.com are useful.
juiceandjuiceover 14 years ago
I've been inspired by stuff from Josef Muller-Brockmann. I'm not a graphic artist, but I'm getting this book when I get a chance: <a href="http://www.amazon.com/Systems-Graphic-Systeme-Visuele-Gestaltung/dp/3721201450/ref=pd_sim_b_1" rel="nofollow">http://www.amazon.com/Systems-Graphic-Systeme-Visuele-Gestal...</a>
thereddestrubyover 14 years ago
To answer your questions:<p>1) The same way a programmer learned to program.<p>2) Yes. As practice, draw from real life everyday.<p>3) If you want.<p>4) If you want.<p>5) I recommend reading Drawing on the Right Hand Side of the brain, Don't Make Me Think, and Design of Everyday Things to start.<p>6) Whatever you feel works best for you.
评论 #2009394 未加载
harrybrover 14 years ago
A developer like yourself would benefit far more by focusing on UI Design than the far broader area of Graphic Design. You don't need to design logos. You do need to be able to design bare-bones interfaces well.
petercooperover 14 years ago
Just found this (not related to me): <a href="http://robots.thoughtbot.com/post/2167846199/recap-design-for-developers" rel="nofollow">http://robots.thoughtbot.com/post/2167846199/recap-design-fo...</a>
varikinover 14 years ago
I had a long answer but HN died for me.<p>The short answer, take a drawing class to learn the fundamentals of how to draw. From there, start drawing those ideas you have, but can't implement.
评论 #2009593 未加载
评论 #2009583 未加载
ldarginover 14 years ago
I recommend learning by working with a graphic artist on a small project. In return, you can teach him/her some programming.
badmash69over 14 years ago
As one programmer to another -- don't do it. Programmers can never learn the ART of graphic design from books. B<p>Graphic design is a black art -- for most programmers; you could end up spending a whole day trying to create a 32x32 icon and still hate it. I have wasted many afternoons cussing at my own design work.<p>My advise is to get really good at a web framework in a language of your choice and create code that separates logic from presentation. Leave the design work to the pros.
评论 #2009399 未加载
评论 #2009275 未加载
评论 #2009251 未加载
评论 #2009261 未加载
评论 #2009477 未加载
评论 #2009367 未加载
评论 #2009442 未加载
iterationxover 14 years ago
Play around with GIMP is simple to learn.
phomerover 14 years ago
Programming and Graphic Design are opposites. Logic, reason and lots of self-discipline makes for good programmers. Art on the other hand is grounded in emotion and perception. It's more about escaping discipline, while allowing yourself to get in touch with some inner irrational being (so that you don't mess up the design with logic and symbols). Art touches you, while programmers build things. Graphic Design in some sense, is just the industrialization of Art for specific purposes (although often less emotional).<p>It's best to realize that a good Graphic Designer can outrun a programmer in the same way that a good programmer can outrun someone that can't think logically, although some programmers seem oblivious to this. If you need good Graphic Design, it is best to hire a professional that is well suited to the task.<p>If you really want to try to bridge the two worlds, then a degree in Graphic Design is a good idea. Drawing, painting and photography are also good hobbies that can help you develop an aesthetic. A good reference to start with (and explain why logic and rules fail) is Drawing on the Right Side of the Brain. It's an old classic, but helps in understanding how our brains interfere with our perceptions.
评论 #2009433 未加载
评论 #2009467 未加载