It’s worthwhile to revisit the necessary distinction between “programming” and “coding”, as the two are constantly, erroneously conflated in discussions among the general public – and even among technical professionals.

There’s a difference

between Application Programming and Semantic Information Coding.

Semantic Information Coding … applies meaning

At its most basic level, coding allows us to communicate with each other.  “This-means-that” is essential to any interaction.

Application Programming … makes things happen   

A program does things.  The programmer uses a unique “code” (the programming language) in order to make the computer do its dance for us.


The DaVinci Code


The DaVinci Program

I know a bunch of fine application programmers who shouldn’t be let anywhere near information code (like HTML, CSS, or semantic tagging).

Here’s an object lesson in “the reason why”

kpmg-templateIt was a  project in which I performed a CSS and Template ‘code cleanup’ for a SharePoint environment that had become extremely effed-up.

Programmers and non-tech managers had made individual, opportunistic, slapdash changes … but without any appreciation for clarity, consistency – or a sense of larger implications.

This SharePoint site had grown to 60 template files, 96 WebPart files, and more than 2600 CSS tags.

The pages themselves  looked okay on the surface, but the content within them and the connections among them had become unmanageable.

 Here’s the project Case Study at KPMG

The environment had become a Tower of Babel

Shown is a screen capture of part of my working process.  Color-coding identifies program code that was redundant, extraneous, inefficient, could be captured as a module, was inaccurately named, etc.  I used the color-coded map of patterns as a guideline to solutions.

The Result of the Code Cleanup

… was working tools – in the form of SharePoint templates, CSS, and webParts – which could now be managed and used efficiently.

Hey, it’s an important job (the coding of HTML, CSS, semantic tags, etc.).  And somebody‘s gotta do it.

No offense to my good friends the Programmers, but many of them don’t know how to “code” information, in the sense of content management, semantics, tags, information architecture, or page self-awareness.

Nope. In terms of practical skills, discipline, and job description – That’s the realm of … information architecture and UX.

Net/Net: Programming is what developers do. Coding is what we UX-er’s do.

What is Code?

Okay, so – just for starters – Waddaya mean by “code”?

Especially when talking with recruiters, I differentiate between “coding” (which I do a lot of) and “programming” (which I don’t do so well).

  • HTML, CSS, and XML are all codesets. They’re mostly used to tag and identify things. They’re definitely in the baliwick of UX.
  • PHP, JSP and ASP are all “coded” programming languages. They are ‘coded’ (as all languages are) but their purpose and rendering is substantially different.

HTML, CSS, XML:  more “information architecture-oriented”

PHP, JSP, ASP: more “engine-oriented”

Granted, it’s not necessarily a clear bright line.  jQuery and Javascript are a couple of coded languages that fall kind of in-between , since they tend to be more oriented to rendering “behavior” (a helpful UX skill).  In that arena, there’s a difference between “doing native programming” and “being able to use existing libraries”.

BTW:  There are fine progammers who should NOT be doing CSS structuring and naming – and whose HTML skills are marginal, at best.

For those recruiters who are hawking a jobreq which has “all of the above” as Required Skillsets, I ask

“Does your client want another Programmer-who-happens-to-be-a-UX-hobbyist or a UX-design-professional-with-information-code-skills-and-pretty-good-technical-chops”?

That said;  If you can’t grasp/deal with/manipulate the IA structure (i.e. the “coding” of the content)  – then how can you craft the UX?


Programming vs Design Perspectives

Programming view : Inside out

Design view : Outside in

…at least from a Machine Perspective  (which is pretty much the traditional IT view of the world)

To try to do both is either Very Enlightened or just plain Schizophrenic

© The Communication Studio