Hacker News new | past | comments | ask | show | jobs | submit login
Can't Code? Learn Design. (learncodethehardway.org)
101 points by prajjwal on Aug 17, 2012 | hide | past | favorite | 41 comments



I agree with the commenter's initial point that learning any amount of programming will help a non-technical person to understand and better contribute to a technical startup or organization significantly. What I'm worried about is that non-technical people will skim this article and think that design is easier than coding. There's a rabbit hole in every discipline and my experience has been that the attributes that makes someone a decent programmer are usually the same attributes that makes someone a decent designer. In fact, I'd go as far to say that the attributes that make anyone decent at anything are usually the same for anything else.

So if you "want to learn to code" and for some reason cannot, then I'm going to bet you have other issues that prevents you from doing so, which is the sentiment Dan Shipper (the original comment this poster was responding to) basically attributed to "false constraints."

I guess the argument comes down to believing that coding (like most people believe about design) requires some innate talent to be able to do it. And while I believe that might be the case to be great at it, I truly do believe almost everyone should be able to learn to code (or design) if they truly want it enough.

Like with anything, I prefer people not to go into a field if they're not passionate about it. Don't code if you're not into it. And don't come into design because it's Plan B. Code because you love it. Design because you can't get enough of it. If you're non-technical and your passionate about wanting to build technical things, then you really only have one avenue for that outlet if you can't somehow convince others to help build those things for you and that's learn it the hard way.


You are reading into what I said. Nowhere in it do I say design is easy. It's on a site where I say programming is hard, so why would I claim design is easy? Hell, I can barely barely do a passable design so why on earth would I claim it's easy. Design is hard as hell.

I'm saying, if you want to do web startups, and you can't get into coding, then TRY PUTTING YOUR EFFORTS INTO LEARNING TO DO DESIGN. See? No implication at all that it's easier or harder, just different.

Sheesh.


Calm down. I never said you thought design was easy.

"What I'm worried about is that non-technical people will skim this article and think that design is easier than coding."

I didn't skim your comment. Also, http://news.ycombinator.com/item?id=4398788


Thank you for saying this far more eloquently and admittedly less emotionally than I had originally written in the reply I decided not to post. I love LCTHW, but as a designer, this post was a little offensive to me - it read as "Well, if you can't do the hard stuff, do the easy stuff."

Basically, my gist was that web design is already overwhelmed with people that used it as a backup plan - be it print designers, graphic designers or general artists that realized the former two were all moving into web and that's where the money was. The outcome of this can be seen across the web; information hierarchy and complementary interaction design take a backseat to overdone graphics and bad UX.

If you're going to be designing for code, you're going to need to understand code, particularly CSS/JavaScript capabilities and fallbacks. It will make you a better designer and possibly help you transition into the dev you wanted to be.


You added something to the text.

> If you can lay out all the major screens and the design then that’s worth its weight in gold. Design is also just about as hard to find as programming.

Not every person is created equal. If you aren't sprinting successfully, maybe you'd be a better endurance athlete -- this isn't to say that sprinting is better than endurance, it is just saying that is is a different and complimentary skill that you might have success with. Queue Sly and the Family Stone


Oh I would absolutely encourage anyone who wants to be involved in web to try their hand at either, but if worse comes to worse and they don't find themselves particularly cut out for them, design tends to be the one that they stick with because it's easy to look like you produced "something" and there's always somebody out there willing to buy "something" if the price is right.

Having watched a few people struggle to the point where they are switched off of projects regularly and haven't left a job on their own terms, I think it is worth acknowledging that the allure of working in this/any industry may outshine one's passion to do so and it may be healthier to find greener pastures than to settle on the one that's "good enough". There are also a lot of auxiliary roles to designers and developers that they may find a lot more fulfilling and that give them the opportunity to learn over time.


After watching people try to learn to code for almost 30 years now I'm convinced that some people have the mental knack for it and others just don't and that some people will never be good coders no matter how hard they try.

They may, however, excel in a different discipline with different demands so why not explore those other avenues?


Zed is a master of subtle provocation (and not-so-subtle, if you are familiar with his other projects). I suspect that he doesn't actually think that it's easier to become a real designer than it is to be a programmer. But there's a certain amount of truth to the idea that one could pick up Photoshop, or a wireframing tool, or a bit of HTML and CSS, and start turning their ideas into designs much faster than one could learn enough programming to build a full application prototype. Working that insinuation into the title attracts readers.


I've been doing design-by-necessity on projects for 15 years. I even take time to study and understand design concepts. While I'm an OK UX guy, I still pretty much suck as a designer.

It's easily as hard as programming, but for very different reasons. And because of those reasons, it may be a good alternative for the "suit" partner to learn.


I think you nailed my issue. Based on the thoughtfulness of his response to Shipper, I'm pretty sure that his recommendation is not a statement about the lack of depth in the design field. The problem I have is packaging.


Just to extend this statement a bit. There's 2 related but different skills in design. User Experience and Visual Design.

Visual Design is one of those things where the best designers do have a innate artistic ability. There is a certain level of talent in this area which you're just born with.

UX however is a skill which can be taught and learned and is a phenomenal skill for a product guy, learning to do Information Architecture, UX etc. is very doable.

BTW Not all visual designers are good at UX. Those that are talented at both aspects of design are pretty much unicorns.

A spot to get started http://www.uxforthemasses.com/ux-books/


I would say the field is even broader than just those two areas. Much design literature is on a third focus, the interaction between desiderata and materials, which has a significant overlap with engineering. This is perhaps most obvious in architecture (the kind involving buildings, but also software architecture / API design), which is as its core not primarily UX or visual design, though it has elements of both. Herb Simon's The Sciences of the Artificial is my favorite book in this area, though Donald Schön's The Reflective Practitioner is also a good book on design in this broader sense of producing human-usable artifacts out of materials.


Spot on.

Also: both skillsets (UX and visual design) are empirically testable for usability.

That's the one-note-flute Jakob Nielsen's been composing orchestras with successfully for over 17 years on his Use-IT site: http://www.useit.com/

As has been noted: Nielsen never created a beautiful thing in his life, but damned if they haven't been usable.


In fact, I'd go so far as to say that the vast majority of design people are horrible at UX. Not that programmers are any better, but in general, industry standards of UX is incredibly poor.


I agree, and with my apologies for the impending slashes, you can also go a little broader with the statement: There is design as visuals/aesthetics and there is design as problem solving/arrangement of a system. Integration of these two spheres is the key to great design.

In the field of web/app/interaction development, just as you say this largely comes down to the two disciplines you identified: Visual Design and User Experience.

In other fields, such as architecture or industrial design, the problem solving/systemic arrangement side includes additional concerns such as structural integrity, physical usefulness, manufacturability, maintainability, etc.

(And further, architecture places weight on the expression of values, which isn't as much of a concern in screen/interaction or industrial design.)

I think that with a bit of innate talent, both sides of this duality can be mastered and personal improvements made. It really comes down to practice, which in the end tends to be proportional to enjoyment and passion.

Lastly, it's the latter half of this duality that is somewhat similar to coding, or more accurately "pseudo-coding". It's not necessarily an effortless transition however: I can design logical systems and arrangements ADED, but attempting to translate that aptitude into coding skills is slow and painful.


Just wanted to add that those two fields neccesarily overlap.


Can you elaborate about this fields? What kind of problems belong to VD and what to UX (possibly with examples of good and bad desing/ux)? I'm a coder (cs student) genuinely interested in learning some design skills, but I'm not quite sure what areas exactly to pursue.


I don't like to separate visual from UX. UX is top level, while user research, visuals, information architecture, for example, are branches. You cannot design UX, only design for it.

If I'm working on user research I need to understand the people (user groups) who use the product and how they use it. If I'm working on interaction design, I need to understand how each interaction takes place, what problem it's solving, what that means for the user, and how it effects anything else. If I'm working on visuals/graphics, I need to design the product/features/interactions in an aesthetically pleasing way that still targets the user groups.


UX is about how people interact with a product. Visual design is about what they see while interacting.

So UX will guide you towards what features are important and ways of exposing those features so the end user has the best experience. UX also tends to focus on testing assumptions.

Visual design will guide you towards making sure the elements on the page are aestheticly pleasing and that they communicate what is trying to communicated. Google is famous for testing it's shade of blue, but, IMO, great design can't be tested, but rather comes from a designer understanding her audience and the story she is trying to tell.


I think "great design can't be tested" is wrong. All design has consequence. If I make an add to cart button on an ecommerce site purple, I can test that to see if it performs better than the red add to cart button. Yes, these decisions (of choosing red or purple) can come from a designer understanding his/her audience, but should never be just taken at the designer's word... it should always be tested to make sure the designed solution is the right one.


I disagree: the really important changes take vision and guts, and can only be tested after the fact. Testing things like the color of a call-to-action button can certainly direct you to a local optima, but in a larger sense it misses the point. You can A/B test a whole bunch of small changes, but the really impactful ones take a unified vision that changes the whole design strategy of a website or product. Google didn't go from old Gmail to new Gmail by incrementally changing things based on testing, they took a good hard look at the pain points of the old site and applied a new visual direction to the site. The iPhone didn't come around by tweaking a phone piece by piece until people liked it better. It came around because someone had a vision and saw it through.

Don't get me wrong, usability testing is incredibly important. Every programmer can tell you how much they learned the first time they watched an uncoached newbie try out their software. And even with those paradigm-shifting design changes, you can and should test that the results are really an improvement. But you can't make big important changes by measuring the impact of every little detail.


Thank you for putting my thoughts into much better words. The "local maxima" point really nails it.


I would suggest focusing on visual design even if you are only interested in UX. Aside from technique, the core competency for both kinds of design is learning how to see. IMO, this is an easier skill to develop in the context of visual design. I would also recommend studying drawing, photography, motion graphics or interior design to improve your UX skills.


If your school offers it take a course in human computer interaction this will teach the fundamentals of UX such as designing menus to be intuitive and efficient.


Visit http://dribbble.com

That is the sort of skill it takes to be a great designer IMHO.


A point the article misses is that design is very conceptually similar to code. If you can design something it can almost always be coded and you will have a fantastic understanding of how it all works. (I'm thinking more towards UX design than aesthetic design.)


>If you can lay out all the major screens and the design then that’s worth its weight in gold. Design is also just about as hard to find as programming.

I am going to put myself out there by honestly saying that, as a programmer, I have never understood why people believe the above statement, and I disagree. Please don't take this as a negative comment (I know people will, which is why most people would not write a comment like this). I am just trying to understand.

I'm sorry, but I don't believe its worth its weight in gold. Here is the starting point for my perspective:

1. An analyst, customer, boss, or someone who is not a programmer, describes in words what they want the software to do. I take that description and spend a couple of days building a prototype web application. I don't create the screens in Photoshop first because A) it will take longer and B) I'm not trying to create the ultimate user experience, I am trying to build functional software that we can start getting feedback and iterating on.

2. Analyst, customer, boss, designer, or someone who is not a programmer, looks at the prototype, may or may not acknowledge that the software now has the primary functionality requested, and starts criticizing the appearance or user experience. Its actually easy for him to find flaws: its not very attractive (there was no time invested in making it attractive) and some use cases could involve fewer clicks.

2A. Here is the issue I have: it really seems to me that a significant portion of people believe at that point that the programmer was unable to conceive of an attractive design or shortcuts that would improve the user experience, and that is the context and justification for the entire field of design.

Anyway here is my experience: if you can't code, then you probably cannot actually create a better user experience than me. If I am given time to work on a design, then I will optimize the user experience as much as possible given the features of the software platform and budget. If there really aren't budget or time constraints then I can disregard the inner workings of the platform to some degree because I know I will have time to code whatever interface I can conceive of.

Maybe some designers can help me understand.


> An analyst, customer, boss, or someone who is not a programmer, describes in words what they want the software to do.

That depends heavily on their words being in sync with both their actual vision in their head and your understanding of what those words mean.


Rather than trying to answer this here I'll point to a great definition of what UX design actually is. Hint, it's not "laying out a page" or "painting the picture".

http://uxdesign.com/ux-defined

If you can do all of the above and you are a rock star developer, my friend, you are a rare breed.

Why not go straight to code? Iterating through conceptual ideas via sketches, wireframes, research etc to get an experience correct is a million times more effective and efficient than iterating through it in code.


None of what I wrote contradicts that description of UX. I did not imply that I thought it was laying out a page or painting the picture.

Also I did not mean to imply that I thought that going straight to code was the best approach. But you can honestly do a fair amount of that sketching/wireframing etc. in your head and with verbal descriptions, and then after a one or two iterations of that or actual mockups I think you would gain the most from a real system.

Anyway, based on that description, I will definitely start putting UX design on my resume, because I have already incorporated most of the substantial points made there.

Also, in regards to http://uxdesign.com/ux-defined, I have never in my life had so much smoke blown up my ass in the process of an ostensibly (partially) technical discussion.

I am definitely going to have to start practicing this UX design stuff, in case there is actually something more to learn, and because it looks like people are using a lot of bullshit to justify getting paid a lot more to not have to do the real work/problem solving (coding).


> [..] I have never in my life had so much smoke blown up my ass in the process of an ostensibly (partially) technical discussion.

Very harsh words but I'm afraid I have to agree. That article doesn't really tell you what UX design is. Back on university I attended an interactive systems class, which was very focused on UI and UX design. I found it to be rather vague and everything but precise in definition. I believe UX is a very blown term these days anyway, just as I believe "design" is an inflated term.

What I want is a precise definition of good UX, that doesn't feel like "make it idiot-proof".

Disclaimer: I make no claims whatsoever to be good at UX design. Actually, I couldn't care less. I'm one of those weird code monkeys who favour function over everything else. Maybe that's what UNIX made me to be ;)


big words... let's see your work

EDIT: sorry that's a bit flippant, but you just sound overly dismissive of a specialized field. Nobody disputes that a good user experience is important. This is why people specialize in it. Now, just taking you at your word that you do in fact design and code amazing experiences- obviously most developers are not as highly skilled as you. If I want to build a good product, it's going to be very hard to find someone as amazingly talented as you. I am left with the choice of hiring a good developer and a good designer and building a good product. Sounds good to me. This is why the profession exists.

If I can find a UX designer who is also skilled at visual design (more common than one who is also a full fledged developer), the product will also look good. Also, are you good at researching, setting up user testing, and designing marketing material and other graphics as well? How do you find the time? you must be a true god among men


well he's right, and his analogy is perfect. i once again in fact yesterday, had someone wanting me to build his business for free. after agreeing that i get a share of the revenue for cutting my rate in half and giving them my services, which are actually the result of 18 years of experience.

the point is, op is wrong in his belief that people will ever understand the value of what they ask for if they want it for free. lesson hard learned. i'm actually thinking about putting together an opensource contract that everybody should fork and edit to give a working framework to people that keep getting cheated over their expertise.

but, i completely agree with the article itself.


The middle option is (was?) learn Flash. You get a bit of both sides and can complete projects by yourself.


You know, before I tried Flash programming I would have agreed with you. But Flash has been painfully awkward every time I've tried it (for programming).

HTML5, if learned from good resources, using good tools, is much nicer for the programming side.


I'm probably making an ass out of my self now but: For the love of god, please don't learn Flash! People learning Flash have given birth to the worst parts of the web. There's a reason why everybody wants to get rid of it.


You can't complete non-flash projects by yourself?


I think what radley means is that Flash is an all-in-one solution, whereas to finish a non-Flash project you would have to master HTML, CSS, a back-end web framework, and perhaps some JavaScript as well.


I suspect the point is more that Flash enables one to tackle both code and design with a single toolset.


code and design aren't two separate ideas.


Can't design, LEARN UX




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: