I've worked with a number of brilliant UI/UX designers who use CSS+HTML as tools. But I don't think you can expect proficiency in a few tools alone to make you valuable.
It's kind of like saying, "I'm skilled with calculators." Vs. "I'm a mathematician."
The full-time UI/UX designers I've worked with in my last few jobs have never meaningfully wielded JavaScript to do their jobs. In some cases there's a little hacking for prototypes, but never any production coding.
Do you think it's a bottleneck for them to not understand JS? What they design and produce using JS (mockups and prototypes for testing) won't be passed on to production anyway. Or do you have a different experience?
The bottleneck we experience is that we lack design capacity to keep up with our engineering capacity. Thus is the plight of a startup I suppose, maybe? Obviously I'm a very limited sample of experience but I've yet to think that we could be doing better if my designers knew JS.
Here's the thing: despite what JS fans will tell you, you can make visually appealing, quick-loading, useful page/site with just HTML+CSS(+images/svgs etc) client side.
You don't need JavaScript.
The reverse isn't true. You can't make a page out of just JavaScript. Even if JS builds your DOM and builds the styles for it (because hey, crazy people have crazy ideas) the DOM and styles are still HTML + CSS. You still need to know what the JS should build.
> The reverse isn't true. You can't make a page out of just JavaScript. Even if JS builds your DOM and builds the styles for it (because hey, crazy people have crazy ideas) the DOM and styles are still HTML + CSS. You still need to know what the JS should build.
Not exactly true. Some frameworks (like DHTMLX) allows one to generate forms, pages, images and even complex UI layouts with just code and without a single line of html or css.
That javascript still must, at some point, no matter how complex, abstract or fancy it is, either call document.createElement or element.innerHTML.
Although I concede it's arguable whether or not this still counts as "just javascript," it's still true that, in the end, you wind up with just HTML, either machine generated or human generated.
I have a habit of hiring entry level folks for CSR work. Generally not much coding experience. Those that grow to want to contribute to our WebApp I start with HTML+CSS. Asking them to redesign screens, or modify/tweak the UX. It's a great way to start and many times their contributions make it in production. This creates a positive feedback loop. Nearly everyone expands to some scripting language after that (JS, bash, PHP, python).
My goal is to train them all up on coding but if you "only" know HTML+CSS there is still room - or rather an open door to more.
I was so on-board at the beginning - yes, html and css skills are undervalued.
And then the essay tried to generalize the lack of respect for HTML/CSS specialists as an example of lack of respect for specialists compared to full-stack devs. This is where I think the essay took a wrong turn.
The technical community has tremendous respect for backend or math specialists. Now more than ever, ML and data science is cool. High performance is cool. Security and cryptography are cool. Etc.
But HTML and CSS? There is a general attitude that they're "easy" and javascript is "harder". But writing good HTML and CSS should be considered one of the highest art forms. Good HTML and CSS makes the end user go "wow, this is nice and clean" and makes the javascript developer go "wow, this is nice and clean". Achieving both of these is so fricking hard!
Only true as of language. If you're doing websites you get to learn idiosyncrasies of browsers, DOM manipulation, asynchronous design, performance considerations, etc. That on top of how HTML and CSS is laid out and converted to DOM.
Which is as hard if not harder.
Javascript is not easy to learn. Many language quirks, and doing anything fancy with asynchronous code will require an understanding of closures, functional programming, and perhaps promises.
I don't understand why the author is so surprised about the reaction of her audience, who would not hire someone who just does HTML + CSS. In particular, I totally disagree with this paragraph:
> I understand the desire to have people who can do a lot of things. What I don’t understand is why it’s okay if you can “just write JS”, but somehow you’re not good enough if you “just write HTML and CSS”.
_Writing_ JavaScript is programming. Writing HTML and CSS is not. Programming is several orders of magnitude harder than writing markup languages. Most of the time HTML and CSS are just tools to show the results of something else, they're auxiliary technologies, just like XML. You wouldn't hire a _XML & DTD writer_, you expect a programmer to know (or have heard of) XML.
Anyone who blindly and directly compares "Just writing JS" with "just writing HTML and CSS" is short-sighted.
Actually, I'd trade any day wrestling with HTML + CSS for a day writing javascript. HTML + CSS are both less powerful and significantly more difficult to produce good results in than any programming language I've worked in. It's bad + worse.
But I bet you can render data out using html snd given a design you can get that html reasonably close with just some sweat and little stackoverflow trips.
I'm not a code monkey, and neither is a designer. "Given a design" is the begging the question part. Who's design? Probably someone who only knows HTML and CSS.
What a colossal waste of time and money. Programmers are expensive and shouldn't waste their time pushing pixels when someone half the price can do it in half the time.
What does designing have to do with writing HTML and CSS? I know a lot of guys who know HTML and CSS from head to toe yet they couldn't find for the life of them two matching colors to build a design.
I know multiple css-only guys, employed and valued. None of them can do more then minimal js. They all have tons of work and we lobby employer for more of them.
It seems to be harder to find someone good in css and able to style things well and able to communicate with customers then someone able to write js.
Making UI look good is not auxialliry. It is something developers tend to sux at and it is quite core to the success. And also, css is not easy. It is hard to learn, especially to programmers who like things systemic and predictable.
Of course "Making UI look good is not auxiliary", I agree with that, but you're talking about design, and the article is talking about people who _just code_ HTML & CSS. Those are two totally different things.
Just about half our marketing team knows how to write HTML and CSS. They learned it because they found out the developers who too backed up to get their landing pages and such done on the schedule they needed.
But those people also know marketing...
I can't imagine finding enough work for someone with just HTML and CSS to fill a 40 hour week. Especially since most content these days is generated by CMS systems and WYSIWYG editors. And there is only so much work in boilerplate.
So to me the problem is not that they are not valuable skills but that they make up such a small portion of what needs to be done.
Although I'm sure at some other companies this is not true.
Not that I agree that "HTML + CSS" only workers are improperly valued less than JS coders, but one reason that might explain if this were the case could be because the technology job market isn't as rational or merit-based as some assume. Instead it's festooned with the same cult-of-X (where "X" is "technology", "framework", etc.) bandwagoning effect many practitioners of programming mock other fields for having.
There's no reason, as I see it, to think that an "arbitrage" of this sort couldn't persist for some time (years/decades) in this industry: it's too insular and full of itself in many respects.
For the state of the industry comment: quite high. Developers think too highly of themselves, their ability to reason (in general), and assume unjustifiably that this industry is somehow more merit-based and rational than others.
For the particular arbitrage you describe: next to none. I know enough JavaScript and enough webdevs to know I don't care to know any more. I'll stick with data engineering, computational research, and systems programming, thanks very much.
Now to put my comment into context : I'm self taught.
I can now code quite comfortably in: c#, python, html, css, JavaScript, php, MySQL queries and can learn most frameworks fairly quickly. (Infact I probably missed a few things I have played with over the years).
Point being: if you can code htnl/css, from my point of view, it isn't such a stretch to learn a more formal language is it?
(I did start with Qbasic and vb though, so I may be coming at this from the wrong direction?)
Edit: after reading some more of these comments I can almost understand, but wouldn't someone who was able to show how they could work with htnl/css show at least a basic understanding at a technical level and be worthwhile at an entry level position?
> Point being: if you can code htnl/css, from my point of view, it isn't such a stretch to learn a more formal language is it?
No, it isn't, if that's your thing.
Personally, there are days I regret being a programmer and wish I had just stuck with being a designer. Usually, it's the point where I'm struggling to come up with something unique or distinctive.
Or when I realize that if I'd focused more on design, then I might be amazing at it, rather than mediocre at design and programming.
For those of us who remember the Web of the 1990's, HTML was supposed to be a simple markup language to allow ordinary folks to design websites.
I guess it turned out that non-professional website authors went with WYSIWYG editors (anybody remember Netscape Composer and Dreamweaver?) -- and today they've given up on entirely on creating their own site and just use hosted solutions like Facebook or Medium.
On the other hand, professional websites and their customers ended up deciding to create increasingly bulky, JS dependent monstrosities.
How can we get back to simple HTML websites without alienating users who've grown used to modern design, developers who insist on using Javascript even when it's unnecessary, and businesspeople who can't live without bars, videos, and ads?
Look into the JAMstack. This is precisely what they are doing. In essence, it's having a static front-end markup, leveraging API's for all your heavy lifting needs, and utilizing JS when needed to make your sites interactive or reactive.
Here's a great talk on the principles of the JAMstack by one of the leaders in the field, Matt Biilmann, CEO of Netlify. He covers the essentials in about 5 minutes, but the rest of the 19 minute talk is worth listening to https://www.youtube.com/watch?v=c5UEHm8Kets
I have been hired few times to just write HTML and CSS. I am really knowledgeable about Javascript, but for some projects the hiring company (some of which you know) just needed those bits so I provided those. When a company is looking for advanced animations and transitions, with a big budget and fine attention to detail they hire specifically for this. Of course this is not so common, and I wouldn't expect the owners of these kind of companies to be in a random web dev conference, but there are some around.
I think there's a general desire for a single employee to do all the things because it's easier to put "all the things" in a job description than to set up an environment in which specialists effectively interact. My employer, for one, has taken it to an extreme in making incentives such that one should have the necessary domain knowledge to find a problem to solve without being told what to work on, then go build the thing from the ground up.
Our company hired a guy who literally just wrote CSS, and it was an awesome hire.
He had instinct for how the layout engine will do best, how to make really clean and reusable structures, how to get smooth animations running. This instinct was totally infectious. It had an impact on our culture around CSS (taking it seriously and doing it right the first time) in the same way that having someone who really knows logging, or concurrency, or db transactions, can really make an impact if they're there near the start.
Along the way lots of people assumed he knew JS, which if anything probably enforces the article's point. But before us he was just a smart guy whose side projects involved reskinning CMS sites and making cool CSS animations.
After a year of avoiding it he did start writing JS, and being honest, our app is pretty unique for needing that much love at that level — A year of time just doing structural, design, and layout changes is totally not warranted, almost anywhere.
However, I think there _is_, often, a false hierarchy that tends to build up among developers, where somehow, all server work >>> all JS programming >>> all design thought. This cultural "legitimacy" ranking, at best, leads to people letting horribly incoherent styling pass code review without a second thought. At worst it means high turnover in the people at the "bottom" of that totem pole who feel disrespected. As someone who spends 80% of his time on the server side I think this is an important bias to be aware of.
Eh, there's definitely some value in it. Despite a lot of web agencies and startups focusing more on Javascript frameworks and whatever programming language is in vogue at the moment, there's also a 'low end' web development world which just delivers simple sites and projects.
Like say, the freelancers who sell premade WordPress themes with the logo and content swapped out. Or smaller agencies that are pretty much either pure HTML/CSS or HTML/CSS as a WordPress theme with no custom functionality besides premade plugins.
These folks are less common at events (hence the lack of response to the article author), but they definitely exist out there.
There's also obviously people who do HTML/CSS as part of a different role (like say, desugn or marketing), or those few unlucky souls stuck doing nothing but email templates.
So there are jobs out for people who specialise in purely HTML and CSS, as well as opportunities to made in the market. They're just nowhere near as glamorous or high paying as say, working at a large tech company.
On another note, I definitely agree with the article point about how expecting people to 'know everything' can be worse than letting them focus on something they're good at. Way too many job descriptions ask for 'experience' like:
In depth knowledge of HTML, CSS, Javascript, React, Node.js, Angular,PHP, MySQL, Python, Ruby on Rails, Go, Perl, ColdFusion, WordPress, Drupal, Magento, SEO, content writing, server configuration and tea making.
Not sure who exactly is that generalist, but they probably wouldn't have much actual knowledge about any of those things.
It's extremely rare to find someone who don't do JS but is also actually good at HTML+CSS, as in usable markup and styles. But I'd hire that person if I found him.
41 comments
[ 3.4 ms ] story [ 102 ms ] threadIt's kind of like saying, "I'm skilled with calculators." Vs. "I'm a mathematician."
The full-time UI/UX designers I've worked with in my last few jobs have never meaningfully wielded JavaScript to do their jobs. In some cases there's a little hacking for prototypes, but never any production coding.
You don't need JavaScript.
The reverse isn't true. You can't make a page out of just JavaScript. Even if JS builds your DOM and builds the styles for it (because hey, crazy people have crazy ideas) the DOM and styles are still HTML + CSS. You still need to know what the JS should build.
A backend programmer.
(Doing big things in JS right now is still asking for trouble.)
Not exactly true. Some frameworks (like DHTMLX) allows one to generate forms, pages, images and even complex UI layouts with just code and without a single line of html or css.
Although I concede it's arguable whether or not this still counts as "just javascript," it's still true that, in the end, you wind up with just HTML, either machine generated or human generated.
I'm not saying this is a perfect situation, but the truth is that html and css skills are somewhat less valuable for a web developer nowadays.
Just an example, this UI takes 35 lines of javascript code to be created using DHTMLX:
https://dhtmlx.com/docs/products/visualDesigner/live/?previe...
for those who want to play around:
https://dhtmlx.com/docs/products/visualDesigner/live/#c403w3
My goal is to train them all up on coding but if you "only" know HTML+CSS there is still room - or rather an open door to more.
It's just one rung on a mobius type ladder.
And then the essay tried to generalize the lack of respect for HTML/CSS specialists as an example of lack of respect for specialists compared to full-stack devs. This is where I think the essay took a wrong turn.
The technical community has tremendous respect for backend or math specialists. Now more than ever, ML and data science is cool. High performance is cool. Security and cryptography are cool. Etc.
But HTML and CSS? There is a general attitude that they're "easy" and javascript is "harder". But writing good HTML and CSS should be considered one of the highest art forms. Good HTML and CSS makes the end user go "wow, this is nice and clean" and makes the javascript developer go "wow, this is nice and clean". Achieving both of these is so fricking hard!
Of course it is easy to produce toy projects.
> I understand the desire to have people who can do a lot of things. What I don’t understand is why it’s okay if you can “just write JS”, but somehow you’re not good enough if you “just write HTML and CSS”.
_Writing_ JavaScript is programming. Writing HTML and CSS is not. Programming is several orders of magnitude harder than writing markup languages. Most of the time HTML and CSS are just tools to show the results of something else, they're auxiliary technologies, just like XML. You wouldn't hire a _XML & DTD writer_, you expect a programmer to know (or have heard of) XML.
Anyone who blindly and directly compares "Just writing JS" with "just writing HTML and CSS" is short-sighted.
Hey, let's be fair here. I'm a great programmer, but I can't design worth beans. They're totally different skills.
You still need someone to translate it into a website. Whether they can handle JS is secondary.
It seems to be harder to find someone good in css and able to style things well and able to communicate with customers then someone able to write js.
Making UI look good is not auxialliry. It is something developers tend to sux at and it is quite core to the success. And also, css is not easy. It is hard to learn, especially to programmers who like things systemic and predictable.
But those people also know marketing...
I can't imagine finding enough work for someone with just HTML and CSS to fill a 40 hour week. Especially since most content these days is generated by CMS systems and WYSIWYG editors. And there is only so much work in boilerplate.
So to me the problem is not that they are not valuable skills but that they make up such a small portion of what needs to be done.
Although I'm sure at some other companies this is not true.
Why would the obvious arbitrage persist?
There's no reason, as I see it, to think that an "arbitrage" of this sort couldn't persist for some time (years/decades) in this industry: it's too insular and full of itself in many respects.
If it's high, can't you think of some way of capturing the arbitrage? Perhaps starting a company that employs HTML+CSS wizards?
For the state of the industry comment: quite high. Developers think too highly of themselves, their ability to reason (in general), and assume unjustifiably that this industry is somehow more merit-based and rational than others.
For the particular arbitrage you describe: next to none. I know enough JavaScript and enough webdevs to know I don't care to know any more. I'll stick with data engineering, computational research, and systems programming, thanks very much.
I can now code quite comfortably in: c#, python, html, css, JavaScript, php, MySQL queries and can learn most frameworks fairly quickly. (Infact I probably missed a few things I have played with over the years).
Point being: if you can code htnl/css, from my point of view, it isn't such a stretch to learn a more formal language is it?
(I did start with Qbasic and vb though, so I may be coming at this from the wrong direction?)
Edit: after reading some more of these comments I can almost understand, but wouldn't someone who was able to show how they could work with htnl/css show at least a basic understanding at a technical level and be worthwhile at an entry level position?
No, it isn't, if that's your thing.
Personally, there are days I regret being a programmer and wish I had just stuck with being a designer. Usually, it's the point where I'm struggling to come up with something unique or distinctive.
Or when I realize that if I'd focused more on design, then I might be amazing at it, rather than mediocre at design and programming.
But that's me. You do you.
I had assumed anyone that bothered to learn html/css would be interested in coding in general though.
I guess it turned out that non-professional website authors went with WYSIWYG editors (anybody remember Netscape Composer and Dreamweaver?) -- and today they've given up on entirely on creating their own site and just use hosted solutions like Facebook or Medium.
On the other hand, professional websites and their customers ended up deciding to create increasingly bulky, JS dependent monstrosities.
How can we get back to simple HTML websites without alienating users who've grown used to modern design, developers who insist on using Javascript even when it's unnecessary, and businesspeople who can't live without bars, videos, and ads?
https://jamstack.org/
Here's a great talk on the principles of the JAMstack by one of the leaders in the field, Matt Biilmann, CEO of Netlify. He covers the essentials in about 5 minutes, but the rest of the 19 minute talk is worth listening to https://www.youtube.com/watch?v=c5UEHm8Kets
He had instinct for how the layout engine will do best, how to make really clean and reusable structures, how to get smooth animations running. This instinct was totally infectious. It had an impact on our culture around CSS (taking it seriously and doing it right the first time) in the same way that having someone who really knows logging, or concurrency, or db transactions, can really make an impact if they're there near the start.
Along the way lots of people assumed he knew JS, which if anything probably enforces the article's point. But before us he was just a smart guy whose side projects involved reskinning CMS sites and making cool CSS animations.
After a year of avoiding it he did start writing JS, and being honest, our app is pretty unique for needing that much love at that level — A year of time just doing structural, design, and layout changes is totally not warranted, almost anywhere.
However, I think there _is_, often, a false hierarchy that tends to build up among developers, where somehow, all server work >>> all JS programming >>> all design thought. This cultural "legitimacy" ranking, at best, leads to people letting horribly incoherent styling pass code review without a second thought. At worst it means high turnover in the people at the "bottom" of that totem pole who feel disrespected. As someone who spends 80% of his time on the server side I think this is an important bias to be aware of.
Like say, the freelancers who sell premade WordPress themes with the logo and content swapped out. Or smaller agencies that are pretty much either pure HTML/CSS or HTML/CSS as a WordPress theme with no custom functionality besides premade plugins.
These folks are less common at events (hence the lack of response to the article author), but they definitely exist out there.
There's also obviously people who do HTML/CSS as part of a different role (like say, desugn or marketing), or those few unlucky souls stuck doing nothing but email templates.
So there are jobs out for people who specialise in purely HTML and CSS, as well as opportunities to made in the market. They're just nowhere near as glamorous or high paying as say, working at a large tech company.
On another note, I definitely agree with the article point about how expecting people to 'know everything' can be worse than letting them focus on something they're good at. Way too many job descriptions ask for 'experience' like:
In depth knowledge of HTML, CSS, Javascript, React, Node.js, Angular,PHP, MySQL, Python, Ruby on Rails, Go, Perl, ColdFusion, WordPress, Drupal, Magento, SEO, content writing, server configuration and tea making.
Not sure who exactly is that generalist, but they probably wouldn't have much actual knowledge about any of those things.