This might work for web design. In my experience, it doesn't work well for UI design.
The first law of UI design is that you will fuck up most of the time. Most of your ideas are going to be bad bad bad. If you think that every mock comes out of your workstation smelling like roses, then you're either deluding yourself or you're just knocking out something incredibly derivative. To be a good UI designer you have to say no all the time, and to all of your ideas.
So here's the problem. Static image mocks only paint about 60% of the picture when you're talking about modern (especially touch-based) interfaces. Static mocks don't give you enough information to accurately cull your ideas. Sometimes you need to build the damn thing, so you can touch it and move it and realize well damn, that wasn't such a great idea after all (or oh, this part really needs to be changed or the final, magical yeah, that's not too bad).
All of the best and most innovative UI designers that I've met have been able to build interactive mocks of their designs. Now - don't ask how they did it. It's spaghetti code that will curl your hair, frequently written using some arcane technology that might not even be supported anymore. But it works just well enough that they can use it to iterate on their ideas.
Now, you can split this job into two people. One a "designer" and one an "interactive mock engineer". In theory, it could work, but in practice I've found that it becomes hard for the designer to detect the flaws in the design. I'm not sure why. But the final product doesn't change as much. It doesn't evolve as much. It's rarely as good as it should be.
The following quote didn't really fit with my post, but I like it too much not to share it. Take heart! Your limitations are not as strong as might believe.
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
It's a wonderful quote, because it also says that before coding you might want to learn cognitive psychology, social psychology, gestalt theory, marketing, copywriting, information architecture, usability, economy, statistics, science of materials, architecture and so on and on. :)
There's not just "design" and "code" out there, the design field is way more deep than that, so that quote might translate well to a designer that can't code, but studied in depth social psychology, urban architecture and team cooperation techniques. :)
The author is just pigeon-holing the abilities of people. I was/am pretty good at math AND art. Not everyone is a specialist that fits neatly into perfectly shaped holes.
Designers who design for the web should know HTML, CSS, and Javascript pretty well. The best ones know them throughout. Design isn't art -- it's a technical profession and one that requires the designer to know their medium. If you do not then I would say you're taking the piss right out of it.
Being the person who has to "code" a designers' work is a career built on frustration. The web wasn't built in photoshop. It was built by nerds and engineers. It has come a long way to allow people to make their HTML documents more expressive (to the point that they've become full application UI's...). But that doesn't escape the fact that this is a technical medium with specific technologies that drive those expressions.
You have to know this stuff if you want to be good, IMO.
Pigeon-holing? Quite the opposite. I'm making the difference between "should" and "could". That's exactly because not everyone is a specialist, neither I am, but at the same time not everyone is a generalist! :)
Exactly like I'm saying in the middle of the article, "you have to know this stuff", but you don't have to know also how this stuff is done, you can, of course. But it's not a must. :)
It's always sad for me to hear people with bad experiences with designers or developers, but really, I don't think that "code" is the answer. I believe that "teamwork" is the answer. Knowing. Discussing. Collaborating. I've never seen a team doing that failing, regardless of the mix of skills :)
It's the "Theory of Multiple Intelligences" bit that gave me the impression of pigeon-holing. And the paragraph preceding it where you go on about the typical high-school stereotypes. And the rest of the article is built on the premise of a dichotomy where creativity is separate from technical ability... the whole "left brain/right brain" idea.
It's bunk!
I think the split is actually in designer/front-end developer.
If you want to make analogies to other industries, I think your concept of designer is more analogous to a "concept artist". The person who has the good ideas that are not restrained by the burden of having to think about how to build them.
However when I hear, "web designer" -- I'm thinking of someone who can create or take a concept and actually build it. Someone who uses the tools available (HTML, CSS, Javascript, et al) to create something. This person does have to know how to build their ideas from the tools available.
And I think for most projects the designer is also the concept artist. Very few (if any) web projects actually need those roles filled by two separate specialists.
So I don't think it's bullshit. Designers should know how to code. And they should be good at it too.
Again, I agree. The whole article isn't built on that dichotomy. It's just a sequence from a simple perspective to a more complex perspective, and actually ends saying that it's better if you are willing to expand your view, exactly like you are saying. :)
~
On the second part of your comment, well, you are talking about "web designer" specifically, and with a very specific definition of it as well. If that's your definition, then yes, he have to do that. But er, it looks more like a Frontend Developer to me, and I never heard of a "Concept Artist". ;)
However, it's a matter of terminology here, and there's surely some confusion about it. :)
Amen. As far as I'm concerned, a "web designer" who refuses to learn CSS is like a "painter" who won't learn about working with paint, or a "musician" who can't carry a tune or play an instrument.
I disagree. Just to be clear, we're talking web design here in HTML/CSS, not actual programming in JavaScript or Ruby. HTML/CSS creates designs, just like pencils create sketches and paint brushes create painting. Sure, it's hard, but watercolor and oil painting is also hard and has to be learned. Web design is no different.
IMO, in a team, creating the HTML and CSS is a responsibility of the designer. The developers are too busy doing real coding. At least, that's how it works in the design agencies I know personally. It's always a designer that creates the markup, whether a lowly design intern or a production artist. Maybe enterprise and tech startups are different, but that's how it works in the design agencies.
I agree with you, what's next after this? designers that can't use photoshop because it is not part of their intelligence type? HTML/CSS is the designers medium and they have to learn how to use it just as a painter needs to learn how to use paintbrushes or a film director needs to learn how to use a camera.
Don't worry, there's nothing "after this". "Designers should code" exists only in the web design field. It's fair to suggest that "Designers that can code are better", but it's not a must in any way. That's the point. :)
Probably you never met amazing designers that can't even put a "." at the end of their sentences.
People are different, with different mind, and intelligences. Forcing such a designer to "code" is just going to destroy his skillset, that otherwise would be of great use in a good and collaborative team. :)
If someone has to be forced to learn/use the underlying medium then there's nothing to destroy, they don't have the skillset to to do the job to begin with and they should probably just stick to doing print layout.
Having worked with designers ranging in skills from pure photoshop all the way to writes app code in addition to markup, CSS and javascript, in my experience a designer that doesn't have a solid understanding of raw markup, CSS and javascript is a liability.
I worked with lots of excellent designers that aren't able to write a single line of code. And still paired in a good team with a developer, they did marvels. :)
So what you're saying is it's cool for someone to only learn half their job if you've got other warm bodies available to cover for them. Eh.
Taken to an extreme this is similar to you saying I'd make an excellent plumber if I could drive the truck and had a couple of helpers that actually knew how to do plumbing.
You can't tell me with a straight face that a designer that doesn't have a solid grasp of the underlying principles of how front end code works isn't going to (at least occasionally) end up cranking out the worst sort of pie-in-the-sky speculative horseshit that's a rugged nightmare to mimic on the web, and every time they do they end up taking a big ass bite out of the project budget when the rest of the team is scrambling around trying to sort out the cross browser issues with the hot mess of a design comp they've just been handed.
That's a nice metaphor, but no, we aren't saying that you are doing a job, and actually you don't know how do to it and you have someone else doing that for you. The plumber metaphor is flawed.
I can tell you, because it happen every day. It happens to me every day. And if you don't believe me, just read around the comments from people, here and on the article page, that do exactly that.
By the way, there are also comments of people saying that designer must think a bit over what's technically possible, to innovate. Figures. ;)
The problem however isn't in agreeing or not, but in not being so sure that your point of view is the right one.
'According to James Traub (writing for The New Republic), Gardner's theory of Multiple Intelligences has not been accepted by most cognitive scientists nor by most academics in the education field. Indeed, George Miller, one of the psychologists credited with discovering the mechanisms by which short-term memory works, wrote that Gardner's theory boiled down to “hunch and opinion.”'
I am editing a forthcoming book in the field, written by a teacher who earnestly believes in MI. Evaluating this teacher's data, his approach is clearly working for his students, but I think because of better engagement, more individual attention, and more interdisciplinary projects. Ultimately, I think we're cutting most of the MI stuff from the book as unsupported, although he will cite Gardner as inspiration.
The data I've looked at is more consistent with variation in subject performance primarily correlating with interest and personality, rather than MI.
> is more consistent with variation in subject performance primarily correlating with interest and personality
My hunch and opinion is that this is correct, too. ;) Also, it all kind of reminds me of the Pygmalion effect[1]. Other people tell us what we're good and bad at and then we run with it...
Yay - designer/developer "teams". Sounds fair enough, but it's gotta work both ways.
You as a designer need to be flexible. If I as a developer say "that can't be done within the given time/budget/constraints", you'll need to rework or rethink some of your precious design.
I as a developer need to sometimes do some more research to make sure something can, in fact, be done, instead of relying on 10 year old preconceptions about what's possible and what's not. I may need to tell a client/pm that we're going to do XYZ visually and IE5 be damned because I've looked at the stats and 0.21% of the visitors in the past 18 months used IE5.
I've rarely seen true teamwork collaboration between designer/developers in the web world, and it's worse in the 'virtual team / freelance' world, because pretty much every project is a new set of people working together for the first time.
What's more common is a designer puts together some graphic design which is fairly impossible to recreate in browsers, then complains tirelessly that it doesn't look exactly 100% the same on every single browser, including their WAP phone, iPhone and IE6 on XPsp1, and proceeds to tell you about their cousin who made all this work perfectly 6 months ago because he wrote some javascript to make everything awesome. Then the designer coming back 4 hours before a demo/launch and telling you that the color in the footer on each page needs to be different, but they're going away on vacation in 10 minutes and "it's pretty simple, just look at the 19 mockups I emailed to you in February" (conveniently named 'XPJ59 client X here's slide #1.JPEG', etc).
Also more common is a developer who takes no notice of the designer mockups that were approved by 8 people over 2 months, and just does their own thing with CSS3, custom modified jQuery, and only tests on their custom Konqueror or Chrome beta release, then pushes to Heroku where only they have an account and rights to push.
Yes, designers and developers need to learn to work well together to appreciate the issues each faces. Web designers do, in my view, need to have a better understanding of web technologies, understanding the limitations and possibilities of the tech. I don't see how you can do that without actually, you know, learning how to code some. Developers should have a better idea of how to use graphic tools, and sit in on some meetings where designers are subjected to idiotic whims and endless debates on shades of blue to have a better understanding of why the designer is bitching about what should really be a 2 minute change for the dev (cause the designer will get it in the neck from 8 people if they don't).
Design is not about the tools you use, and development is not about the code you write.
Developers can learn design fundamentals (and I mean really basic "what's the idea behind this color/element/typographic decision?") without touching Photoshop, Illustrator, etc.
Similarly, designers can learn about what is and isn't possible, without learning to code, through research about the existing technologies and their use cases.
"designers can learn about what is and isn't possible, without learning to code"
Depends on what we mean by 'code'. I don't expect designers to understand javascript, php, java, .net or whatever.
I do expect someone who bills themselves as a web designer to understand the basic fundamentals of CSS, what works on various browsers, gradeful degradation strategies, etc. I don't really think you can do web design successfully without understanding them, and I've never met anyone who really understands them who didn't also actually code html/css from scratch, at least at some point in their career.
It's probably possible to just read about it without opening an editor, but probably far less effective.
And re: developers - getting some understanding about colors, shapes, fonts, sizing, etc, to understand why some decisions are reached will definitely give a new appreciation for good design, and can help in other projects in the future where perhaps a good designer isn't available. I've stolen quite a few tricks from some designers I've worked with, and as time goes by I get better and using those tricks together in concert to make stuff that doesn't suck too bad.
Why would they implement a feature that's in every browser anyway? They should just design the site so that changing the font size through the browser works.
Buttons to change font sizes are anywhere in a browser's default chrome, therefore 99% of people don't know you can do it.
In general, I think it's dumb, but have been on the receiving end of "add font size buttons". No amount of "but you can just hit ctrl-+" does any good.
I believe his point was that a web design should be resilient to the fact that users can do this with their browsers. Among other things web specific I assume. That seemed pretty obvious to me anyways.
Similarly, designers can learn about what is and isn't possible, without learning to code, through research about the existing technologies and their use cases.
True to some extent, but the more you know about what is and isn't possible, the closer you are to basically knowing how to program. I suppose how abstract your knowledge can be depends on what you're trying to do.
For example, I think game designers need to know a significant amount about how game engines work: maybe not the algorithms of, say, gouraud shading, but they do need to know what's possible and not possible in NPC AI, and the more complex the behavior they're designing is, the more they need to know about how NPC AI actually works, to have even a reasonable guess at how their ideas would translate into reality.
A few people have argued this under the labels "computational thinking" and "procedural literacy", a category of skills that doesn't necessarily involve knowing the syntax of C++, but does entail being able to think in terms of algorithms and technologies. There's also an older idea of "design thinking" that sees it as almost always including some technical aspect; that's common in architecture, where the ideal architect is a designer but still quite familiar with at least parts of material science.
The problem is that in a startup environment, needing to constantly explain how web application design works can waste significant time and energy, decreasing morale and impacting momentum. It's a drag, and an unnecessary one.
Web applications don't need to have heavily designed UI elements. The kind of designer that's useful for a web application is one who has a deep understanding of the unique constraints and conventions of web application design, not someone who is a whiz is Illustrator or screen printing.
You're right. Every discussion about "designers should code" always shows problem in teamwork and communication, not in coding skills. :)
And even if as I was saying learning to code is a way to create these skills, like designing things is for developers, another way is just listening to the developers/designers in your team. It works very well and it's way more efficient for a lot of different people. :)
Agreed, although "just listening" doesn't go as far as "just listening while also having walked a bit in their shoes, or at least tried those shoes on for size."
I will call your bullshit and raise you a fallacy. ;) But seriously, I think that pigeon-holing yourself into one skill set is the WORST thing you can do. If nothing else, you should at least attempt to learn code so that you might be able to produce reasonable, efficient designs that the coders can easily implement.
But it goes much farther than that.
Someone (on the internet) once said "programming is the new literacy."
I am both an artist and a programer. I am not very good at either, but I find having a knowledge of both is extremely empowering. I DO NOT believe that you are born an artist or programmer. Sure, you might be born with a slightly better brain than the next person, but anyone with an IQ above 70 can learn to program and/or draw. Learning both is not time wasted, but time invested. Being a good programmer can actually save you time as a designer.
I know, it's wonderful when you can do both, but I think it shouldn't be forced on everyone. Not everyone is a specialist, and not everyone is a generalist. Forcing one, or the other, is harmful. :)
Wow, what a way to say I'm not good at either but it doesn't really matter in the end. Really? So you say you're not good at either but having knowledge empowers you? In what way? It gives you the ability to point out people better at those skills than you? I think you should focus on one until you feel you are good at it and then move on to the other.
Yes, anyone with an IQ above 70 can learn just about anything. Doesn't mean they will be good enough at it for a career. You make sound as if those abilities are not challenging or difficult in any way and anybody can do it. If that's what you are saying then I have to seriously disagree.
Good point about being a good programmer can save you time as a designer, but it can work the other way as well.
I only said am not very good at either - but competent enough at both to do them professionally, I think (and I have). Only trying to be humble ;) Anyways - Like the comment below, I don't believe anyone should be "forced" to do something, but at the same time no one should be closed-minded about learning new things.
The one thing I have learned from working in both areas is that in the beginning you improve very rapidly, but at some point only hard work drives you closer to perfection. I would advise anyone with an open mind to at least try learning something they are not good at. Not a requirement by any means, but I do not think anyone would regret trying.
Methinks we are ignoring the elephant in the room. Sure, good teamwork will solve a lot of problems, regardless whether the designer can code or not. A team with all the skills combined can deal with both.
But there are people that have a vested interest in playing designers and developers against each other.
I've seen this happen time and time again, both via internal management and external clients: feeding designers and developers separately different bits of information (but never the whole picture), letting them make commitments based on that information and only then bringing the two together. The end result is that in order to make good on their separate commitments, designers and developers are left with very little room to compromise, which undermines the cooperation. The goal of this little divide-and-conquer game is to pressure them to come up with a result they otherwise would not have committed to given the time and budget constraints.
There's a reason why designers and developers are often very deliberately hired or managed separately for the same project. There are plenty of people who believe having designers and developers work together too closely is not in their interests.
Some of the best designers I've had the pleasure of working with didn't know how to write HTML or CSS. The did, however, deeply understand the constraints of web design. Knowing HTML and CSS gives you a de facto understanding of the constraints, but you don't actually have to write it in order to become a competent web designer.
I also think most people are thinking from the perspective of the scrappy start-up, where you must be multi-talented in order to cover various roles. In large organizations there's designers that only produce wireframes, then another designer comes along and produces the final visual output, and finally another guy comes and codes it. Not that it's the right way to do it, it's just that the expectations are being set too high.
Instead of putting down web designers who can't code, appreciate web designers who do it. This comes from a web designer who can code.
I think this post is at least partially misunderstanding the assertion that designers should be able to code. The point is not that they should be a coder, just that they should, like you said, "deeply understand the constraints of [their field]."
Someone who comes up with a good design that can't or won't be implemented may as well have not designed it in the first place- but if they understand the constraints on their design they can come up with something optimal that can actually exist.
"The team of the digital era is a designer / developer team"
At my last job, I kept trying to get them to hire a designer. When I left, there were like 15+ developers and no designers. A couple of them thought they had designer skills, but they didn't really. They ended up outsourcing their design, and of course, a lot of back-and-forth was needed.
I absolutely think that designers and developers need to work closely together.
I also think it's -possible- to have someone who is great at both. But you're going to pay them a lot more. Probably more than having 2 specialists. They are going to be amazing at what they do. You certainly won't get twice the work from them that you get from 2 specialists.
As a "web designer", HTML/CSS are your medium. If you don't understand your medium, you don't understand your craft. Last I checked, web browsers don't understand PSD files, which means without HTML/CSS the design isn't finished.
Imagine hiring a painter to do oil on canvas and they handed you a picture of a painting, or a sketch of what the finished painting should look like. You hired them for oil on canvas - not something that looks like oil on canvas.
When hiring a designer for a web project, I expect to receive html files that can be opened in a browser. In the very few cases where the designer didn't know HTML/CSS, I hired a designer who did to finish the job - because the inherent decisions with modeling a website in HTML/CSS are design-minded decisions.
As such, I suppose as a designer you don't HAVE to know HTML/CSS, but then I can't think of a single reason to hire you for a web project. Print, maybe - provided they understand the needs and limitations of printing and can provide files in a format the printer can use. Otherwise, I'm just going to have to hire a more talented designer to finish the job, which will leave me to wonder - why did I ever hire that first designer?
I got about a quarter way through the article and gave up reading. The reasoning cited is pretty poor. I was someone that used to think i could never code because my brain wasnt wired that way, but yet here i am, coding. Its given better insight into what issues and constraints programmers face.
This whole pigeon-holing exercise is just a complete farce. Far better to know a little about everything than everything about a little.
Its really not as a big a deal as people are making out.
The problem here is 'designers' is an ambiguous term and 'code' is a loose term. If the sentence is "Web designers should know at least HTML/CSS." as it should be, then the debate would proceed properly instead of everybody missing each other's point. Framing this whole argument into "designers should code" is not doing any side any favor.
Thank you. I agree that whenever someone writes such a post saying that web designers should or should not "code" then they should define what coding means in that context.
Creating HTML markup and CSS is debatable of whether to call it coding or not. But every web designer I've ever interviewed I expected them to write their own HTML markup and at least be of average skill with CSS. Ability with Javascript was a bonus but not required.
I have a design degree and I learned HTML in class as part of my minor. This was before CSS was common so it was all font tags and tables. They used FrontPage for this but I refused and stuck with Notepad in back of the class.
I, as a web designer, create my design, write the HTML markup, write the CSS and code the javascript. In some cases I tweak the back-end code to suit my needs if it's light. Heavy-lifting on the back-end is done by a programmer.
Truthfully, I'm probably more of a front-end developer these days though.
I am not a print designer therefore I would have a bit of a learning curve to re-acquaint myself with the medium which I learn in school. But it would be expected of me to learn it. Therefore, I don't feel it is wrong to expect a web designer to learn their medium as well.
But hey, everybody should pick what works for them. Some companies don't want designers involved in markup, that's fine. Some companies do, that's just as good.
Yes, a good designer should be able to do more than draw things in photoshop. A good designer should be able to make things aesthetically pleasing, but more importantly functional. If they haven't even a basic grasp of HTML/CSS, for example, how can they pretend to design functional interfaces in HTML/CSS? A designer who can only mock things up in photoshop is not a designer, but an artist, and probably a poor artist at that.
> Knowing what is very different by knowing how. This takes us to the usual questions: do architects need to know how to build a skyscraper? Do car designers need to know how to build an engine? Do a movie director need to know how to act? Do a surgeon need to know how to build a peacemaker? Of course not.
Yes, architects take some structural engineering classes. They aren't engineers, but they certainly have an overlapping knowledge base. If all they could do is draw fancy buildings, then they would not be architects, but artists. Yes, car designers should know how to build an engine, not to the level of an engine designer/engineer, but to the point that they truly understand how the engine works, and not just what it does. Yes, a director needs to know how to act. They might not be the best actor, but they should know the craft, or they can't get good performances out of their actors. Yes, a surgeon who installs pacemakers should understand how they work. Do you want some guy attaching electrodes to your heart when he doesn't really understand how they work?
Good architects understand engineering. Good car designers understand engines. Good directors understand acting. Good heart surgeons understand pacemakers. And yes, good designers understand coding. When something is so closely tied to your effectiveness, you should should understand it, and that means you should understand the how as well as the what. Otherwise you will not be good at your core competencies, because you have too many gaping holes in your knowledge.
Relying on teamwork to fill the gaps in your knowledge is crap, too. If you don't have a shared vocabulary and a basic understanding of coding, how are you going to work with developers? You're going to hand them a pretty picture and tell them to implement it, and they're going to dismiss you as incompetent, because you are.
> There’s still a good point in suggesting that designers should code
This is really lame. Don't write a dozen paragraphs claiming that it's "bullshit" to say that designers should learn to code and then end by stating that it's a good idea for designers to learn to code. That makes it obvious that you're just a trolling ass. If you believe in the stance you're taking, then stick to it. Otherwise don't rant about something you don't even believe.
"Yes, a good designer should be able to do more than draw things in photoshop. A good designer should be able to make things aesthetically pleasing, but more importantly functional. If they haven't even a basic grasp of HTML/CSS, for example, how can they pretend to design functional interfaces in HTML/CSS? A designer who can only mock things up in photoshop is not a designer, but an artist, and probably a poor artist at that.
"
There is a difference between knowing how a web page functions (from a UX perspective) and knowing how the web page is built with HTML/CSS. The front-end of HTML is ubiquitous. People know how web pages work because they use web pages every day.
If all someone knows is "how a web page functions (from a UX perspective)", then they don't actually know anything meaningful. If all they understand is that a link is clickable and that a web page is sent over the Internet, then they don't understand nearly enough to be telling someone else what to implement. HTML and CSS are relatively simple. A decent web designer should be able to build a mockup using them.
He buries the lead at the end. It's good for designers to know how to code but they shouldn't spend so much time coding that they can't grow their design skills.
Yes some people are more creative, but who said being a good programmer had nothing to do with creativity? Along the same lines design is not art. I've seen many talented artists who were average designers because they couldn't, or wouldn't, blend in some structure to their work.
I started out as a book designer, then web hit and I became web designer. Although I admit the early days of table based layout made me want to run back to QuarkExpress. Flash arrived on the scene and sites like the Remedy Project inspired me to learn to code. Long story short, I now know OOP inside out and, thanks to hacker news, have dived into in functional programming.
I spend very little time designing anymore. I'm still miles ahead of my fellow developers, and I tend to be more creative in my problem solving. That said I still run to them (or stackoverflow) when a hardcore programming problem pops up.
Becoming an expert at anything takes time, if you're a Jack of all Trades one of those trades will suffer. I've chosen programming because I like building things, plus the pay's not bad. I'm still 'designing' it just happens to be with code.
Very few people argue that designers should learn how to code (as in programming). What most people argue though, is that WEB designers should be able to code, as in do the markup and CSS, their own designs. If they aren't able to code their own designs, how can they know the limitations imposed on their designs by current (and old) technologies?
A designer does not need to know how to do AJAX, jQuery animation, MVC, Ruby (or Python, or C#, or Java...), an SQL dialect, Linq queries, how to configure nginx to serve your statics, and a whole plethora of things that are important when creating a product for the web. A bunch of different people and skill sets are needed for all of those, and no one person can wear all hats. That being said, a designer that designs for the web needs to know the medium on which they're creating their artwork on. I do oil painting, and I know I need to know how to frame my canvas with a stretcher or strainer. I know that I need to prepare my canvas with animal glue, chalk, and white lead paint. I need to know my brushes and their properties also, wether they're made hair from a horse, camel, squirrel, sable, etc... I need to know a myriad of different things that are NOT actually painting. I'm also an avid strength training aficionado, for which I've learned more about the human physiology and the mechanics of lifting weights and their effect on your muscles and nervous system than I care to remember. I need to know a myriad of things that are NOT how to lift weights correctly. If I'm a web designer, and I make pretty pictures for the web, I need to know my medium. I need to know how to code my own markup and I need to know how to make my own CSS. Only then will I know the limitations and the mechanics of how a "webpage" works. Hell, creating a good creative design is a lot harder than doing the markup and CSS to be delivered to a front end developer who will probably end up changing a lot of it anyways.
The point of web designers knowing how to do their html and css, is not to remove another person from the conveyor belt of web products. The point of designers knowing how to do so, is to make sure you've got a design that works beautifully and that goes hand in hand with all the standards and best practices that the project requires. If I'm going to hire a web designer that doesn't know how to do his own html and css, I immediately think that he's not really a WEB designer and that he doesn't really care to be the best he can be as a WEB designer. Regardless of his actual skill as a designer, and of course, I won't hire him. If I get a designer that doesn't know how to do so, but wants to learn... I'll probably hire him because of his attitude and aptitude for learning. As long as he's actually good as a designer of course.
I'll just end this already too long post with one 'though': Valve (as per the latest articles going around the web) hires mostly multi skilled people, as opposed to people that are one trick ponies. The developers to my sides (no I don't work at Valve) are both completely multifaceted people with a myriad of skill sets not directly related to making software, but that we use almost every day. I consider them some of the best I've ever met. I've done system admin in linux, bsd, and windows, and I'm pretty knowledgeable in all three. I've developed software for the past 15 years. I've also been designing for the last 10. I'm pretty decent (and I've studied and practiced my ass of to get to that point) in all those fields, but you can't be bothered to learn HTML and CSS so you can make YOUR web designs better? Give me a freaking break.
Except that in most agencies, designers don't code. So they spend 8-10 hours a day doing design.
Learning how to code does enhance work but it doesn't mean that you'll necessarily be a better designer than someone who doesn't know how to code but has a pretty firm grasp of what the web can do based on their experience using the medium.
I've worked with top tier designers in NYC who have probably never touched a line of code. And personally, I'd rather higher a highly talented designer and teach them the ropes (if they even need it) than a good designer/developer. Because quite frankly, it is extremely difficult to find individuals who are killer at both design and development. That's why most agencies have a pretty rigid division of labor.
I'm sorry but if a designer spends 8 to 10 hours doing design in an agencie is of no consequence to the point we're discussing. Wether they do or do not code their own designs, is not the point. The point is that they should be able to.
I agree that there are designers, and there are designers [insert vocal stress where appropriate], but we're talking specifics (WEB designers) here. They don't need to know how to program or even animate something with jQuery. But they do need to know the inner workings of floats, the box model, browser quirks, etc... You've said it yourself: "based on their experience using the medium". If you're at a point where you can really design for the web, having in mind standards, browsers, usability, accessibility, and best practices, you can most definitely write your own html and css. A web designer's medium is the "web page", and while no is asking a designer to create a Facebook, Stack Overflow, or Hacker News, we ask that they actually deliver a "web page" not just a psd that might very well not work with the current state of the web.
Your last point I fully agree with and I think I mentioned something like it in my previous post. I'd rather work with a highly talented graphic designer and show him/her how to be a "web" designer, than work with someone that might know both things but isn't as good. But on the other side of the coin, I'd rather work with a decent (read: good) web designer who can code, than with a great designer that refuses to actually study web design because he thinks he's over having to learn complementary skills.
Once again, we're asking the designers to learn to code their own markup and css, NOT to learn to program (both might be 'code', but they're completely different disciplines). We want graphic designers to keep doing design and deliver 'graphics' and we need web designers to be specialized graphic designers that deliver 'webpages'. We'll leave the real programming to the engineers and developers in the process, since that burden should not go on the designers shoulders.
Please, try to understand that there are different kinds of people, intelligences, sensibilities and talents, and that what's easy and simple for someone, might be hell for someone else.
Some professionals might do a more than excellent job if they focus and pair with a developer, instead of trying to be something they are not. ;)
Some others instead, might become better professionals by learning how to code. Different people, different skills, and they can both work on the web very efficiently in both small and big teams. :)
I love the attitude you express in the third paragraph. We need way more people willing to teach and support others understanding them. :)
The argument stated is that intelligence is multidimensional (stated as fact with caricature testimony) and therefore there exists a job aligned with one of those dimensions. Arguing that designers should code states that today optimal design is done by someone who has skill on multiple axes.
So the article really just dodges the issue by defining situations alternative to arguments made by Frank Chimero[1] makes and then pretending like that's a rebuttal.
He, of course, steps away from this ridiculous position toward the end by agreeing that designers could learn to code. Even suggesting it might not be a terrible idea, but this again misses the brunt of the pro argument:
Designers with strong understanding of implementation are better than those without.
I don't really want to argue that point in this comment—I'm not qualified. I just wanted to state that he never actually says anything concerning it.
What it tries to clarify - and well, it might have failed, of course - is that we should stop to simplify the problem as "designers should code", because not all designers should. But yes, all designers could, and if you feel that way, or you are prepared for that, or if you want that, you can learn to code. Exactly like a developer can learn how to design.
In either case, exactly like it's wrong to say "developers should design" but it's correct to argue that a developer with design knowledge will be better at its job, it's equally wrong to say that "designers should code", but it's correct to argue that a web designer with developer knowledge will be better at its job. ;)
I think the difference is that the author defines "designer" as someone who excels in some "designer-like" quadrant of the intelligences. Which is a load of self-entitled bs.
A designer is someone who designs—it's defined by action, not beliefs about competency. If you design things implemented in HTML/CSS and you don't have any proficiency at all in those technologies then you're very liable to be a worse designer than someone who does. The argument of how often that is true is what's important here and it's never actually discussed in the article.
The dichotomy of 'design vs code' feels artificial to me.
The activities of designing and of coding overlap extensively. Both require a clarity of communication, a deep consideration of the purpose of the thing to be designed/built, and a sense of taste.
If in the habit of extracting general principles from concrete examples, coders can become better coders by learning aspects of design and vice versa.
Many of the concepts in a 'coder' book like 'How to design programs,' for example, are readily applicable to UX design, e.g: refactoring, wishful thinking, generalisation of purpose, and the control of complexity by use of 'black boxes.'
Likewise, a 'designer' book like 'The design of everyday things' is full of stuff that applies usefully to the activity of coding, e.g: the importance of meaningful feedback, and of ensuring a clear mapping between expected actions and their outcomes.
These correlations aren't everywhere to be found, though. But I've always found interdisciplinary people to have the freshest approaches.
At first i thought the title was referring to backend work, or perhaps just jQuery and i completely agreed-- i wouldn't expect a programmer to be great at design either.
But it turns out that this blogger doesn't expect designers to actually make their designs into something tangible. It seems positively ludicrous to me that any designer that is designing for the web would think that not knowing HTML/CSS, and therefore putting out an unfinished product is acceptable. It's almost insulting-- learning HTML and CSS takes a month at most, so why won't this designer learn it?
Building a design for a web page without actually writing the HTML+CSS for it is being a print designer and expecting the client to finish the job.
People are different. What takes you a month could take years to others. Don't assume that we have equal skills and talent. If you can learn how to write markup in a month... great! Good for you. :)
Other designers, are still doing great, without knowing how to code. ;)
It is really arguing the extremes, when reality, the best place to be is somewhere in between.
Designers and developers should of course have good understanding and empathy for what the other person does. But at the same time, they shouldn't have such a complete understanding that it negatively impacts their primary role.
For example, if you're a designer, you don't want to fall into the trap of only incorporating things into your design that you already know how to code. You might leave a lot of innovative stuff out that would make the product better. If you're a developer, you don't always want to be bound by the existing design constraints either. It's a back and forth discussion between the two halves.
Design and art have always required technical knowledge of tools and the medium, and knowing HTML and CSS is no different.
Web application design (which is distinct from brochure web design or print design) has unique conventions and constraints, and web application designers absolutely must have a deep understanding of both. There are header nav bars. The branding with the link to the root path is in the upper left, user info/settings are in the upper right. HTML and CSS are structured as boxes within boxes. Main content areas contain the primary content, sidebars contain secondary content. Components are modular. Browsers have significant variation in how they render things, and viewport sizes vary dramatically. We have views and forms, GETs and POSTs. Resources are nested, with one URL per resource. Browsers have different levels of CSS support, leading to a focus on progressive enhancement and graceful degradation.
Every single time I've ever worked on a web application with a designer who didn't know HTML/CSS or a web designer who only does brochure sites, they stumble on these issues, and we end up with inflexible designs that have usability issues and are a pain or impossible to implement. Designers who don't know HTML/CSS create drag in a startup environment. It forces others to spend time and energy explaining how the web works and what the conventions are.
Look at someone like Garry Tan of Posterous, he can design and code, and for that he is significantly more desirable than a large portion of designers. I would not call it bullshit.
The point is that we should stop to say that designers who can't code aren't valuable.
Of course, and it's exactly the last part of the article, if you can code it's better. ;)
It can be as much bullshit as you would like it to be.
I won't work for a company that makes me write designer's HTML.
I'll do manual labor, I'll take out the trash, I'll do the dishes, I'll help move, I'll clean, I'll do the system administration and I'll even interface with users and play customer support if you want.
I will not write HTML and CSS. If you ask me to do this, I won't work for you. A quick discussion around the office has confirmed that other developers feel similarly to me.
And at the end of the day, you can find hundreds of thousands of great designers who will do this for cheap. You can not do the same for developers.
As well, as a developer who paints at night (artistic background) and writes Erlang & Rails at day - I find the notion of intellectual "division" slightly amiss and I would find it insulting if I was a designer. Its misleading to refer to the 'theory' of multiple intelligences as anything more than a half-cocked ramblings of a drunk on the same intellectual caliber as NLP. Our brain is tremendously complex, although some people exhibit obvious deviant skill distribution, for the most part, we are completely malleable in our capabilities, even well into our adulthood. The article above basically suggests "Designers are so dumb they can't comprehend the tools that they ply their craft with, paint for them!". This simply isn't true.
I think something is being overlooked here. As a designer, when "learn to code" is suggested, it's not aimed at programming languages (C, Ruby, Python, etc.), but rather simple/easy to understand things like HTML/CSS. Any self respecting designer should be able to take a .psd and get it working in a browser. And although it's not necessary for a designer to understand development languages, there's nothing wrong with it (regardless of scientific theories).
Once again, as a web developer, I do NOT want to work with a designer who has no clue how html and css work at all.
It's insulting to say that it's not important.
Do you expect an architect to not understand how the materials they're designing with work? or what the building codes are?
Not expecting a web designer to understand how html and css work is like letting a painter tell someone who knows illustrator where to put all the lines.
I also want to make it clear, that i did NOT list javascript or php in there at all. Nor did I say they should actually write the markup, just that they know how it works, and what is possible.
As a programmer I could care less if a designer can code. What I'd love though is if design courses spent a very small amount of time teaching basic source control, organization, and naming conventions. I know some designers would consider this boring, but I swear it would really simplify the process and we coders would be much more accepting of last minute changes (after all, we make last minute changes sometimes too).
I think the misconception presented here is that designers shouldn't necessarily be handing massive, unsliced photoshop files to pure coders. There's a a few skills in the middle of that process; slicing, optimizing, organizing, and css. Often enough neither designer nor coder is proficient in this area. Handing off your mockups to third party slicers isn't always the best idea either (you can end up with some pretty strange CSS, and dealing with UI changes down the road can be painful). You might be better off with someone dedicated to this role.
People working on teams where each occupies some vertical niche -- designer, developer, etc. -- should have a solid understanding of the territory their own niche abuts.
I don't think visual web designers should necessarily be able to fully and efficiently implement their designs, but they should have a general understanding of how their designs will be implemented. IMO part of a web designer's educational experience should include interactive design (not just art and print design), HTML and even a programming class.
Likewise, front end engineers should have some exposure to art, design, maybe even have taken some drawing classes, and definitely be able to operate Photoshop and Illustrator (or whatever the predominant tool is).
You don't hire an architect who doesn't already know something about contracting, materials, and geology, even if they're not going to be driving the bulldozer. Same goes for web design.
Quite frankly, it's the developer's job to say, "This isn't possible." It's the developer's job to know where the cutting edge is, and to take the time to think about whether or not a completely new design idea ends up being possible to implement after all. If you force the designer to take on this role, it reduces the developer to a code monkey--your job is to ensure robustness--and forces the designer to take on two roles.
I tell my designers to ask for magic and to accept it when I say I can't do this. Their job is to know what affordances are standard and why things ought to be shaped one way or another. That's their area of expertise. My area of expertise is to look at something crazy and go, "Hm, but if I did this then maybe it would work after all."
And when the best way ends up being technically difficult or impossible, we compromise.
His first premise is entirely invalidated by the "No empirical evidence" section on the wikipedia page :/
Begrudgingly setting that aside, I know quite a few developers who do a pretty good job reading design and UX articles. I genuinely try to better understand clean, thoughtful, and elegant user interfaces. It certainly helps architecting an app, and I think it helps organize my code. I don't think it's unreasonable to expect designers to do the same. I'd never expect a designer to fill the shoes of a full-time developer, but at the very least he/she ought to have a basic understanding of the medium for which he/she is designing, which I think involves learning some basic code.
My favorite web designers? Front-end folks who made the leap to UI/UX.
Markup and CSS are not code, they are tools to do design on the web, they are just not clicky-clicky. By not using them you are just drawing pretty pictures if you don't fully grok the limitations of the tool that will, in the end, actually be used to design the site.
Designers for the web who don't understand how to at the very least manipulate and tweak markup and CSS are at least somewhat fooling themselves and the people they work for/with. This is ok as long as you accept this in the end and begin to make the effort to learn something new that will improve your ability to design for the web. Bitching about professionalism won't change this fact.
How can a web designer understand the constraints of the web without knowing how to code?
They can look at other web sites and accumulate knowledge and "best practices," but even then there is a lack of fundamental understanding.
Web designers need to understand how elements piece together in markup to know what is achievable. And even more, this knowledge inspires executions that would be unthinkable in ignorance.
It's up for debate whether designers should write code that's used in production. However, designers should know code so they are not producing designs that are impossible to execute.
As a designer who can code, I have a lot fewer conversation with developers about "can we do this?"
(more seriously, as adjustments need to be made those who care most about them and understand them most have the least control where they should have the most)
The actual problem is that many designers just don't understand how things work in general. They just "do some pictures"... Then ofc they get this "learn to code" line.
But I can say the same about programmers when it comes to design.
This is something that needs effort from both sides if you care about final result
The recent article he is responding to posits that designers who code are valuable. That is true. To debunk the claims properly he would need to show that designers who code are not valuable. Instead he debunked the straw man argument "designers should code".
The graphic designer who lacks html/css skill is insufficiently prepared as a web designer. A designer who lacks competence should address that issue rather than seek refuge within embarrassing debate.
This argument is made by those that are completely satisfied with their design. A little engineering knowledge on their part could never make the design even better. no, never!
A great deal of people do refer to HTML markup as coding. It's debatable if it should be called that but in many cases when someone says "coding" the context is HTML and CSS.
Exactly! HTML is way different from a programming language. HTML is a language that describes structure, not logic. The web is all about structuring information in a way people can make sense out of it. Any web designer that is not able to use a language to provide structure, is not at the to of their profession.
Depends on how you look at it. Writing HTML is more like using Word in a formatting mode where you can see the code that's normally behind the scenes. The method you are referring to is similar to using a WYSIWYG editor. Plus it depends on how you define what "code" means.
Coming at this as a designer who learned to code in both senses of the word, I have to disagree with the sentiment that HTML/CSS is easy.
Sure, the principle is rather straightforward, but writing CSS is tedious and error-prone and the HTML/CSS is combination is modeled on single column text based layouts… it’s shocking to find out there’s no built in support for columns and no way to vertically align an element, for example.
I spent a month doing CSS until I had learned to implement the kind of grid I could knock together in 5 minutes in InDesign… very unsatisfying… Whereas later I spent a month learning Python and felt like I made much more progress, deepening my understanding of the digital medium, improving my “procedural literacy” and shaping my views about possible interactions.
So programming logic is actually more easy and fun for me—though that doesn’t take away from the fact that you need CSS knowledge to make a design work…
The first law of UI design is that you will fuck up most of the time. Most of your ideas are going to be bad bad bad. If you think that every mock comes out of your workstation smelling like roses, then you're either deluding yourself or you're just knocking out something incredibly derivative. To be a good UI designer you have to say no all the time, and to all of your ideas.
So here's the problem. Static image mocks only paint about 60% of the picture when you're talking about modern (especially touch-based) interfaces. Static mocks don't give you enough information to accurately cull your ideas. Sometimes you need to build the damn thing, so you can touch it and move it and realize well damn, that wasn't such a great idea after all (or oh, this part really needs to be changed or the final, magical yeah, that's not too bad).
All of the best and most innovative UI designers that I've met have been able to build interactive mocks of their designs. Now - don't ask how they did it. It's spaghetti code that will curl your hair, frequently written using some arcane technology that might not even be supported anymore. But it works just well enough that they can use it to iterate on their ideas.
Now, you can split this job into two people. One a "designer" and one an "interactive mock engineer". In theory, it could work, but in practice I've found that it becomes hard for the designer to detect the flaws in the design. I'm not sure why. But the final product doesn't change as much. It doesn't evolve as much. It's rarely as good as it should be.