Kay lives here

working with the web

logo

You think you know HTML, don’t you?

pantone.jpg

Andrew Pow­ell has weighed in his thoughts on devel­op­ers 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 ded­i­cated DBA, for most projects I am in charge of design­ing the data­base and writ­ing the queries myself. On a gen­eral scale I would con­sider my data­base skills to be quite good — but there are def­i­nitely sit­u­a­tions where I will seek out the help of those with more spe­cialised skills.

The points Andrew raises are inter­est­ing because in my mind, you could quite eas­ily sub­sti­tute “HTML” for “SQL”, “front end coder” for “DBA” and “CSS” for “queries” — and his post would reflect my thoughts on that mat­ter entirely.

A lot of devel­op­ers get forced into writ­ing SQL HTML as part of their jobs. Should they be doing it? I don’t think so. It’s not nec­es­sar­ily the best of ideas, and in MOST cases should prob­a­bly be avoided at all costs. Besides, devel­op­ers can­not be experts in every lan­guage or tech­nol­ogy right? Some­thing has got to give some­where. It’s usu­ally their SQL HTML skills that suffer.

Devel­op­ers are, some­times, forced into sit­u­a­tions 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 inter­ested in help­ing devel­op­ers with their queries CSS, or a DBA front end coder who isn’t even in the devel­op­ment loop (never a good sign). In these cases, devel­op­ers may have to write their own SQL HTML. Some­times devel­op­ers have to know their lim­i­ta­tions when it comes to writ­ing queries CSS, espe­cially com­plex queries CSS. I don’t think a lot of devel­op­ers do truly know their skill lim­i­ta­tions. Yet, these intre­pid souls will trudge on think­ing they can write SQL HTML just fine. When, in real­ity, they really and truly do not know the lit­tle tricks and tweaks that can make the SQL HTML per­form better.

Heh, it does work, doesn’t it? Like SQL, I think HTML/CSS suf­fers from being con­sid­ered less impor­tant than the appli­ca­tion code itself. Also like SQL, opti­mised HTML/CSS can make a huge dif­fer­ence to not only how well the web appli­ca­tion or site works (think cross-browser issues, load­ing speed, etc), but how easy it is to main­tain going forward.

Andrew rounds out his post with some tips for devel­op­ers to improve their SQL skills, and once again with just a few word sub­sti­tu­tions we can bor­row his ideas to apply to front end code.

First, he sug­gests using an ORM (Object-Relational Map­ping) frame­work like Trans­fer. For HTML and CSS, I would sug­gest look­ing at a CSS frame­work. Blue­print received a lot of cov­er­age when it was launched late last year. More recently, the 960 grid sys­tem has been released, which is inter­est­ing in that it pro­vides a “kit” of sup­port­ing mate­ri­als includ­ing tem­plates for Fire­works, Omn­i­graf­fle, Pho­to­shop and Visio. There are oth­ers out there — Smash­ing Mag­a­zine has a handy round up of some of the more pop­u­lar CSS frame­works and also quickly cov­ers the advan­tages and dis­ad­van­tages of CSS frameworks.

Next, Andrew sug­gests using a good DBA. This most def­i­nitely applied to HTML and CSS — use a good front end devel­oper, graphic designer and inter­face designer. In some cases you’ll get all of those wrapped up in one indi­vid­ual, but some­times that’s not the case. Typ­i­cally the amount of front end coder time needed will be tiny com­pared to the amount of appli­ca­tion pro­gram­mer time needed, and an invest­ment in just a few hours can make all the difference.

Finally, when other options are not viable, Andrew sug­gests engag­ing an out­side con­sul­tancy. The same most def­i­nitely applies to front end coders — and luck­ily, good design­ers and front end peo­ple are are far eas­ier to find than data­base experts!

So what do you think — is hav­ing a good, solid pre­sen­ta­tion layer just as impor­tant as hav­ing a good, solid data­base layer? Do you think that writ­ing good HTML and CSS is an art form, like good SQL? Are appli­ca­tion devel­op­ers 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 appli­ca­tion or “back-end” devel­op­ers dis­miss HTML/CSS. But you con­stantly see HTML which is messy, non-standards com­pli­ant, non-browser con­sis­tent and non-semantic when it’s been put together by peo­ple 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 peo­ple are embar­rassed and just assume that HTML is a given. Not so.

    A solid HTML devel­oper is a must for any web devel­op­ment team. As much as I know about HTML the best thing is that I always know when I need to defer to a spe­cial­ist. And as you men­tioned, it tra­di­tion­ally doesn’t take that long (com­par­a­tive to the back-end) to get clean and solid HTML tem­plates to work with.

    Acces­si­bil­ity is another issue that from my expe­ri­ence back-end devel­op­ers aren’t inter­ested in. That is not only igno­rant but just plain irresponsible.

    People…please val­i­date your markup and acces­si­bil­ity dur­ing devel­op­ment. The gods will thank you for it :)

    Phew…I’ve said my piece!

  2. from some­one who is cre­ative design defi­cient, i would say that the look of your app and con­sis­tency of your app are very impor­tant. i would say that con­sult­ing some­one who is truly an artist by trade is not a bad thing, but thats the extent. i as a web app devel­oper, must know good markup and good styling.

    one huge dif­fer­ence between sql and html/css are val­i­da­tion. you can val­i­date 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 devel­oper must have a ver­bose knowl­edge and under­stand­ing of sql and html/css.

    one last thing… who do you peo­ple work for? i am obvi­ously in a dif­fer­ent world.. i appar­ently have the job of 4–5 other peo­ple.. 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 com­plex­ity of the project you’re work­ing on.

    A small-medium web­site for a fash­ion com­pany is going to rely heav­ily on its pre­sen­ta­tion to tar­get its audi­ence. Its design and HTML/CSS are more important.

    A large cor­po­rate Intranet with mission-critical appli­ca­tions and data is going to depend much more on the work of an expe­ri­enced DBA and pro­gram­mer. Pre­sen­ta­tion takes more of a back seat to ensur­ing the data is safe, well organ­ised and employ­ees can get at it. I am not sug­gest­ing there are no inter­face con­sid­er­a­tions at all or that proper markup/css aren’t still impor­tant but on the pri­or­ity lad­der, I’d expect it to come lower down.

    I’d say there is def­i­nitely an “art” to all sides of web devel­op­ment — markup, css, sql, javascript, server-side pro­gram­ming. And I’d say that spe­cial­ists in any one or few areas are always hav­ing to cross-over into the oth­ers they per­haps know less about. It’s the nature of web devel­op­ment… there’s just too much overlap.

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

    As a server-side pro­gram­mer, 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 under­stand the con­cepts of data and pre­sen­ta­tion sep­a­ra­tion, that tables are not to be used for any­thing but iden­ti­fy­ing tablaic data, the quirks of browser inter­pre­ta­tions, even what web “stan­dards”, acces­si­bil­ity and usabil­ity are all about. The list goes on.

    As a server-side pro­gram­mer, just because you can cre­ate a few tables in mysql using php­myad­min and have a basic under­stand­ing of the SQL lan­guage doesn’t mean I’d want you in charge of my large, com­plex cor­po­rate MS SQL / Ora­cle data­base with mission-critial data. Do you know how to write stored pro­ce­dures and trig­gers? Do you know how to con­fig­ure the data­base server for sched­uled backup rou­tines, event noti­fi­ca­tions? Do you know how to absolutely ensure ref­er­en­tial integrity using for­eign key con­straints? This list also goes on.

    I’ve used a server-side pro­gram­mer in both exam­ples there because I believe that’s where the assump­tions of “exper­tise” get made most of all. I’ve per­son­ally seen some tru­ely awful attempts at cross-over in that direc­tion. But the prin­ci­ple applies in all direc­tions that expe­ri­ence 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 rel­e­vant here I think is how things are evolv­ing. As a web devel­oper I’d say it’s more impor­tant today to have a good under­stand­ing across all areas than ever before… par­tic­u­larly front-end.

    The web is increas­ingly being used to replace a lot of desk­top appli­ca­tions. That’s in large part because we can pro­vide bet­ter inter­faces. To do that with AJAX requires a good mix of CSS and DOM knowl­edge, Javascript and even server-side programming.

    HTML and CSS are both grow­ing more com­plex too. The HTML 5 spec will include a client-side data repos­i­tory. Apple’s lat­est ver­sion of Safari already imple­ments it (!) and allows SQL in javascript to store and access local data. So soon, being a HTML-er will kind of encom­pass SQL :) CSS 3 is also grow­ing in com­plex­ity with the intro­duc­tion of ani­ma­tions. Until now, that kind of pre­sen­ta­tion work needed to be done by client-side programmers.

  4. Spot on, Kay. It strikes me as funny at work that a num­ber of ‘pro’ web­bies are inca­pable of debug­ging their own code, be it CSS, (X)HTML or JavaScript. We also have a cul­ture within our man­age­ment that believe that train­ing admin staff in the use of Dreamweaver (roughly 1 full-day of train­ing) makes them a web­mas­ter. Did they think we got there overnight? When things go wrong, and lets face it they can, a sound knowl­edge of the under­ly­ing 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, work­ing in the UX/UI field. :)

    All too often the front end developer/designer skills are ignored as “I can get any mon­key to do that”. Yes for the very basics you can. But are they going to be con­sid­er­ing all the other design ele­ments. The usabil­ity, acces­si­bil­ity, the eye and track­ing flow, the seman­tic nature of the pre­sented con­tent. and the list goes on. These are the things that a good expe­ri­enced UI / UX pro­fes­sional can help with.

    It’s almost com­mon place to quickly engage a com­pe­tent back­end devel­oper for a project. But it is not often that con­sid­er­a­tion be given to the front end — the inter­face (the thing your site will live and die by) may need the same level of care and attention.

    No mat­ter what the size of the project. If you get an aspect of the UI wrong you are going to be dri­ving away some of your cus­tomers. To often a web site could have gone from being aver­age to out­stand­ing, only if con­sid­er­a­tion had been give to let­ting a UI pro­fes­sional work their magic.

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

  8. But the buzz of the day IS poly­glot pro­gram­ming, so can we NOT know all the lan­guages, frame­works, dsl’s and every­thing else and expect to remain employed?

  9. Reminds me of “The Peanut But­ter The­ory of User Inter­face Design”

    Quote:
    It just won’t work to build a com­plete sys­tem and then, in the final stages of devel­op­ment, spread the inter­face over it like peanut butter.

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

  10. Couldn’t be bet­ter said, Sam!

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

  12. Well picked up Kay.

    This is some­thing I have argued for a long time hav­ing a back­ground in front-end devel­op­ment and some­thing that has really come to my atten­tion since inher­it­ing a project that didn’t utilise a spe­cial­ist HTML coder, instead rely­ing on graphic design­ers and back-end pro­gram­mers to put the whole site together — the result being a barely func­tion­ing web­site from an inter­face point view.