Should Designers Have Coding Skills?

This debate has been raging on SitePoint for some time. The issue was raised by Elliot Jay Stocks following a simple tweet:

Honestly, I’m shocked that in 2010 I’m still coming across ‘web designers’ who can’t code their own designs. No excuse.

The arguments for…

There are several reasons why designers should have coding skills.

Medium appreciation

Artists utilize the medium they’re working with, whether that’s paper, clay, cloth, wood, marble or a web browser. A designer who doesn’t understand how web pages are constructed will almost certainly make fundamental errors, e.g.

  • not considering browser viewport dimensions, font stacks, page weight, or coding practicalities
  • providing Illustrator-based 300-dpi mock-ups which are impossible to replicate on-screen (why can’t that line be one third of a pixel in width?)

It’s not rocket science

No one’s suggesting a designer should be able to develop a RESTful database-driven application. But a little HTML and CSS markup knowledge goes a long way. Understanding the basics, strengths and limitations can help designers create better web designs.

Common communication

Coding knowledge will help when you discuss issues with developers. You’re talking their language and will understand the problems they encounter.

You’re a better asset

Who would you employ: a great designer who can’t code or one that can?

The arguments against…

There are those who think designers don’t need coding skills. Perhaps the best designers never get their hands dirty with putrid programming?

Great designers make great designs

A talented designer can create usable designs — no matter where it’s ultimately used.

Time is precious

Why should a designer spend valuable time learning to code and keeping up with HTML/CSS developments? Is that time better spent increasing the quantity and quality of the design work?

You don’t need to be a plumber

A architect designing a house doesn’t need to be an expert in plumbing, electricity or carpentry. Those tasks can be handled by an expert in that field — in the same way that designers can hand artwork to an HTML/CSS coder.

Ignorance is bliss

Those who don’t understand the web aren’t constrained by its limitations. They may create a seemingly “impossible” design which pushes the boundaries and leads to fresh ideas.

Have your say

In my experience, the best designers have dabbled with coding. They may not have understood the subtle complexities of HTML and CSS, but they knew how to create a usable design which embraced the medium. But my opinion could be biased: they were the easiest people to work with and didn’t need lengthy training sessions about pixels, fonts and browser issues!

What do you think? Please vote on the SitePoint home page or leave your comments below.

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • Valheru

    I am totally for the knowledge of basic knowledge of html and css skills.

  • Carl

    Every thing in life depends on perspective. I can point you to many Coders
    in 2010 that are not good designers. Ever heard the KFC “Tag Line”?
    “We do one thing and we do it well”, We do chicken right!
    Stop trying to wear more then one hat, unless you got a Big Head!

  • madr

    From my experience, designers with basic skills never deliver impossible or hard to implement design. These designers knows the web and try to find the golden pieces in the technical dependencies rather than working against or outside the flow. They interact with me, the developer, to make the best site possible and understands me when I rate their work.

    Designers lacking basic skills tend to give headaches. In good times, they can work close to me asking “I think like this, will it work?” every second hour or so, but in times when I’m not available for giving feedback, their work always come out in a way which is hard or even impossible to create with HTML and CSS.

    I therefore voted Basic skills.

  • Jeff B

    “A architect designing a house doesn’t need to be an expert in plumbing, electricity or carpentry.”

    I built houses for years and architects that have never built one of there designs usually have huge faults in their designs that are found in the building process.

    Now I am a designer/developer, doing more developing now, but the same applies more true here than the statement made in the article about it.
    If a designer does not code some designs they have made, they may never see the faults. But at the same time, a good developer/carpenter should be able to look at the design and say this wont work because….

  • Anonymous

    They do. I blogged about this too a while back, and pretty much everyone agreed that “Web Designers” do at least need to have some understanding of what can/can’t be done on the web.

  • hoshimo

    as a designer who is building graphics for the web, it is important to know how html and css works, but doesnt mean you have to be able to code an entire website by hand. i learned basic html, css, and even wordpress stuff… all because i was designing FOR it. when you know how the foundation works, it really helps in the design process and allows you to be more creative within those boundaries. it also makes you a more thoughtful designer, especially if you have to send those designs off to someone who has to code it. it’s like playing sports. the game is much more fun and you can be much more creative the more you know the rules. it is always important as a designer to know about the medium that the finished product will be on.

  • Marin Todorov

    You know this kind of really works both ways … I keep seeing job postings (and I feel like that’s the majority of them) who either ask for “designer with knowledge of html/css/javascript, ruby on rails, mysql, seo” or “programmer with very good knowledge of Photoshop, Fireworks, Illustrator, typography, 5+ years experience on the color wheel is a plus” …

    • http://www.optimalworks.net/ Craig Buckler

      I’m not so sure. I suspect that most HTML/CSS coders have a reasonable knowledge of images and optimization because it’s part of the job. They’ll know their way around PhotoShop, but can’t necessarily create a great artistic design.

      The difference is that a designer can give anything to a coder. Most designs can be coded, but whether they should be is another matter.

  • richthegeek

    If a designer is to have skills, there is no use for a halfway-house.

    Experience with designers who know “a bit” of HTML/CSS and thus provide their designs in ‘coded’ form are generally a bit of a nightmare. The code almost always needs to be re-written, and a lot of the time it’s not just a few IE bugs.

    Things like using IDs instead of classes (eg, 3 instances of #row in #list), just using an image to display a “button”, so you have to code that in along with the CSS to make it look right *everywhere*, or just plain old semantically incorrect code.

    So yeah, if they are going to code it, they better be good. If they aren’t, stick to the art cos I sure as heck can’t do it!

  • KiT

    Should a developer have designing skills then?

    P.S. I cannot login using the provided forms in the reply section and I cannot find main (or alternative?) login section/button on this page.

  • Juced

    Horror of horrors to all Devlopers: Flash Designers (Not Flash Coders, diffrent beast…)

    I find it next to impossible to work with graphic designers who have done just a bit of flash. Now try explaining to them why they have to consider that this thingymajig cannot fly across the screen, bounce a couple of times and then magically transform itself into a multi-select dropdown box with tickboxes, all inside of your database driven, dynamic website, without adhering to at least some constraints, and all you get are blank stares at best, and at worst, a designer telling the client that the developers don’t know what they are doing.

    Juced

  • Belouge

    HTML and CSS is not programming! HTML is a markup language. And yes designers should know how to use HTML and CSS.

  • Anonymous

    I don’t think designers should *have* to know how to code their designs, but at the *very* least they should fully understand the problems in converting from a design in photoshop to an actual webpage. You would expect an architect to understand the limitations of construction (in 99% of cases), so why shouldn’t we expect designers to understand the limitations of web page construction.

  • chrishoward

    Why do we even have this argument? Is it because developers think they can do design?

    All the arguments raised for and against are quite valid. So how can we say either way. I personally think it benefits a designer to know a bit of the coding, and I’d be surprised if there’s many web designers who haven’t at least dabbled a little.

    I’m sick of this argument. Great web design can be done by people with no coding experience. Knowing the mechanics of web pages is much more important than knowing how to build one. For instance, knowing that horizontal scrolling is generally a no-no, or folks don’t want massively long pages, nor do they want pages so short they have to keep clicking thru.

    Can we put this argument to bed and accept that there is no right answer?

  • XLCowBoy

    The more a designer learns about HTML/CSS/JS, the more they will know how to “push the envelope”, and the better their designs will be.

  • http://www.skylight-studios.co.uk tdsmithj

    I agree with the above. While I do not think designers should know how to implement websites using CSS and XHTML. I would assume they would have a basic understanding.

    For example an architect would not design something which could not be constructed.

  • cyberwhiz

    Having knowledge of HTML and CSS is not bad. Infact it is recommended. because this would go a long way in creating a beautiful work environment for both the designer and developer.

    Complications are minimized because the designer is well aware of limitations.

  • joybells

    Having worked in both worlds, I feel I can say there is a very definite advantage to knowing what can be accomplished in a browser, how a user would interact with a design, and how the design would be implemented using either CSS, images and other elements. This is especially important if you are designing for the overall user experience (and this should includes a user-bandwidth consideration, something I’m not sure even coders are aware of).
    But there is also the flip side that so often we find ourselves constrained by current capabilities and thus not designing the experience as we want it to be, and next consulting with a coder/ developer to see how we can develop new ways of doing things. We will never push the envelope if we have to be all things to everyone. Sometimes being visionary means being able to ignore the present, if at least for the creative part of the project.
    I find I do that with some of my work: when I’m doing initial comps I forget about the limits of HTML, CSS and browsers, but when it comes down to the final artwork I’m tweaking my design so that it is easily transferred to an implementable HTML/ image/ CSS combination.
    The real problem comes at the next level: Content management system users. I have seen print designers with broad job descriptions roped into transferring their print material to the web, which they typically do using Photoshop’s export to web, copy and paste into the CMS without any knowledge of html css or even the difference between web art and print art.
    So, how far can you take this argument that designers should understand HTML & CSS? My answer is that it depends on the team you work with. If they don’t have a basic knowledge then your team should have someone with an ‘architectural’ view of the whole project and an understanding of the skills required to get the design from board to browser without jeopardizing the user-experience. Teams that communicate well can overcome shortcomings of not ‘knowing’ the others skill-sets. After all that’s what a team should be for. However, short of knowing what job you’re going to land, I would not leave things to chance by not getting some sort of grasp on the coding side of things.

  • BPlunkett

    I don’t think it’s important so much for a designer to know how to code their design. Even if they did, the chances of them fully understanding the proper ways to do so (semantics, usability, scalability, etc) are very slim. That is the developers’ responsibility, and there is a reason the two are separate.

    And about HTML and CSS being markup rather than programming: yes, that is true, but rarely today does the process of converting the markup not involve some sort of programming. Whether it be integrating a template into a CMS, or implementing even something as simple as a loop in custom code (not to mention having to learn whatever templating engine the CMS may use), the designer should not be responsible for that. A developer, if allowed to write their own code, can become intimately familiar with it, properly comment, and overall, be able to work with it in a much more efficient manner (and write generally more efficient code).

    That being said, the designer should still understand some of the concepts and have a basic understanding of what can or can’t be done in web design, or what should and shouldn’t be done. I’ve spent the last few years working with the same designer and every passing month, with each project, it gets easier as he begins to understand my world just a little bit more and why I recommend certain things or recommend against others. He’s a great designer, and I’d like to think I’m a competent developer. Combine him, myself, and a few others in the process, and we’ve got a great team.

    Each person has their task, does what they’re good at, and does it well. If one person was responsible for knowing how to do it all, there would be no use for a team, and I think project quality would suffer as a result.

  • http://www.3eighteenmedia.com 3eighteenmedia

    I have to agree with Elliott. Clients these days, even if you explain it to them, would still scratch their head if you told them you design websites, but you don’t actually code them. I think it’s immensely important that designers know HTML/CSS markup.

  • Carlo

    I think you are confusing the web designer with the graphic designer, whose skills are related to just graphic (photoshop, illustrator, Flash etc.). “Web designer” is the one who design a site, not a graphic designer.
    A web designer must know html and CSS, because it’s the one who codes them. He must also know usability, accessibility, IA et cetera.
    The web developer is the one that develops the application behind the site (PHP, .net, ruby etc.)

  • alialib

    If you’re a web designer, you should know how to code. If you don’t, you’re a designer, not a web designer. Web design is a highly technical branch of graphic design. It involves uniting artistic ability and technical know-how. It is a skill of infinite possible depth. And if you’re a “good” web designer who delivers value for your clients, you’ll be able to offer them the entire package.
    So you can know no code and design for the web, but you’re not a web designer unless you’re a code weaver too.

  • mwistrand

    I would argue that it is important for designers to understand HTML & CSS so that they will at least be able to understand what they are asking their coders to do, regardless of whether they are coding the sites themselves or not.

    Honestly, I would much rather code than design, and one my coworkers would much rather design than code. Not having to code frees her up to focus on designing sites that cater to our clients needs. Yet at the same time, she is very familiar with HTML & CSS, so her designs are generally pretty well thought out from a coder’s perspective.

    If you have someone who can code for you, great. However, understanding the code yourself can really speed up the process, as your coders won’t be coming back to you as often with revisions to your work.

  • uxFOOL

    XHTML/HTML and CSS are the content and presentation layers. If you purport that you design for the web, then the more you know about these two the better and more feasible design you can create. Design for your medium.

  • ksport

    I think that designers who are designing for web should have at least basic knowledge of what they are designing for. Even if it is a basic knowledge. For example, if the designer is designing a really nice AJAX slider. I am of the thinking that they don’t need to 100% know how to code AJAX to be able to design for it, but they should understand what is capable. And with great coding services out there, designers can design more, code less, have a quicker turnaround, and increase their profits without having to increase overhead and have a guarantee that their code is the best for their specific job.

  • mathieuf

    I have worked with a designer who thought he knew code, and he caused more problems because he wanted me to use his code which was not up to standard, and he wanted to poke at production code. While I believe a designer should have some knowledge of the work it takes to produce a design (to limit unrealistic expectations in results or time to complete), and some sample pages might be appropriate, don’t touch code intended for production.

    The alternate is also true: The Web engineer should have some knowledge of design (best fonts to use, use of colors, etc.) and be able to discuss this with the designer.

    Do your designers get involved in accessibility? Not the ones I work with, but it would help if they did. They say they support it, but they never include it in designs. (Write down the titles on anchors, etc.)

    The hard part is to work together without stepping on toes. Difficult in many work relationships, harder when the result has to be shared (both complements and critiques).

  • Inxentas

    I’d prefer a designer without coding skills that can accept a 5% change in his design, then a designer that delivers crappy html / css implementations and expects a perfect conversion.

  • strgt

    designer + HTML + CSS + (Flash*optional) = web designer
    developer + JS + (PHP|.net|ruby) = web developer
    You can’t call yourself a web designer if you don’t know web.
    BTW, the term webmaster is deprecated. it was used long ago when a single person did the design, development and IT… that’s not possible anymore. The one that says they can do it all, really can’t do anything (or at least I won’t hire anyone that says that).

    • Wolf_22

      The term “webmaster” is not deprecated.

  • teaberry

    Understanding the limitations of the web — definitely, yes. But I can’t imagine any good, seasoned designer out there who doesn’t know that you can’t make a line “one-third of a pixel” (as stated above) — that’s basic Photoshop.

    But as I am trying to learn HTML/CSS coding, I have been faced with asking a question to a full-fledged programmer/developer who, upon asking him a simple layout question, begged me to switch the screen view into code-only because he couldn’t *see* anything in the layout view in Dreamweaver. Full-on programmers see things differently than designers, as we see things differently than they do — it’s simple left brain/right brain. So to expect a designer to be able to work with high-end, intricate programming is to ask a programmer to design. We’re both out of our elements.

    I do agree that to design web pages, you should understand what can and cannot be done, but beyond HTML, CSS, and a little javascript, advanced/dynamic programming languages should be left to the professionals in that field. And if developers aren’t required to know their way around Photoshop or Illustrator, and to understand why designers do the things that they do, then why would we have to know how to do their jobs? We should work together toward the end product, not fight each other or blame each other for not understanding how the other thinks.

  • Greeneggsandham

    Designers are ultimately artists, and most professional artists understand the medium, the space, and the audience, better than themselves. In light of that, it is in a designer’s best interest to know some basic html and css, otherwise they are just stumbling around blindly. It can only help.

    Insert cheesy quote here >
    “You can only think outside the box if you recognize that there is a box. ”
    “Great design is born when designers choose to overcome the obstacles and limitations they are presented with.”

  • FunkyDUde

    Anyone can open Illustrator or Photoshop and start hacking away at a design. That said, HTML and CSS is a little different because you actually have to learn what your doing before you can see results.

    Web designers (frontend) should at least learn HTML and CSS, this way everything is coded and the programmer doesn’t have to worry about tweaking the css to get the design to look just right, visual display and implementation should be part of the designer’s job.

    • teaberry

      “Anyone can open Illustrator or Photoshop and start hacking away at a design.” — Really?? And that’s why the web is littered with really badly designed sites. You say that HTML and CSS are different because you *actually* have to learn what you’re doing — design isn’t easy — it’s a learned skill, and often an inherent skill that people have, and it’s not something that anyone can do just because they own certain software. You own Word: does that automatically make you a writer?

      Just because a website is coded well, doesn’t make it a good website. The design is what makes it attractive, usable, and well-received. And that takes talent and experience, not just a copy of Photoshop!

  • Artem Nezvigin

    As a developer, I don’t expect designers to understand HTML/CSS. The best designers I’ve come across don’t know the first thing about writing markup.

    In my opinion, our industry doesn’t appreciate the amount of work that goes into a well thought out beautiful design. Designers deserve the right to focus on their artwork and not cloud their mind with the constraints of the web. This fuels innovation, creativity, and out-of-the-box ideas. There is way more to good design than creating web pages. Any designer worth his salt understands design outside of the web and applies this knowledge in the web.

    A good company should have an open line of communication between designers and developers. If something isn’t technically possible or is impractical for the web, we ask for a revision. In time the designer will notice common issues like typography and screen resolution constraints. This is a benefit of experience.

    If, as a developer, you think designers should know how to write markup then you should be learning color theory, the gestalt principles, importance of typography in design, etc.

    People deserve the right to work exclusively on their trade without a bunch of lazy developers pushing to learn theirs.

  • Wolf_22

    Our understanding of the term “web designer” is almost always subjective to the person’s perspective who interprets the meaning of the title. In today’s world, many variables exist that determine whether someone is capable of working on websites and since this stuff is always changing, it’s hard to really stereotype anyone at all.

    Personally, it’s been my experience that much of this classification stuff depends on the type of environment you work in or employer you work for. If you’re on a big team consisting of multiple subsequent squads, then the chances of being able to focus on a specific technology or skill is much more likely. Again, that’s been my experience.

    Nothing is really black-and-white with this stuff anymore, especially when speaking in abstractions (i.e.- the difference between a “web designer” and “web developer” and other somewhat philosophical topics). Each person’s experience and job title is often different and the only way to understand what they’re adept at or what their work experience consists of is by sitting down with them and either grilling them on what they know and have been through or by reviewing their mental health records.

  • http://icoland.com/ glenngould

    Should Designers Have Coding Skills?
    Yes.

  • justSeth

    Yesteryear, the mere idea of a designer coding was just fantasy! Today, that rare breed con>tinues to evolve into what what I’ve coined as “Dev-igners“.
    However, this should never be a requirement but a nice to have and totally depending upon the job requirements. In most cases, the coder who can design codes much better and the designer who can code designs much better.
    My Final Word:
    It’s important for a web designer to “understand” the limitations and possibilities of the putrid programming in order to produce the best design and it’s beneficial for the programmer to “”understand” design.
    Both should have a sense of usability as well but none should be required to be usability experts!

  • imtiaz wazir

    Should Designers Have Coding Skills?
    Yes!
    They should have a coding skills, but limited to (X)HTML/CSS. Because, designers are only one, who know what they’re designing. So, suppose, if a designer also knows how to write XHTML/CSS. Then, the designer will think that I should not design like this, it will create hard for me to code this design. So in short, if he also codes his own designs, then It will be easy for him. And also should have some sense about server-side language ( PHP, ASP, ColdFusion, etc ). If a designer codes his design into XHTML/CSS. Then he must have knowledge when to use class.. and when classes are needed. etc. :)
    So. my equation
    Designer + (Developer – Core Programming) = A good designer

  • zubair sota

    see on my point of view designer have to know about coading… if he dont like coading not an issue but he sould aware about protocol of coading.. it’s all about designer careear.. and without coading knowladge we’ve to be depended on programmer… :D :D

  • ravi_k47

    as far as i know there are creative designers and web designers.

    web designers need to know the coding and standards in the web.

    anything other than that is a + for them

  • nobody

    If you can use your imagination to desgn something appealing, what stops you from utilizing that brain power to learn incredibly simple markup language? There’s no excuse. You can’t be a great web designer without knowing the language behind the web.
    Also, I like it how people are still biased – a coder can’t be a designer and vice versa .

  • Anonymous

    A designer of any sorts should know the boundaries and restrictions of their subject matter! Ie a web designer should know what can and cant be done with CSS, html, flash etc.

  • Ali

    I sadly fall in this category, I cannot code my own designs, but then I’m much more skilled then quite a bit of designers out there.. As far as I’ve seen my self, I’ve noticed that designers that can code tend to be really bad at creating beautiful designs, and then there are designers who don’t know how to code but there designs’s look great, amazing even..

    But I agree 100% with the post, every designer should know how to code xhtml/css, and I also agree with someone who said learning to code helps you understand the boundaries of xhtml/css.. which as a result helps you become a better designer..

  • nachenko

    Juced nailed it. The horror of horrors are Flash designers. They simply don’t get it.

  • domdedom

    The question I’m interest in is “should coders be able to design”? When building sites it’s important to be able to answer questions like “What should line up with what, and why”, and “how should the site render on a very wide monitor” for example.

  • design student

    The question is the wrong way around.

    Instead of asking “Should Designers Have Coding Skills?” You guys need to ask Should Coders Have Designer Skills?

    If you look at how poor the aesthetics are on most web pages and then consider that the majority are created by people with great mark up / coding skill but little to no design training then the answer becomes obvious.

  • chenry1674

    An argument can be made that designers shouldn’t have to be able to code, and that being able to code could even be a detriment to their ability to design, and could get in the way of the creative process. When a designer has a lot of preconceptions about the web should work, they may be inclined to design things as simply as possible, and not try to push limits. Of course, this should be taken with a grain of salt, as the times when it is appropriate to really design things that are difficult to build are few and far between.

  • David

    Everyone on the web should have a slight knowledge of HTML but someone that designs for it should be an expert.

  • MJ Pieterse

    I can’t seem to log in, so here is my thoughts any ways…
    Okay, so lets assume that a chef can only see what ingredients will make a good meal but can’t make it himself… that would not be a good chef, will he? NO
    Or what about the architect mentioned in the article, if he is drafting the sketch but he does not have the proper measurement tools and instead of a fine pencil, he has a black board marker. That won’t work either.
    The whole concept of web design is simple. You create your draft and then you start implementing it with HTML and CSS. It’s only once you start implementing the site you will see what works better and what does not. A better idea might arise and the designer will scrap certain parts of the concept design because it’s not working well cross browser.
    It’s basic:
    Web Designer = HTML + CSS + Java + jQuery + all those smart little things he wants the site to do…
    Web Developer = C# + php + databases + SQL + VB + what ever is needed to make the site function dynamically…
    I think that a designer should be responsible for the entire design of the site. Not just a little mock up in Photoshop. You are NOT a web designer if you can’t even implement it on the web. That just makes you a layout artist and you should consider just going back to / just doing graphic design.

  • Tim

    From a business point of view….

    From my experience I’m a designer turn developer and found that its good for both designer/developer to know a little about each craft. In the beginning I started doing it all and then found out its too much work. My turn around time was taking too long. I would design a killer layouts for my clients and they would love it. Then I would have to scale down the design remove certain elements, because A. I ran into coding problems I haven’t yet face or B. the project was approaching deadline. So I would either sacrifice design or development on each project.

    I recruited my graphic design friend who works for one of Frobes top 100 companies. I knew he had the graphic skills to to be a web designer. So I taught him the basics and from there we double our growth. I focus on development and he focused on clean web designs.

    My advise… BE A DESIGNER OR BE A DEVELOPER.

  • EdEddnEddie

    Just like in music production, why should the artist know how to use Pro-Tools and Audio Engineering equipment. An artist should just come into the booth and sing. That’s their talent. The Music/Sound Engineer can deal with the rest. Together they can collaborate and make an amazing song. Same for designers & coders. They can collaborate and make more sites, creating more business and get more stuff out the door faster. 2 people stay employed…now if code writers want designers to become experts or even a little savvy then, I might as well take a few courses, practice till I’m perfect and cut the coder out of the picture. That’s just bad business. Nothing wrong with knowing a little but as an expert in design who designs for one of the biggest software companies in the world, I’ll tell you that, let the artists make art and the techies get techie…the world will go round much more smoother.