Question

What skills and technologies should colleges and universities teach students who want to be web designers and/or developers? Why?

James Archer

None. The industry moves fast enough that the curriculum is obsolete by the time they get around to committee approval. That’s why Forty won’t hire anyone who comes out of a university web design/development program.

I guess that’s probably not a feasible answer, though, since they’ll forge on ahead and do it anyway, so I’d say that the most important skills and technologies are:

  • History of the internet in general, and the web specifically. Anyone can learn that means bold, but becoming proficient requires a broader understanding of the background of the web, and a historical perspective can provide that.

  • Solid background in design as a discipline. Typography. Color theory. Layout. Grids. The basics. Education institutions tend (with a few exceptions) to skip even the most basic principles of design (“the why”), and instead to jump right into technology and implementation (“the how”). This has resulted in a generation of Photoshop Jockeys who have mastered gradients and bevels, but have no idea how to find the golden mean, or how leading should be handled.

  • Information architecture is absolutely essential—and almost universally ignored. Teach proper web planning—site maps, wireframes, page description diagrams, etc.

  • HTML/CSS should be hand coded. No exceptions. WYSIWYG works great up until the point that something goes wrong (open tags, messed up cascades, etc.), and then it’s worthless. They need to know how to handle bad situations, not just ideal ones.

  • HTML should be taught in tandem with CSS. Students should see them as fully symbiotic.

  • If I had to break it down, I’d do it like this:

  • 40% - design theory
  • 25% - information architecture (interface planning)
  • 20% - HTML/CSS
  • 5% - flash and javascript (overview)
  • 5% - project management (overview)
  • 5% - server side software (overview)

Andy Budd

Colleges and universities should be teaching core design skills like colour theory, typography, branding and design psychology. They should also focus on user-centered design skills such as ethnographic research, usability testing and information architecture. And they need to develop softer business skills like presentation training, marketing and running your own business. Technology wise they should probably teach standards based development and some for of object oriented language.

What they shouldn’t teach is specific packages like Photoshop, Dreamweaver, Flash etc. They also shouldn’t teach specific programming languages as there change regularly. These things are easy to pick up own your own and don’t require specific training

Joe Clark

Easy answer: Web standards. But college and university profs have outdated skills and are the least likely to even know how to code a site using semantic HTML and CSS for layout. I keep hearing stories of students being penalized for not using tables for layout and <font> tags. This stuff is old hat now, but the incompetents who teach the courses (those who can do, and those who cannot definitely teach) think it’s some kind of weird futuristic technology if they know about it at all.

Andy Clarke

Teaching applications, as many colleges seem to do, is terribly short-sighted. Even teaching standards-based technologies such as XHTML, CSS and DOM scripting in isolation can be fraught with issues, particularly where the curriculum is taught by people without an every day grasp of best practices. So there are several areas where I believe students ought to be focused, on classical design theory, typography and other core design areas. Most importantly, as you know that everyone you know has learned for themselves rather than be taught, is for students to learn how to learn, continually and for themselves.

Jeff Croft

I think higher education institutions first need to understand that web design and web development are two different things, and offer specialized programs in each. They also need to understand that web design isn’t the same as graphic design and web development isn’t the same as computer science.

Once they’ve established these two unique tracks, they can focus on individual skills and courses needs for each. Off the top of my head:

Web Design: Basics of graphic design (layout, color, typography, etc.), computer-human interaction, information architecture, (X)HTML, CSS, Flash, etc.

Web Development: Object Oriented Programming with modern, dynamic languages (Ruby, Python, PHP, JavaScript…NOT Java!), basics of HTTP protocol, URI design, (X)HTML, DOM, web server basics, etc.

There is some overlap between these two tracks, but by and large, they’re different career paths and should be treated as such.

Mike Davidson

First and foremost, there needs to be an equal balance of idealism and pragmatism in every web design or development class. You can’t just teach people the way things should be (i.e. standards-compliant code) only to have them get out into the real world and get treated like code-Nazis by their co-workers. Conversely, you can’t just teach people how things are because then you’re giving them no deep-rooted ambition to at least try to do things by the book when they can.

Working as a web designer or developer is 99% about solving problems. A poorly skilled employee will tend to create more problems than they solve but the same is true for someone who values the “art” of writing code or designing interfaces over the necessity of solving real business problems.

As for applications, developers should be comfortable in IDEs like Eclipse and should also be able to code entirely by hand. Visual coding in programs like Dreamweaver have proven to be the route of the amateur, but Dreamweaver as a development environment isn’t necessarily a bad thing. As for designers, Photoshop, Illustrator, and Flash are really the only three prereqs, but even there, Photoshop is starting to bloat itself out of favor and Flash is becoming as much of an engineering tool as a design tool.

Another important thing to teach is the concept of rapid, fault tolerant application development. In other words, the concept that there are really no “software releases” on the web. You release. You have problems. You fix. Rinse and repeat. Infinity times. You will always have bugs, you will always have other problems, and you will always have to fix them, so don’t waste time waiting for things to be perfect.

Rob Goodlatte

Web design is a very cross-disciplinary subject, and it changes all the time. This makes it very hard to teach. Certainly, an introductory course in basic HTML/CSS is necessary. From there, I believe more general instruction in graphic design is required, with an emphasis on typography, layout, and visual problem solving. Writing-heavy courses are also important, not only for writing copy, but for communicating design solutions effectively. Finally, I believe a sound understanding of object-oriented programming is extremely helpful for modern Web designers/developers, and will only become more important in the future.

John Gruber

That’s a broad question. I think they’re different disciplines, so I’ll take both separately.

A web designer needs a background both in graphic design and in user experience design. In my opinion, specific technologies and skills aren’t nearly as important as the conceptual fundamentals, but when it does come to specifics, what should be taught are technologies and standards like HTML and CSS, not specific tools like Dreamweaver or whatever.

In a university setting, I think “developers” should simply study a traditional computer science curriculum. I don’t think it’s necessary to have a formal C.S. background to be a successful web developer, but, if you’re going to go to college with the goal of being one, computer science is what you should study.

Aaron Gustafson

Anyone who wants a career on the web needs to understand its fundamentals. This means understanding and being able to write at least HTML and CSS, but also understanding how the protocols function, etc. (i.e. what is HTTP, what is a server, what are headers, etc.). Unfortunately, most web design programs focus on tools (Dreamweaver, Frontpage), which are helpful for getting started, but limit the student’s skills to being tool-based rather than concept or language based. It’s like teaching someone to speak a language but not how to write it. How would we get by if we had to listen to audio instead of reading books, or could only send voicemail? Not very well, I’d imagine.

On the design side, I think students need to understand the web as a medium. It isn’t print and it certainly isn’t TV. They should understand what are the appropriate design conventions for this medium (hmm… perhaps I should design a fixed-height site since a browser has scroll bars and I don’t know how large the user’s browser window is).

Jon Hicks

With technologies moving fast, I would be hesitant to prescript learning certain languages (such as Ruby on Rails), but I would definitely start with learning good old semantic HTML. The course would then need to build on that with the presentation and behaviour layers, as well as backend development. Plain HTML should always be the core though - it’s surprising how many designers and developers don’t know how to mark up content.

Molly E. Holzschlag

This is an extremely difficult question to answer due to how fast things grow and change on the Web. I do believe that core education in general computers, networking, basic design, a bit of media studies and a bit of programming concepts would be a good start.

Shaun Inman

The most valuable skill a student can learn is how they themselves learn. I’m sure this applies to any industry but the web is especially fast-moving so this skill is essential to stay current.

Web developers require firm understanding of the benefits of the separation of presentation, content and behavior and a thorough understanding of HTML (and the general syntax of XML-like, tag-based markup languages) and CSS. They should leave college knowing where to find the latest in web development, whether it be subscribing to the feeds of personal blogs, frequenting online industry magazines or subscribing to the standard bodies’ mailing lists.

Web designers need to understand the core principles of design: color, contrast, composition, proportion, rhythm, repetition, focal point, whitespace, typography etc. They need a firm understanding of how people use and interact with design on the web. They should understand the limitations of the web as a medium and how it will impact their design decisions.

Jeremy Keith

To a large extent, traditional design skills are very applicable to web design so colour theory, composition and typography are very relevant and useful skills.

For developers, the underlying technologies on the web are: HTTP, URLs, and HTML (before getting into any specific programming languages).

For designers, the technologies are HTML, CSS and JavaScript.

So the cross-over point is HTML. For both designers and developers, that’s probably the most important technology. I also think that it’s crucially important for both designers and developers to learn that HTML is a mark up language meant for defining meaning rather than layout.

Geert Leyseele and Veerle Pieters

I think the first thing the student should be taught are the web standards guidelines. They should also learn to validate their pages as most emails we receive from students or others that ask us to check their code for something that doesn’t work are filled with errors. They also should learn that validation isn’t everything as well as the markup still need a real human to make it stick structure wise as well. They should learn about the real value of accessibility and that basic start cost any extra effort when you start out right. The basics about lay-out/grid/whitespace typography/contrast… About technologies: HTML/CSS should be the main focus. I’m not sure about other things like MySQL/PHP, JavaScript…

Cindy Li

How to code html pages, CSS. To create accessible pages. It is the right thing to do. Unfortunately lawsuits are starting to happen because websites aren’t accessible. Example Target.com got sued because their site wasn’t accessible, even large companies can get into trouble. Another example, Australia’s winter Olympic’s website, a few years ago got into some trouble because their site wasn’t accessible. If designers/developers got their act together in the first place we could save a lot of litigation and just work on evolving the web into something everyone can use.

The difference between print and web. I’ve encountered people who are web designers that don’t know the specs to interact with print files. Just knowing how to change files from 300dpi to 72 dpi isn’t enough. You need to know why we use formats such as eps, tif, jpg or pngs.

Optimizing graphics and the code/technology from websites. One thing that people forget about high speed access is that not everyone has it and if they do they may not be on a device that is pulling in images/code that quickly.

Ethics on the proper usage of images & code. Images belong to the person/company that create them. You should ask permission from the person that owns it for usage, even if it is for educational purposes. (Sidenote: Matt’s in the educational sector and he’s told me about situations where the teachers use the “its for educational purposes” so we don’t have to pay but it has ended up in some promotional capacity and should have been paid.)

You can cite the Virgin Mobile (I think) in Australia example where they took Daniel Morrison’s photo off flickr of Molly Holzschlag, Martin Ringlein, and Alex Giron and created a campaign without permission. It wasn’t the only photo they used for the campaign. I believe it ended up in a lawsuit because the advertisement company used an underage girl’s photo and were suggesting she was doing something inappropriate. There are plenty of low cost options and free stock photos options that there is no excuse for stealing.

A company called Surfshot magazine in San Diego stole Veerle’s blog CSS. One of Veerle’s readers sent this to her, actually many more after the first one came up. It is possible that the company hired/outsourced the design and had no knowledge of it. Veerle sent a few emails and threatened to email the host to take it down. If you were the designer/design firm do you want your reputation to be tarnished by this or are you out to make a quick buck?

Dan Mall

I think this answer is summed up in some of the other questions, so, if you don’t mind, I’d like to leave this one blank.

Eric A. Meyer

The fundamentals of the medium, both strengths and weaknesss. Open specifications like (X)HTML, XML, CSS, JavaScript/DOM. Popular closed technologies like Flash. How to use common tools like Photoshop, Dreamweaver, the Flash authoring environment. Programming languages (for the back-end; see below) like PHP, Ruby on Rails, Django, Python, and so on, all with a bias toward how these languages are used to create web sites and services.

Chris Mills

I think they should be taught in stages.

The first essential knowledge they all need to know as a precursor is web basics, eg how the internet works, how to get a domain, and hosting, and FTP files to your web site, what the web community is like, how to become a part of it, web etiquette, how to make the most of the web when looking for help and making contacts, etc.

The next essential part they should all be taught is client side web development - they should get a thorough grounding in HTML and CSS, and be taught at least the basics of JavaScript/DOM. Even hardcore developers should know this stuff.

Next, they should be able to start to specialize, eg one student might want to learn more about design principles, fine art, etc and focus on web design; another might want to focus on JavaScript/Ajax/PHP and become a middleware/web developer. A third might want to go even further in to the backend, and specialise on PHP/MySQL, or .NET/SQL Server, and security/e-commerce. But they should still understand what is going on in the front end.

Cameron Moll

What we’re find as we speak to universities within the state is a single recurring theme: There’s a line drawn between fine arts and technology in degree curriculum, and never the twain shall meet. So either students leave college very well-trained in the visual (graphic design), or very well-trained in the technical (web development, HCI, etc). Rarely do we see students, or programs for that matter, that offer a blend of both.

And here’s why I believe this matters: To be a successful web professional today, especially one who specializes in user experience, it requires that one understand three components of user experience:

  1. graphic design,
  2. human computing, and
  3. communication.

Imagine these three components drawn as a Venn diagram. The intersection (or output) of the three would be a user interface. Or more importantly, the intersection would be user experience. It is my opinion that those who understand all three disciplines are able to produce the best user experiences.

To that end, and as an answer to your question, we need the line between the visual and the technical—and if we include the Venn diagram, between the soft skills (communication) as well—to be eliminated in curriculum and programs.

Keith Robinson

  • Graphic Design Fundamentals. This is an area many existing web designers struggle with, as many of us are self-taught. It’s important to know about typography, white space, color, hierarchy, information and content organization, etc. even if you’re doing heavy interaction design. However, you can’t rely on learning graphic design alone.
  • HCI. Human/Computer interaction is important to anyone hoping to work in a field where they are designing interfaces accessed by screen. I think a solid grasp of HCI can really help, especially when getting into more complex interaction design like the kinds we see with web-based applications.
  • Usability and accessibility fundamentals. I think it’s important for designers and developers to understand how to do basic usability and the need for accessibility.
  • Markup and CSS. A solid understanding of the core technologies is very useful, even if your focus is interaction design.
  • Writing. A good designer needs to be able to document and defend their design decisions, this is usually done in some kind of written format. As well, when designing for the web much of what you’re designing with, the building blocks of your designs, is made up of text.
  • General communication skills. Wed design is largely about communication.

Josiah Roe

The particular conventions of Web Design vs. Print Design (web based fonts, interactivity, the cost/benefits of fixed-width & fixed height, etc.). This isn’t explicitly a CSS/CODE conversation, but is all about “what it’s like to draw/design a webpage as opposed to a poster.”

Further, a mastering of CSS/html/xhtml and some javascript would be great for students interested in being web developers.

Dan Rubin

A multi-level approach would be best, and likely suit the normal tiered structure of the current university system. This assumes that students would be encouraged to select an area of focus (e.g. front-end development, back-end development, interaction design, interface design, Flash development, etc.).

  1. Introductory-level courses for all, focusing on the core areas that all web “people” should be familiar with, before getting into more localized specialty courses. These courses (ideally taking up at least one semester, if not two) should cover basics of interface design, proper semantic (X)HTML (and CSS), interaction design, usability, accessibility, as well as basic principals of design (color, typography, white space, etc.) and a strong grounding in the English language (and others, if applicable) and the importance of language in design. The idea being that, after a student’s first semester or two, no matter what their eventual area of focus, they will have a broad base of knowledge that spans all related areas within the industry (areas that, when left to self-education, are normally ignored because of a lack of perceived relevance to a chosen path).

  2. These basic principals should then be built upon for subsequent, more specific areas of study, so as students become more focused on their core interests, they do not lose sight of the impact their decisions make on other aspects of the web. The emphasis should be on gaining an understanding of the whole, and how important it is to acknowledge those other areas. This can include education on interacting with larger teams (and how to respect the expertise and input of others in the process), as well as a constant reminder that even freelancers have to be aware of the “whole” to which they are contributing. These more focused course paths should get fairly specific quickly (e.g. no more than a semester after the introductory courses should be spent in transitional mode - for instance, 3 semesters: Introductory Courses → Introduction to Object Model Programming → Python and Django Development (I’m not a programmer, so “Object Model” might not fit here, but you probably get the idea).

The “why”: Too many times, front-end designers know nothing of HTML and CSS (or semantics), and focus purely on the visuals. The same goes for database developers who don’t understand proper markup (but are responsible for generating it). Interaction designers who never learn the value of good visuals, front end developers who have never learned the importance of accessibility and the concept of progressive enhancement, or managers who are responsible for all these areas but don’t really understand how they fit together.

Right now, basic courses at most colleges include language, geography, math, and a host of other entry-level introductions. In a web-focused program, this same structure is important, but perhaps focusing on the basics of all aspects of the web (there is perhaps even some worth in teaching history of the internet and the web, and how it all works on a technical level - I’m always stunned when people who work in the web don’t have the faintest idea of how a web server works, or how email is communicated, and on and on…).

Gareth Rushgrove

So many of the potential skills could be seen as specialist areas, which they are, but the increasing consensus is that generalists are more important (and specialists in my opinion come from real world experience anyway). So, I’d have to say:

  • An understanding of the basic principles of the web; universality, HTTP, markup, client/server model, browsers, etc.
  • Key principles of usable browser experiences - lots of HCI and usability stuff basically.
  • User centred design and Information Architecture tools.
  • Reading, writing and research skills.

Richard Rutter

Form by experience with UK universities and colleges, there’s way too much emphasis on teaching people how to use software and not enough on the fundamentals. The fundamentals being design coupled with client-side code. By design I mean information architecture, interaction design, usability, graphic and visual design. By client-side code I mean a proper understanding of meaningful (semantic) HTML, CSS and accessibility; students should be taught to hand code and they can pick up Dreamweaver in their own time. Flash is probably also a useful tool for student to learn (and be taught) within the context of their interaction design studies.

Daniel Ryan

Since web developers and web designers are I’ll list my thoughts separately.

Developers

Current programming languages should be addressed but the actual languages taught aren’t as relevant as good programming practices like concise code that is maintainable by another developer, security concerns with the various languages, and fundamental programming logic. The nature of an academic institution, specifically the process of getting new curricula approved, doesn’t allow the fluidity needed to keep up with the latest trendy language (like the current Ruby on Rails trend), but good programming basics make learning a new language much easier.

With respect to actual technologies that should be taught, students more interested in working in the corporate world would be best served with ASP, ASP.NET, and Microsoft SQL database; for those who want to pursue a career in the for-hire, custom development field, PHP, Rails, MySQL, and Postgres would serve them well. Also, for both, basic networking and network security skills make for a better employee.

Designers

Designers might actually be easier to cater for in an established department as much of their skills can be learned in broader design and art courses. Specifically, print layout and typography, illustration and any course that stimulates creativity form a good base. The additional skills needed vary from the obvious to the more obscure. On the obvious front, standards compliant (X)HTML and CSS as well as Javascript (both the raw language and the use of common libraries like Prototype and jQuery) are the core needs. Additionally, courses in UI design, statistics (especially measuring the effectiveness of a given site’s design), copy writing and accessibility will prove beneficial.

For Both

Both developers and designers tend to spend at least a portion of their career freelancing, so courses in basic business management, proposal writing and media law should be part of the core curriculum.

Jason Santa Maria

Technologies come and go and advance all the time, but good design problem solving skills not only stay fresh for a very long time, but are integral to establish a base for personal learning after school. Additionally, many of these design skills are best learned in a group of peers, rather than alone. When learning with your peers, you will not only encounter healthy competition, but benefit from group activities like brainstorming, critiques, and a larger pool of mistakes and successes to learn from.

As far as actual skills and technologies, designers should be schooled in past and current design history, and foundation art courses: drawing, 2D and 3D design, color theory, multiple courses in typography, layout, writing, visual thinking, etc. I feel that designers, web or otherwise, need a foundation in design practices, rather than just an understanding of how to make a website. Design is always larger than just a layout, it’s about a message. Otherwise, when it comes time to actually design a website, those without proper design training will typically look to their medium for answers, commonly falling back on design as merely style.

For technologies, a knowledge of modern coding principles and concerns: Validation, Accessibility, XHTML, and CSS. Additional languages/programs like Javascript, Flash, PHP, etc, are important for awareness, but these should be pursued as a specialization. I’ve always been of the opinion that technologies can be learned easier than a basic design foundation on your own.

Christopher Schmitt

Basic and advanced graphic design skills - Basic graphic design skills get students to understand the core concepts of design, however I’ve seen students just stop learning at that point. Some students I’ve found don’t learn how to effectively use these techniques to design well.

JavaScript. It’s a great gateway technology. Simple to get up and running and ties into the DOM, which allows for dropping off to semantic HTML and well-formed CSS.

Then I would go with PHP/MySQL for basic database-driven Web sites.

Glenda Sims

Web Design Process (using Kelly Goto’s book)

  1. Project Management
  2. Information Architecture
  3. Site Mapping
  4. WireFrames

The Basics Skills

  1. Semantic XHTML
  2. CSS
  3. Web Standards / Validation
  4. Accessibility
  5. Usability & Designing for Personas
  6. Quality Assurance Testing

Graphics/Visual Design

  1. Visual Design Principles (like balance, thythm, proportion, dominence…)
  2. Visual Design Elements (like point, line, shape, color typography…)
  3. Branding
  4. Digital Media Tools (like Photoshop, Flash)

Web Programming (beginner)

  1. Javascript
  2. PHP

Web Programming (selected topics)

  1. Java
  2. Perl
  3. Python
  4. Ruby (on Rails)
  5. etc

While this is a lengthy list, all of these skills are necessary to develop robust solutions for clients. You may not need to know all of the web programming languages, but if you only know one, then that is like having just a hammer and all of your problems look like nails.

For professional web developers, I think the best overall view comes from Kelly Goto book, Web Redesign 2.0. That is the big picture of what it really takes to professionally design a web site.

Greg Storey

For starters, I’d like to see schools teach beyond applications or beyond the obvious (as in: designers need Photoshop and developers should learn Dreamweaver) . One of my most recent hires came from a design school wherein they taught web design through classes structured around an application. Sure, some of these apps are either necessary and/or widely used but they would learn how to use such things as part of the process for learning how to construct websites. So rather than make web design more vocational that most college already treat it, I’d like to see a return to design and development theory.

I want all students, and I mean all, to come out of school with good fundamentals in communicating with others through written and oral means. Without these skills, they’re none too useful to themselves, to the company they work for, or to the client. I find that the students who don’t communicate will drag down the team and require the most babysitting.

The amount of communication for even a small six person team is way more than anyone expects. We have to communicate with a client so as to properly set the scope of work, manage their expectations during the entire project, and tend to their support questions until the project is considered complete. We have to communicate within our own team so that we are successful during each phase of the web creation process (a big fail point for every team is at the time of hand-off from IA to design, design to development, development to implementation, etc.).

In my experience new grads don’t understand that they’re expected to know how to do these things on their first day and that their job isn’t going to be spending 100% of their work day sitting in front of Photoshop or Textmate.

Time management is another big issue. Students also need to be taught that they need to turn around a great amount of work in a short time. I find that students are used to having more time to complete projects than is required in business. It would be handy if students were taken through a series of real-world exercises and projects that made them studio-ready as soon as that diploma hits their hand.

Blog experience is welcome. I think it’s important for everyone on the web to blog in one fashion or another. I find that those who blog and read blogs are more in touch with what’s going on within our industry. Those who blog show more initiative and creativity. Most web shops that I have come across use a blog in one way or another as a basic marketing tool and any student who comes to the job knowing about this world definitely has value add to the employer.

New students should also be required to lean how to use the most common tools used for web production and management. Examples include Basecamp, SVN, Google Analytics and one or two basic CMS packages like EE, MT, or Wordpress.

  • Skills: Oral and Written Communication, Time Management, Blogging
  • Technologies: Basecamp, Campfire, SVN, Google Analytics, some basic CMS

Khoi Vinh

A Web design program, in my view, should be equal parts graphic design education, human-computer interaction, and technical development and programming. These are basically the three major branches of the practice, and how I’ve seen most professional Web design organizations organize themselves. All three are important.

Aarron Walter

Professional Process: writing a project proposal, use cases, personas, sitemaps, flow charting, wireframing, concept notes, design comps

Strategy: how to create a design appropriate for a brand, how to layout content to achieve business and communication goals, project management, independent problem solving

Concepts: web standards (HTML, CSS, DOM), file management, FTP, layout, typography, color, usability, accessibility, findability, information architecture, Flash (timeline and scripted animation, embedding into a document, video delivery), client-server relationship, general history of the Web,

Communication: how to defend a design without being defensive, team work

Rob Weychert

A web design degree should focus on the visual and functional aspects of graphic and interface design as appropriate for the web, including a fundamental understanding of at least the basic elements of production: image preparation, (X)HTML, and CSS. Someone with a degree in web design should be (at least) a proficient graphic and interface designer and a competent coder. A web development degree would be the flipside: A proficient coder (and selective programmer) and competent designer.