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.
Rare is the person who can be truly great in both design and development so I don’t think that should necessarily be the goal of most students looking to work on the web, but certainly every designer should know enough about code to a) help him/her do their own work better, and b) help them respect the people on the other side of the aisle they’ll be working with after college. The same goes for developers. Developers hate when designers produce uncodeable designs, and designers hate when developers impose undesignable components. When each side knows and respects what goes into the other side of the equation, everybody will do a better job to produce a solid end product. I think one or two classes of the other side’s job function is probably sufficient. Furthermore, if these classes could be specifically tailored like “Design for Engineers” or “Code for Designers,” that would be even better.
If you could create your dream curriculum for web design and development, what courses and information would you include? Why? What courses and information now in such programs would you eliminate? Why?
- Flash Design
- Flash Scripting
- Interface Design
- Designing and Developing with CMSes
- Working in a Collaborative Environment
- Project Management
- User Testing
- Writing for the Web
- Writing and working with APIs
It doesn’t really matter how big or impressive the client list is. I’d rather see really good work created for fake clients. With design it’s more much straight forward. I can thumb through five fake projects in someone’s online portfolio and already know if they are good enough (pure design wise) to call in. With development, it’s a bit harder because in a lot of cases, you have to go through code to judge the quality of it.
Pro-bono stuff is a great way to build your portfolio early.
I guess, to sum it up, I’d say that I want to see great work, not necessarily great clients.
A fresh look at the curricula every single year is a necessity. I imagine you couldn’t teach the same Flash Scripting class for more than about two years before you’d have to radically change the lesson plan.