What skills and technologies should colleges and universities teach students who want to be web designers and/or developers? Why?
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% - project management (overview)
- 5% - server side software (overview)
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
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.
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.
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.
There is some overlap between these two tracks, but by and large, they’re different career paths and should be treated as such.
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.
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.
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.
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).
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.
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.
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.
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).
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.
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?
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.
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.
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:
- graphic design,
- human computing, and
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.
- 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.
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.”
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.).
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).
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…).
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.
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.
Since web developers and web designers are I’ll list my thoughts separately.
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.
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.
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.
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.
Then I would go with PHP/MySQL for basic database-driven Web sites.
Web Design Process (using Kelly Goto’s book)
- Project Management
- Information Architecture
- Site Mapping
The Basics Skills
- Semantic XHTML
- Web Standards / Validation
- Usability & Designing for Personas
- Quality Assurance Testing
- Visual Design Principles (like balance, thythm, proportion, dominence…)
- Visual Design Elements (like point, line, shape, color typography…)
- Digital Media Tools (like Photoshop, Flash)
Web Programming (beginner)
Web Programming (selected topics)
- Ruby (on Rails)
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.
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
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.
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
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.