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

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

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

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

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?