There you are, sitting at your desk, the first fizz of a newly opened can of soda still sparkling in your ears, and your new hire walks in the door. Your design firm is small, but beginning to grow and you’ve just brought a new web designer on board. He’s not particularly experienced, but he has a good educational background, a small but impressive portfolio, and was bright, personable and apparently knowledgeable enough during the job interview.
Then, before lunch, you overhear him talking with your only other employee. "I don’t really know how to write HTML and CSS that well," he whispers. "In school, they taught us to slice Photoshop designs and tweak them in Dreamweaver. It works for me, but if you ask me to get in there and get my hands dirty in the code, I’m not very comfortable doing that."
You manage not to drop your soda can onto the carpet, and you sneak back into your office wondering what you should do. Fire him now? Hire someone else who knows code, and let the two newbies work together? Depend on your veteran employee to help him figure it out while you crack the whip from on high?
This article discusses the debate of whether or not knowing HTML and CSS is required for web designers. I will, for the most part, reference thoughts and opinions of people in the web design industry as talking points.
To Code or Not to Code: Seriously
A web designer who doesn’t know a lick of HTML/CSS isn’t as rare as you might think (or hope).
The issue was raised, not for the first time, in February 2010 by author and design guru Elliot Jay Stocks, who said via Twitter: "Honestly, I’m shocked that in 2010 I’m still coming across ‘web designers’ who can’t code their own designs. No excuse."
Stocks’s comment started a Twitterstorm of controversy, which quickly moved over to his blog, and inspired other blog posts in response. Many designers and leading personalities in the industry — including Jeffrey Zeldman who once said, "Real web designers write code. Always have, always will." — agree with him.
But a big shocker was that a surprising number of individuals said that knowledge of HTML and CSS wasn’t necessary any longer.
After writing his own take on the subject, SitePoint author and blogger Craig Buckler put up a poll that asked, "Should Web Designers Code?"
An overwhelming majority of the poll’s respondents (70%) said "web designers should have good HTML and CSS coding knowledge". A small proportion of respondents (25%) said "basic knowledge was adequate."
Only a small minority (5%) said "a good designer could create a great website design without coding knowledge."
Buckler wrote that he was surprised to "discover a significant proportion of respondents stating that good coding skills were essential."
Me? I dropped my soda can in shock.
Arguing Against the Need for Coding Skills
Many of the arguments that defend a web designer not knowing how to code their PSDs into HTML/CSS echoed that of Jay Fanelli, who wrote in response to Stocks’s tweet:
"If you’re a designer who has kept your coding skills sharp, good for you (seriously). If you’re a designer who has taken up coding recently, I applaud your effort to broaden your skill set. But understand that it’s not necessary anymore."
Designer Stan Grabowski, in response to Stocks’s blog post, said that it’s more important for a designer to know how to design, and to work alongside a coder on the design team, than it is for a designer to know both design principles and code.
Programmer Spicer Matthewscommented that web designers ought to have some coding skills, but that he thinks "it is their right to say ‘no they do not want to work with code’."
Ace designer Mark Boulton came back with the fence-straddling "It depends." Boulton called the ability to code "a tiny aspect of web design," with implementation far more important. He posted a strong argument, and one I do not dismiss entirely out of hand. (For one, he’s a much better designer than I am.)
SitePoint commenter Chris Howard said: "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."
Even Stocks himself admitted that he occasionally doesn’t code his own designs, but focuses more on design and art direction. There is, of course, a big difference between choosing not to code a particular design and being unable to do so.
Stocks notes: "[H]aving that knowledge and choosing not to code (whatever the reason) is entirely different to lacking that knowledge in the first place, which — I believe — has the potential to unintentionally distance the designer from the end product."
Fanelli argues, though, that "[a]n architect doesn’t have to know how to build buildings."
The Majority Opinion: Web Designers Should Know HTML/CSS
The majority opinion might be represented most pithily by Ian Lang, who retorted: "Designers who can’t code (or don’t know spec on appropriate format for intended usage) need only learn one more important thing to succeed… ‘Would you like fries with that?’"
Perhaps less insultingly, designer Jason O’Briensaid, "If you’re just pushing out PSDs, you’re making a picture of a website. It’s not actual web design until it’s being rendered by a browser, interactivity and all."
SitePoint member Alialib echoed many others by writing: "If you’re a web designer, you should know how to code. If you don’t, you’re a designer, not a web designer."
Designer Amy Mahon complained, "We get ‘web’ designs sent in Illustrator, 300dpi, impossible to code, no consistency/usability," with Stocks noting in fairness that Mahon’s statement represented the extreme of ham-handed "design practices."
As Stocks went on to note, contrary to Fanelli’s well-written assertions, web design is not separated between designing and coding the same way architecture is separated from building and construction practices. However, I know enough construction workers to know that they do appreciate an architect who knows enough about construction to create a workable design.
So do many of Stocks’s commentators, including designer and blogger Veerle Pieters. Pieters agreed with Stocks saying, "I wouldn’t trust an architect that doesn’t know how to build a house."
Obviously, a large design firm that has specialists for different aspects of web design has the luxury to have designers who work strictly with Photoshop, Illustrator, Fireworks, paper and markers, and so forth, without ever having to write a line of code.
Even some smaller firms can have a graphic designer who works hand in glove with a coder to produce lovely sites: Fanelli cited his firm, Full Stop Interactive, as just such a firm, and he’s right. Jake at jp74 made the same assertion as Fanelli, as did some others.
But for most of us, a grasp of the principles behind web design as expressed through HTML and CSS — and at least some facility at using them to produce elegant and workable designs — is a necessity for us. I would argue that in many firms, the designers and coders often end up at loggerheads, with one having to go behind the other to redo the mess the first one supposedly made.
Web designers who lack an understanding of code, and coders who lack an understanding of design principles, often create conflicts with one another through their lack of shared understanding; as a result, the design process suffers and the firm loses time, money, and perhaps even clients.
All the Discussion in the World Will Not a Coding Designer Create
Freelance designer Gary Stantonsaid: "My only concern with this debate, is that designers who can’t code will now attempt to do so, and do it badly. Good front end code is as much down to experience as knowledge, as there’s so many different ways to achieve the same result."
And Stanton made a seemingly innocuous observation: "It’d be nice if there were some links to articles for designers getting started, on how to code the right way."
Stanton’s absolutely right. But I’m not going there. I’ve created my own attempt at a "best practices" web design tutorial site, though it’s nowhere near "finished" or even, arguably, presentable yet.
You may be a small design firm founder with a very small staff; you may well end up with someone on your staff that has mad design skills in Photoshop, Illustrator, or even Gimp, but balks when faced with real live HTML/CSS. If you want those design skills on your team, you’re going to have to teach your new designer some code.
I found an interesting story from graphic and web designer Dani Kelley, which I think illustrates perfectly the fictional situation with the soda-crazy design firm boss written in the introduction. Kelley writes:
"I originally majored in print design. For my internship, however, the only position available at the time was with a web design company. I knew a little bit of html [sic] and css [sic], but not much, making me a bit reluctant to enter into the internship. The company assured me that they realized they would need to teach me some things along the way. I was lucky enough that my first web design was highly applauded by the client — then I was told to code the site. I took what little knowledge I had and tried my hardest … couldn’t do it. Then passed the site off to the head of development. He couldn’t even get it to work. The file literally went around the entire firm until I had to go back and tweak the design to get it to work."
Reading that as a journeyman web designer and a veteran teacher, I twigged off the bat that while Kelley’s boss might have offered some help, she actually got very little, and none of it systematically or with any real thrust or organization.
She got some tips, went back to her desk, and tried her best to figure it out on her own. How many paid hours did she spend learning code when she could have been working on designs? How much time did the firm waste on trying to bash out code for Kelley’s "uncodable" design?
HTML and CSS Are "Easy"!
A lot of the proponents who took to Stocks’s side said that, ultimately, there’s no reason not to know HTML and CSS because it’s easy to learn. In fact, the "ease" of learning HTML and CSS is almost axiomatic among the design community.
Well, no, HTML/CSS is not easy to learn.
More accurately, it’s not easy to master. Cross-browser support, standards-based code, best practices (and understanding why they’re best practices), optimized markup to avoid excess code soup, optimizing CSS selectors for performance, CSS sprites, writing flexible markup for easier maintenance — these all take a while to learn. Marking up a basic HTML/CSS page is quite easy, but doing it right and in advanced levels take years of learning, practice, failure, and experience.
You found it easy to learn? Assuming you know what you’re doing, everyone’s not you. What you found easy, equally intelligent and creative people will find difficult.
I’ll let Buckler weigh in on the subject:
"There’s a widespread misconception that HTML and CSS are easy. Take a sample of resumes from people in IT and you’ll find a ridiculously high number quote HTML as a skill-set. Many of those people will also know the rules of chess — but how many can claim to be a grand master? While HTML and CSS are not programming languages, they have subtle complexities that are not appreciated until you have considerable development experience. Graphic artists rely on precise positioning and programmers rely on rigid coding conventions, yet this level of exactness is rarely experienced in the browser world. Few people master HTML and CSS whether they migrate from a design or programming discipline. Should we expect everyone to have intimate knowledge of browser quirks, usability, semantics, accessibility, progressive enhancement, etc?"
A freelance designer who calls herself "Kathleen" posted on Drawar:
"I’m not an idiot, and I find HTML/CSS to be hard. Not just a little, but a lot. I taught myself Photoshop starting way back with PS4, and didn’t bang my head against it the way I have with code. It makes me so angry every time I see someone post on the web that learning code is ‘easy’ and every designer should ‘just do it’. I’ve tried to learn how to code for years, and it just doesn’t come to me naturally or stick with me. I’m a very visual person, and those rows and rows of words just don’t translate to a design in my brain. I keep trying to pick up coding as a skill set, because I know that at this point people won’t hire designers who don’t code, but I’m so sick of feeling ‘not good enough’ because I don’t think coding is easy."
Most of the commenters in the forum agreed with her, even the hardcore coders, with one, "Awesome Justin," saying succinctly: "HTML and CSS. Easy to learn. Difficult to master."
Web designers should know HTML/CSS — even if it’s just limited to the fundamentals — for the sake of being able to create web designs and web interfaces that work on the medium. Web designers may choose not to write the HTML/CSS themselves, but knowing how markup and CSS works is essential to being a web designer. Web designers might not need to be HTML/CSS ninjas, but it serves them well to know (at least) how their web layout comps are converted to a website.