Should Web Designers Know Code? Finding Compromise in a Tired Debate

by on 22nd August 2011 with 21 Comments

Should web designers understand basic HTML and CSS? It’s a tired argument with two sides that refuse to yield, why even discuss it?

The purpose of this article is not to prove which group is right but to attempt to show that both sides do indeed make valid points and to see if analyzing these points brings us to a compromise that both parties can agree on.

A Hot Topic

screenshot

One of our articles last week prompted several comments regarding implications throughout the piece that web designers should have a basic grasp of the code involved in creating a web page. Many applauded this suggestion while an equal number of readers found it to be off the mark.

This topic is one that has been discussed at length on just about every design blog on the web. There are two distinct sides in the debate, the members of which have drawn clear lines in the sand that will likely never be crossed.

I’m Right and You’re Wrong

Anyone who believes that an understanding of code is not necessary for design simply refuses to entertain thoughts that this view could be wrong. Likewise, designers who have a strong grasp of code can’t be convinced that they aren’t better designers for it.

“Either designers should know code or they shouldn’t, such a simple argument leaves little room for compromise.”

So where does that leave us? We seem to be at an immovable stalemate with both sides holding firm. The biggest problem here is that there doesn’t seem to be any middle ground. Either designers should know code or they shouldn’t, such a simple argument leaves little room for compromise.

However, the fact that both sides cling to their views so tightly indicates that each has important points that should’t be looked over. Today we’ll attempt to respect these points and find the elusive middle ground. Hopefully, we can steer the discussion towards a conclusion that both sides can at least partially subscribe to.

The State of Web Development

Given the nature of the debate, I’ll assume that some of us understand how websites are built and some do not. With this in mind, a simple definition of terms will go a long way to help bring everyone on the same page.

The quick and dirty gist is that HTML is used for content, CSS for styling and JavaScript for behavior. The following is a bit oversimplified, but it does reflect the general state of how basic web pages are built.

“HTML is used for content, CSS for styling and JavaScript for behavior”

A typical page might have the text, links, and even primary images inserted via HTML, the structure of which provides the hierarchy for the entire design. HTML is the skeleton of your page.

Likewise, CSS is the skin of your page. Here most of the aesthetic choices are made: colors, fonts, and even layout are accomplished via CSS. Much of what a designer is responsible for is carried out with CSS so if a designer needs to understand anything about code, this is a good place to start.

JavaScript is the optional brain for your page. If you want fancy slideshows or other dynamic features, JavaScript is often the best way to go about it. Lately, CSS3 has evolved into a sentient being capable of stealing some of JavaScript’s behavioral thunder, so the lines aren’t as clear as they once were.

Understanding Your Trade

Regardless of what type of designer you are, it’s hard to argue that it isn’t vital to your career that you attempt to understand the nature of what it is you’re creating.

Good print designers know all about printing and its surrounding processes. They understand basic four color press operations, how the paper is cut to the ad size and how that relates to file setup, what kind of ink is available and how it is mixed; it goes on and on.

A basic layout can be created completely without this knowledge but real professionals invest the time and effort to learn the processes behind the implementation of a design so that they can account for them during the design process.

“Real professionals invest the time and effort to learn the processes behind the implementation of a design.”

Web designers are often given a free pass in this area. Web technology is complicated so it’s unrealistic to expect a designer to understand it. After all, what does it matter how the background color is implemented as long as it matches the design specs?

Is this a copout or a legitimate argument? Do web designers really need to know what is involved in bringing their designs to life the way that print designers do? If knowing the difference between spot and process colors makes you a better print designer, does understanding the role, relationship and implementation of the three technologies mentioned above make you a better web designer?

Designing for The Web

The web is a very unique form of media. Some projects call for a high level of interaction while others are little more than a digital depiction of what could easily be printed content (this article for example).

As a web designer, you’re tasked with analyzing each scenario and providing an aesthetic that best fits the goals and users of the site. An important question arises as to whether or not you can really accomplish this without a basic understanding of how the web works.

Let’s say you’re designing a mobile site and your client wants to keep loading times low. If you know what CSS is capable of, you can easily create an attractive design that doesn’t require images. However, if you’re not sure how feasible something like a cross-browser compatible gradient is, then you’re at a disadvantage.

The same is true of typography. Maybe you want to use a unique font on a portion of text that needs to be live, wouldn’t it help to understand @font-face implementation and what you can do with it?

Separating Roles

screenshot

A major sub-argument in this debate arises regarding whether or not the roles of designer and developer should be completely separate. This is one area where both sides have equally legitimate arguments.

The separatists say that web design and web development are two completely different roles requiring very different skill sets. It’s far better to have creatives dedicated solely to design and techies solely to coding than to attempt to merge the two roles in one individual. To do so would be to require too much of one person and the project would suffer.

Indeed, many large companies all over the world handle their web teams in exactly this manner, with one group dedicated to creating designs which are then handed off to a different department to be turned into a live project. This is especially necessary when a project calls for a high level of development expertise such as with a Ruby or PHP application.

“None of us can presume to know a single format that can and should be applied to every web design company everywhere.”

However, small businesses and freelance operations often can’t afford multiple teams of experts. In these scenarios, the lone superman that can see a project through from start to finish is an invaluable resource. Like it or not, such individuals do in fact exist, many of which are remarkably good at both design and development.

If we approach this sub-argument with an open mind I think we can all agree that there are circumstances where it is beneficial for the roles of designer and developer to be separate and other scenarios where it is better for them to be rolled together. None of us can presume to know a single format that can and should be applied to every web design company everywhere.

The Heart of The Problem

Finding a compromise in the argument above is an important step. If we can all agree that there are cases where both splitting and joining the designer and developer roles is a legitimate structure, then maybe we can come to some overall conclusion about whether designers in general should understand code.

In order to find common ground, let’s analyze each argument. The plight of the pure designer is easy for me to understand because I was in this camp for so long. Visual design is more complicated than many people give it credit for. There are too many HTML and CSS guys that assume that because they know how to build a site, they should be able to design one. Like coding, design isn’t something you can succeed in without a fundamental education and exploration into what works and what doesn’t. Designers aren’t merely people with an eye for color schemes, they’re highly trained individuals who have worked hard to build the skill set that they possess.

The takeaway here is that coders without design experience likely have no business pretending to be designers. Similarly, a designer shouldn’t spend his time hacking together poorly written code.

But wait, we’ve already discussed above how a basic understanding of code can in fact better prepare the designer to create something that fits the goals of the site. So where does this leave us?

The Compromise

The conversation above might seem a little long winded and superfluous, but the steps of logic we’ve gone through are important for bringing us to a point where we can reach a conclusion.

With valid arguments from both sides in mind, a compromise is much easier to come to. We can see now that those who think designers should understand code often don’t really care if the designer is the one who actually codes the website. They simply argue that, armed with the knowledge of how the backend works, a more suitable frond-end design can be created.

“Sometimes insight into someone else’s job helps you become better at yours.”

The compromise is then that, while some web designers can and do benefit from being able to write code, perhaps this skill isn’t quite universally necessary in all web designers. However, that’s very different from saying that designers shouldn’t understand the code that goes into styling sites.

There is an important distinction here. For instance, I understand a lot about how newspaper printing works. I understand the quality of the paper and ink and how that relates to concepts like using rich black instead of pure black in my designs. However, that doesn’t mean I can go out and get a job managing the press room! I understand those aspects of printing necessary to make me a better designer. Sometimes insight into someone else’s job helps you become better at yours.

Similarly, it could be said that web designers should understand those aspects of coding that make them better web designers. Using my previous examples, one can understand the flexibility and restrictions of @font-face without memorizing Paul Irish’s Bulletproof Syntax. You can also understand which CSS3 effects are supported in which browsers without being able to write the code necessary for such an implementation.

Put Down Your Weapons

screenshot

I’m not naive enough to imagine that every reader will agree with my conclusions. As I said above, there are several who simply refuse to consider the possibility that their way isn’t the only way. However, I do urge each of you to consider how much closer we come to ending this debate with the logic used above.

“Your job is to absorb the information that can and should affect your design decisions.”

In the end, why do you care who does what in a web design company as long as the end product is satisfactory? With this goal in mind, a web designer who can’t write CSS off the top of his head isn’t an absolute requirement, but that doesn’t mean he’s off the hook for understanding the fundamental nature of web development and the tools that will be used to implement the design he creates.

Whether you design application interfaces, billboards, websites or shampoo bottles, you have a responsibility to understand how your design will be implemented. If you’re eager enough to learn the process well enough to do it yourself, good for you. If not, your job is to absorb the information that can and should affect your design decisions.

Conclusion

To sum up, we all have fiercely held opinions on whether or not all web designers should understand basic HTML and CSS. However, if we place these opinions aside long enough to realize that both sides of the debate make valid points, then perhaps a compromise can be made.

If we encourage all designers to understand their trade and what’s involved in bringing their creations to fruition, then we all have a clear point of agreement. Put down your judgement of the process of others and pick up a new mantra: Good designers make informed decisions. Who can argue with such a claim?

Leave a comment below and let us know what you think. Is it true that web designers, like print designers, should at least attempt to understand what happens with the design after they hand it off? Does it matter if a designer can write code as long as he/she understand the implications of how current web technologies should affect a design?

Comments & Discussion

21 Comments

  • http://iammikerees.co.uk Mike

    I keep seeing this same rehashed arguement over and over. Two camps, “designers” and “developers” arguing over whether “designers” should know “coding.” It has always struck me that we’re missing something here. Development, to me, means actual backend stuff – you know, preprocessing. To describe markup as anything other than frontend is a misnomer. It’s what’s presented to the client, it is the frontend, simple as. I struggle to even consider it coding.

    There should be three branches – design, markup, and development. Both design and development should overlap with markup, to a degree. Designers need need need to understand the inherent issues with compatibility and the associated markup (the development company I work for still offers IE6 support to our clients, so you can imagine the buckets I’ve filled with tears thanks to one designer’s obsession with drop shadows). Similarly, the developers need to know how to output data in a compatible schema with the markup.

    At the moment, as a developer, I am doing all the markup on any given project I work on. The difference between the designers we use that understand markup and those that don’t, is the difference between taking 10 minutes to mark up the layout, and taking 3 or 4 hours. I’ll admit, I’m not the best at markup, and that does motivate me into wanting to split it all up – I’d love to avoid XHTML and stick to outputting to an XML schema. I’m not creative in the slightest, and this does lead to sloppy markup and workarounds, or even subtle changes to the spec that can be explained away (yea, I really shouldn’t be working in this industry). It’s just that the logic of markup, to me, seems to align much more with the designer than it does with the developer. Preprocessing doesn’t have any of the plethora of issues that clients actually see, certainly no compatibility issues. The developer sets the standard used, so the developer is flexible. The designer, on the other hand, is bound by the tools of the client. They really ought to know what this means for their designs.

    At the moment it seems to be the other way round, and to me that is counter intuitive.

  • William Allen

    A fantastic compromise. As a new designer I often struggle with writing code and really slows down the process. I still continue to try and learn the actual code, but I’m also looking for a more philosophical web coding approach that you talk about. Any good sources?

  • http://underdevelopment! Viki Wooster

    I come to the field of web design with an entirely different background, that of residential building design. In both fields, there is an aesthetic component, design, and a technical component. In the field of residential design, the technical component would be engineering and construction methods and materials. I can say without any hesitation that a residential building designer who does not have a well-developed comprehension of engineering principles and construction techniques is not a good building designer. I design the buildings, I’m certainly not out there in the field hammering them together. But my technical knowledge makes it easier for the guys who are. My understanding of engineering contributes to more efficient designs, even if I am not an engineer. I fully agree with the idea that a good, professional web designer should be conversant with the technical side, even if he/she isn’t the one writing the code or developing the backend of the site.

    Now that I am learning this new (for me) field, I am taking the same approach. I can’t imagine doing it any other way.

  • Nathan

    Front end coding is a must if you’re a web designer. I think the debate worth having now is whether or not web designers need to know how to code in Javascript (no, not just jQuery). That’s something worth figuring out. But if you’re asking why web designers should or shouldn’t know HTML CSS, *yawn*, been there, done that x1000.

  • http://www.innov8graphics.com/ Sanjay Mistry

    As a newcomer to web design, I thought I could get away without learning code to builds website! How WRONG was I. I’m now a firm believer in learning HTML then re-creating you design within HTML.
    Only with trial and error have I managed to learn HTML in the past 12 months as my results show on my website and clients sites: http://www.innov8graphics.com/

    I’ve got a long way to go, but one thing is for sure, a great Photoshop design can only be brought to life on the internet if the web designer understands HTML!
    If you’re graphic designer, I suggest learn the basics of HTML and CSS, it will give you a massive edge on other designers!

    Long live HTML and CSS!

  • amac

    I find that it helps for a web designer to know the basics of code. A developer I work with assumes I don’t know code and therefore gives me bogus explanations as to why certain things can’t be styled that way I designed them. The reality is that he doesn’t have an eye for design so his attention to detail is lacking. When I kindly point out certain things that he’s overlooked, his usual response is that it’s “a browser issue” or “a Mac issue” or “CSS can’t do that” or whatever. Understanding CSS (and HTML) helps me to know when he’s telling the truth or just covering up the fact that he’s not very attentive to design details and is too lazy to fix them. It’s like, if you know about cars, you’re less likely to get screwed over by the auto mechanic.

  • http://martinarguello.net/ Martín Argüello

    I dont know if knowing how to code a design makes you a “better designer”, but certainly makes you a more valuable one. Its the “interfacing” with the other parts of the team that adds the sinergy to the project, not just designing in ps and doing revisions.

  • Darasen

    Good article. I do not think there are many people who think that a web designer needs to know some basics about web development. Likewise I hope no one argues that a web developer needs to know a bit about design. I think how much becomes the real question.

    Any print designer needs to know the technical aspects of printing. In the same way any good painter knows all about his paints from what they are made of to how they dry, as well as knowing all about his brushes paper etc. It seems the crux is that technical knowledge involved is still within the realm of creativity and aesthetics. for example, a print designer knows that in four color (CMYK) printing the ink is actually applied in the order of YMCK. Similair to how painting with a transparent medium goes from light to dark. The technical bit involved is still perfectly relatable to the severely right brained.

    Compare that to modern CSS where many things simply are not intuitive. Setting margin to auto and specifying a width to center a element (just as an example) has no relation to the creative process outside of CSS. This is where designers can hit a wall.

    The industry is not helped in general by managers and HR departments that are unable to differentiate between a developer and designer. Take a look on Dice and see all the designer listings where they ask for a designer that knows PHP, ActionScript and Java. Sadly they do not seem to understand the different skill sets involved.

    Full Disclosure: I went to Art School but have spent the last couple decades in IT. Despite this I can’t program a database one minute turn around and paint a decent picture the next. The brain has to slide into the task at hand.

  • Darasen

    If brevity really is the soul of wit I am an absolute buffoon.

  • Leo

    I believe that you have to know how something is done or could be done to you design it.(sorry my english)

  • Ivo

    I understand the importance of knowing how something works befor you design it, but at what point does this stop being helpfull to create a better design and starts restricting your designers limits ?

  • http://www.webdesigncreare.co.uk Kim Ruddock

    It surprises me that there are people who want to design websites and yet have no interest in how they are constructed. For me I think understanding the structure of a website only aids good web design. A website can be beautiful but most of the time it must be functional too. Markup shouldn’t constrict a designers approach but it should influence the decisions made in order to create something both aesthetically pleasing yet highly usable.

  • Alex

    Oh my god, why even start an article about this… for the gazzillionth time

  • http://www.photosheep.me Lena

    All right, here’s my story:

    Some 4 months ago a lady from an NY graphic design studio contacted me, saying she was interested in my services bla bla bla the project was about this and that, and when I asked her what kind of services she was referring to, just a layout design or design + coding, she answered (like she was insulted or something): “I would take care of the design (this is a design firm after all!!!) but I would need the programming part from you” and she sent me a pdf containing site’s layout – I checked pdf’s Properties and to my “surprise” it’s was created in InDesign, 72dpi, dimensions Letter Landscape (792x612px).

    Here comes the tricky part: layout had a fullscreen photo as a background, naturally scaled down to 72dpi Letter-size. I mean, I knew the very second I saw it what would happened when placed as a background. I tried to explain that the size of that photo “might” look good on smaller screens but she just couldn’t get it. So I sliced that “layout” placing the photo in the middle ( body {background: #fff url(../image/bg.jpg) no-repeat center} ) and when opened it in a browser she got horrified by the large amount of white! Then she got my point… or not?! Then she said: stretch it! Well you all know what happens to an image when scaled up – she was horrified again. Then she said: tile it! It looked even worse. To cut the long story short, she “realized” that I could not meet her demands and she thanked me for my time and patience and disappeared for good.

    The moral of the story is: if you want the things to set up right, you have to know HOW those things behave under the hood. It’s like architects constructing buildings without knowing what bricks or building materials are!

  • http://www.cloudburstdesign.com Cloudburst

    Good article and even better comments. Like many things in life, it all comes down to being able to look at the situation from someone else’s point of view. I have heard from many freelance and professional “web designers” that are struggling to find work, and yet they still refuse to advance their coding/front-end skills and are some of the most vocal about not needing to code. The wider your skill set, the more valuable you become, the more in-demand you are. Simple. Clearly each discipline is a highly skilled area to understand, but if you are motivated, get after it and stretch out of your comfort zone.

  • http://pica-ae.deviantart.com pica-ae

    I work in an agency, so we have the split up between design and development. It does mean that in fact I do not code, but I know the basics. It mainly helps avoiding to design something that can’t be done.
    But when I talk to people and tell them I’m a Web Designer, they always assume I code websites as well… which can lead to big misunderstandings and I have to add “Web DESIGN only”.

    It would be nice, if all words were understood the same. But life likes to complicate things.

  • Jay

    If you don’t understand how something can be implemented then how
    Can you design it? It’s absurd that this is even a debate. If you don’t understand
    HTML and CSS, you aren’t a web designer. You are a designer who creates mo MIPS ghat need to be turned into interface designs by so
    Done who knows how to implement them. the belief that you can design web pages without knowing any code is pompice laziness by those who don’t want to put forth the effort required to know how to use and implement code. Hopefully the shift to code based design via CSS methods will eliminate these hootenanny wannabees.

  • http://trevorbrennan.com/ Treb

    Im so very tired of this debate. Architects have to understand basic engineering principles, web designers should understand basic mark-up principles. If you don’t you are a graphic designer who draws pictures of websites and not a “web designer”.

    Im not suggesting that a web designer needs to be able to build a W3C and WCAG2.0 compliant website in note-pad. But I do ask that one should understand what a block element is, how background image tiling works, how variable screen resolution works, font-family hierarchy. Etc… Basics of why a design can fall apart in a real world environment.

    I think Architecture is the closest well established discipline that this growing one can associate with.

  • http://thebathroomideas.com/ Bathroom Ideas

    f you do not know how something could be implemented then how

    Are you able to set it up? It’s absurd this is a debate. Should you not understand

    HTML and CSS, you aren’t a graphic designer. You’re a designer who produces mo MIPS ghat have to be converted into interface designs by so

    Done who understands how to implement them. the fact that you are able to design webpages not understanding any code is pompice idleness by individuals who shouldn’t help with your time and effort needed to understand how to use and implement code. Hopefully the change to code based design via CSS techniques will eliminate these hootenanny wannabees.

  • http://www.junyuetrade.com NikeJordans

    I got more useful information on this blog.. Thanks to sharing the useful information.

  • http://www.bradcoledesigns.com Brad Cole

    I’m a big supporter of understanding all aspects of your profession before claiming to be a professional. Knowing code is very helpful for the website design process because you become aware of how to get around limitations that a designer who lacked the coding knowledge would not likely be able to anticipate.

Subscribe
Membership
About the Author