The time of year has come when I head off for a couple of hours on a Friday to sort out the Web Design students at Leeds Beckett University with some basic PHP so that they can add some database-driven content to their websites. As always, the designs the students had come up with were really rather good. They had started with wire-frame mock-ups using tools line moqups, had converted these into Photoshop, applied a grid and then coded them up in HTML and CSS. All good.
So now we hack some basic PHP. The conceptual leap here is, of course, that the code you write generates the code for your web page, rather than being the code itself. So viewing the source in your browser shows you some code that has been created by some mystical process, not the code you wrote yourself. Reactions here were interesting; some students sussed it out immediately, got excited, and set to spotting places in their pages where they could make use of this new technique. Other stared in bewilderment, and announced that they had decided to stick with being a front-end designer who could code some HTML and CSS, and had no wish to be a back-end developer.
Which set me wondering. Is it always best to separate the designer and the developer? Are they always different people? For that matter, are front-end developers always designers?
(As I type this I am overhearing a discussion between a front-end developer and a back-end developer who are working together on a new site. They are negotiating about the data that will be returned when the user queries the site’s database. The back-end is making sure that the front-end will be able to present everything properly.)
That’s generally the way it works round here – folk specialise in front-end or back-end development. My usual line with students of whatever end is that they need to understand enough about the other so that they don’t cause problems. The front-ender shouldn’t make design decisions that require data to be provided in an awkward way; the back-ender should understand how the data they produce is presented.
Over at Huddersfield University, the two are kept separate too. We are teaching Advanced Web Programming. At the same time some students, but by no means all, are studying advanced front-end techniques.
So why have we separated like this? Is the separation necessary? Why is it that we accept that a skilled designer cannot be a skilled developer? (Or have we even got three roles – designer, front-end and back-end?).