Kay lives here

working with the web

You think you know HTML, don’t you?

Andrew Powell has weighed in his thoughts on developers and how well they do (or do not) know SQL in You Think You Know SQL, Don’t You? While I work on one project with a dedicated DBA, for most projects I am in charge of designing the database and writing the queries myself. On a general scale I would consider my database skills to be quite good – but there are definitely situations where I will seek out the help of those with more specialised skills.

The points Andrew raises are interesting because in my mind, you could quite easily substitute “HTML” for “SQL”, “front end coder” for “DBA” and “CSS” for “queries” – and his post would reflect my thoughts on that matter entirely.

A lot of developers get forced into writing SQL HTML as part of their jobs. Should they be doing it? I don’t think so. It’s not necessarily the best of ideas, and in MOST cases should probably be avoided at all costs. Besides, developers cannot be experts in every language or technology right? Something has got to give somewhere. It’s usually their SQL HTML skills that suffer.

Developers are, sometimes, forced into situations where they have no choice but to write their own SQL HTML. There is either no DBA front end coder, a DBA front end coder who isn’t interested in helping developers with their queries CSS, or a DBA front end coder who isn’t even in the development loop (never a good sign). In these cases, developers may have to write their own SQL HTML. Sometimes developers have to know their limitations when it comes to writing queries CSS, especially complex queries CSS. I don’t think a lot of developers do truly know their skill limitations. Yet, these intrepid souls will trudge on thinking they can write SQL HTML just fine. When, in reality, they really and truly do not know the little tricks and tweaks that can make the SQL HTML perform better.

Heh, it does work, doesn’t it? Like SQL, I think HTML/CSS suffers from being considered less important than the application code itself. Also like SQL, optimised HTML/CSS can make a huge difference to not only how well the web application or site works (think cross-browser issues, loading speed, etc), but how easy it is to maintain going forward.

Andrew rounds out his post with some tips for developers to improve their SQL skills, and once again with just a few word substitutions we can borrow his ideas to apply to front end code.

First, he suggests using an ORM (Object-Relational Mapping) framework like Transfer. For HTML and CSS, I would suggest looking at a CSS framework. Blueprint received a lot of coverage when it was launched late last year. More recently, the 960 grid system has been released, which is interesting in that it provides a “kit” of supporting materials including templates for Fireworks, Omnigraffle, Photoshop and Visio. There are others out there – Smashing Magazine has a handy round up of some of the more popular CSS frameworks and also quickly covers the advantages and disadvantages of CSS frameworks.

Next, Andrew suggests using a good DBA. This most definitely applied to HTML and CSS – use a good front end developer, graphic designer and interface designer. In some cases you’ll get all of those wrapped up in one individual, but sometimes that’s not the case. Typically the amount of front end coder time needed will be tiny compared to the amount of application programmer time needed, and an investment in just a few hours can make all the difference.

Finally, when other options are not viable, Andrew suggests engaging an outside consultancy. The same most definitely applies to front end coders – and luckily, good designers and front end people are are far easier to find than database experts!

So what do you think – is having a good, solid presentation layer just as important as having a good, solid database layer? Do you think that writing good HTML and CSS is an art form, like good SQL? Are application developers forced to write HTML and CSS when they shouldn’t be? Leave your thoughts in the comments.

12 Comments

  1. +100 agreed agreed agreed.

    All too often application or “back-end” developers dismiss HTML/CSS. But you constantly see HTML which is messy, non-standards compliant, non-browser consistent and non-semantic when it’s been put together by people who are oh too clever too worry about the silly UI.

    Back in the day you used to put HTML on your CV, these days I think people are embarrassed and just assume that HTML is a given. Not so.

    A solid HTML developer is a must for any web development team. As much as I know about HTML the best thing is that I always know when I need to defer to a specialist. And as you mentioned, it traditionally doesn’t take that long (comparative to the back-end) to get clean and solid HTML templates to work with.

    Accessibility is another issue that from my experience back-end developers aren’t interested in. That is not only ignorant but just plain irresponsible.

    People…please validate your markup and accessibility during development. The gods will thank you for it :)

    Phew…I’ve said my piece!

  2. from someone who is creative design deficient, i would say that the look of your app and consistency of your app are very important. i would say that consulting someone who is truly an artist by trade is not a bad thing, but thats the extent. i as a web app developer, must know good markup and good styling.

    one huge difference between sql and html/css are validation. you can validate your (x)html and css (unless you use hacks for ie), but you can’t really do that with a query.

    either way, a web developer must have a verbose knowledge and understanding of sql and html/css.

    one last thing… who do you people work for? i am obviously in a different world.. i apparently have the job of 4-5 other people.. i bet none of you have to carry the trash out or mop the floors either do you? ;-)

  3. I think a lot of it depends on the nature, scale and complexity of the project you’re working on.

    A small-medium website for a fashion company is going to rely heavily on its presentation to target its audience. Its design and HTML/CSS are more important.

    A large corporate Intranet with mission-critical applications and data is going to depend much more on the work of an experienced DBA and programmer. Presentation takes more of a back seat to ensuring the data is safe, well organised and employees can get at it. I am not suggesting there are no interface considerations at all or that proper markup/css aren’t still important but on the priority ladder, I’d expect it to come lower down.

    I’d say there is definitely an “art” to all sides of web development – markup, css, sql, javascript, server-side programming. And I’d say that specialists in any one or few areas are always having to cross-over into the others they perhaps know less about. It’s the nature of web development… there’s just too much overlap.

    I strongly agree with Andrew that “I don’t think a lot of developers do truly know their skill limitations.”

    As a server-side programmer, just because you can spit out some HTML and CSS that looks “ok” in your browser doesn’t mean you “know” HTML and CSS. It doesn’t mean you understand the concepts of data and presentation separation, that tables are not to be used for anything but identifying tablaic data, the quirks of browser interpretations, even what web “standards”, accessibility and usability are all about. The list goes on.

    As a server-side programmer, just because you can create a few tables in mysql using phpmyadmin and have a basic understanding of the SQL language doesn’t mean I’d want you in charge of my large, complex corporate MS SQL / Oracle database with mission-critial data. Do you know how to write stored procedures and triggers? Do you know how to configure the database server for scheduled backup routines, event notifications? Do you know how to absolutely ensure referential integrity using foreign key constraints? This list also goes on.

    I’ve used a server-side programmer in both examples there because I believe that’s where the assumptions of “expertise” get made most of all. I’ve personally seen some truely awful attempts at cross-over in that direction. But the principle applies in all directions that experience with each tech tends to be rewarded beyond “I can use it” to “I can craft with it”. I like the word “craft”.

    What’s also relevant here I think is how things are evolving. As a web developer I’d say it’s more important today to have a good understanding across all areas than ever before… particularly front-end.

    The web is increasingly being used to replace a lot of desktop applications. That’s in large part because we can provide better interfaces. To do that with AJAX requires a good mix of CSS and DOM knowledge, Javascript and even server-side programming.

    HTML and CSS are both growing more complex too. The HTML 5 spec will include a client-side data repository. Apple’s latest version of Safari already implements it (!) and allows SQL in javascript to store and access local data. So soon, being a HTML-er will kind of encompass SQL :) CSS 3 is also growing in complexity with the introduction of animations. Until now, that kind of presentation work needed to be done by client-side programmers.

  4. Spot on, Kay. It strikes me as funny at work that a number of ‘pro’ webbies are incapable of debugging their own code, be it CSS, (X)HTML or JavaScript. We also have a culture within our management that believe that training admin staff in the use of Dreamweaver (roughly 1 full-day of training) makes them a webmaster. Did they think we got there overnight? When things go wrong, and lets face it they can, a sound knowledge of the underlying code is essential.

  5. Pingback: jonathan stegall » Blog Archive » Links for March %JS%

  6. *cough* – 100% agree. But I maybe a touch bias on this one, working in the UX/UI field. :)

    All too often the front end developer/designer skills are ignored as “I can get any monkey to do that”. Yes for the very basics you can. But are they going to be considering all the other design elements. The usability, accessibility, the eye and tracking flow, the semantic nature of the presented content. and the list goes on. These are the things that a good experienced UI / UX professional can help with.

    It’s almost common place to quickly engage a competent backend developer for a project. But it is not often that consideration be given to the front end – the interface (the thing your site will live and die by) may need the same level of care and attention.

    No matter what the size of the project. If you get an aspect of the UI wrong you are going to be driving away some of your customers. To often a web site could have gone from being average to outstanding, only if consideration had been give to letting a UI professional work their magic.

  7. Pingback: Man with no blog » Don’t Follow the other Guy

  8. But the buzz of the day IS polyglot programming, so can we NOT know all the languages, frameworks, dsl’s and everything else and expect to remain employed?

  9. Reminds me of “The Peanut Butter Theory of User Interface Design”

    Quote:
    It just won’t work to build a complete system and then, in the final stages of development, spread the interface over it like peanut butter.

    http://www.codinghorror.com/blog/archives/000945.html

  10. Couldn’t be better said, Sam!

  11. Pingback: This month in Bookmarks: March 2008 | Eric Wendelin's Blog

  12. Well picked up Kay.

    This is something I have argued for a long time having a background in front-end development and something that has really come to my attention since inheriting a project that didn’t utilise a specialist HTML coder, instead relying on graphic designers and back-end programmers to put the whole site together – the result being a barely functioning website from an interface point view.