
The great divide - sheldor
https://css-tricks.com/the-great-divide/
======
yuchi
I’m gonna put here a timid «I call bs on this».

First of all: HTML+CSS is indeed pretty complex. When you care for A11y,
Responsiveness, Performance, Maintenability, complexity rises as a cartesian
product.

But if you introduce interactions, the complexities rise by orders of
magnitude.

To keep up with those complexities, you need to have a strong engineering
background in concurrent/event-driven programming. Because that’s what a UI
is.

So a HTML+CSS developer is all good till they need to add a dropdown, or any
interactive component. Then you either know how to manage that complexity, or
you’re gonna introduce technical dept to the project (or just pass
responsibility).

In reality, what I saw, is that developers focused on front-end usually can
perfectly learn on the spot what they need to keep their HTML+CSS accessible
or responsive. When they have a knowledge gap is usually for past disinterest.

On the other hand, HTML+CSS developers usually have a hard limit when talking
about interaction.

So, when I’m searching for developers, I look for the skill super-set, because
I can make a HTML+CSS dev out of a FE dev, not the opposite.

~~~
khalilravanna
I think you're right that being _really_ good at HTML/CSS/design is hard AND
being really good at writing complicated UI code in JS is hard. They're both
hard problems (or can be!). Where I disagree is that moving from an expertise
in one to another is asymmetric (JS -> HTML/CSS [easy], HTML/CSS -> JS
[hard]). I think it just depends on a person's interests. Some people really
only care about the complicated logic so they'll stick to the JS side of
things. Some really only care about design and visual aspect so they'll stick
to HTML/CSS. Some people can do both very well. And of course there's a
million permutations in between. What matters the most I think is whether a
person's interested. If a person is interested they'll learn anything
eventually. That and likely they'll learn it better than someone who's not
interested who's had more time/experience.

I think when you're going to hire someone you should try and screen for
interest in the things you need them to do. That and screen for a proven
ability to learn things quickly (cognitive ability). That or you take a
calculated risk when hiring.

~~~
yuchi
My comment a little bit rushed. What I meant is not that an HTML+CSS dev
_cannot_ move to the other side, but that the frontend developers I saw in the
last ten years falled in the one of the two categories. Those willing to move
to UI/app development already did — or are vocal about wanting to do it.

Totally quote on hiring.

------
thaumaturgy
It's insane to me that CSS and web layout et. al. has become so complex that
it's being described as _engineering_.

This seems to further be a confusion between _design_ \-- that is, the blank-
slate, unfettered artistic approach to a user interface -- and _design_ as in
the architecture of the software that makes it possible for the art to
function in a usable way.

Those are two quite different skillsets and I can't imagine there are very
many developers who are very strong at both.

~~~
soared
It only makes sense that its become so complicated though. With millions of
websites and different use cases something simple would never suffice. So many
people need to use it in so many different ways (compared to 20 years ago)
that it was forced to become complicated.

------
s3nnyy
Tech recruiter here. From all software engineering profiles, frontend is
indeed the hardest to match because the variety of skills is so big. On the
one end you have JQuery people who are stuck in 2002, on the other hand you
have people like Dan Abramov.

~~~
devmunchies
and on the other hand you have engineers who stopped caring about the
technologies and started prioritizing performance, reliability, resilience,
etc.

It took me 5 years to realize that "bleeding edge" != "best practice".

~~~
jasim
Gatsby uses GraphQL and React to generate a static website. I muttered angrily
at it everytime some data was not available in the page because I forgot to
update the GraphQL query.

It is just a static website for crying out loud.

But once I got around it, it gave me a score of 100 in performance and 80 in
SEO just out of the box. Images are resized and inlined if need be; critical
CSS is rendered first; the plugins added niceties like default anchor link in
Github. And I could use React components to organize everything, which is a
much more ergonomic way of doing reusable markup compared to server-side
things like Rails partials.

I would've needed to spend weeks if I had to get here from scratch. Gatsby is
bleeding edge and it does best practices - including performance better than
most other static site generators. I think the web is only moving forward -
there is cambrian explosion of new untested and often ill-thought ideas, but
the good ones will survive in the long run.

~~~
devmunchies
Hmmm... interesting. We are using something similar
([https://nextjs.org/](https://nextjs.org/)) on our marketing site and our
performance is a single digits on lighthouse.

~~~
timneutkens
By default Next.js scores 100/100 on performance and best practices eg
[https://nextjs-3q3i4heaj.now.sh/](https://nextjs-3q3i4heaj.now.sh/) (SEO /
Accessibility are not 100 as I didn't add meta tags in this example, but are
very trivial to add.)

In case of Invision it seems like images / render blocking css that was added
outside of Next.js are the main culprit. I've reached out to Jon Wheeler who
works on the marketing site to make him aware.

------
CM30
Can't agree more with this. Nowadays, it's hard to tell what anyone wants from
a front end developer any more, and there have definitely been a few jobs I've
interviewed for where they wanted one type while the description was seemingly
tailored to the other.

I'd also this is why Gutenberg isn't a great idea for WordPress, and why it
feels the software's going the wrong direction. It's trying to aim at the
Airbnb/Netflix/Facebook/Google crowd writing SPAs in React and what not,
whereas its actual audience are the traditional web developers, agencies and
deisgners using standard HTML, CSS and a bit of JavaScript and PHP.

Also a few interesting articles linked there that need posting here
individually...

------
myguysi
It seems like traditional craftspeople (e.g. woodworking) worked directly with
the medium they designed for. AFAIK industrial designers are heavily involved
in creating/production their products.

As a developer turned designer I can’t understand how anyone can design for
the web and not know how to write HTML and CSS.

There’s always going to be grey area but I don’t think you should need an
CS/engineering degree to build a UI.

------
creamyhorror
Surely someone with HTML+CSS skills and a strong focus on layout, user
experience and accessibility counts more as a "designer" than a
"developer/engineer"? Something akin to the old term "web designer", who might
have dabbled in Javascript but worked mostly with HTML+CSS.

In contrast, the terms "developer" and "engineer" definitely have a stronger
implication of programming being a major element of the job. Though nowadays
on React-using sites, designers might have to work with JSX and JS directly,
causing an even greater crossover of the roles.

~~~
pathartl
I've seen designer used mostly to reference UI designers who primarily work in
non-code.

------
porphyrogene
It seems to me that everyone is trying to normalize terminology and job titles
instead of normalizing skills and disciplines. Why not read a book or follow a
tutorial? Anyone can learn CSS from zero to expert in a week. Instead we spend
time giving ourselves a new title that is just the right mix of accurate and
ego-stroking.

~~~
juddlyon
"Anyone can learn CSS from zero to expert in a week"

I've never seen anybody pick it up that fast. Even the best students coming
out of multi-month frontend bootcamps aren't at an expert level.

~~~
porphyrogene
They do not teach CSS at any bootcamps as far as I know. It is considered too
easy to waste time on in a bootcamp.

~~~
vanadium
> Anyone can learn CSS from zero to expert in a week.

Maybe the (highest level of) basics, but as someone who's been in the industry
21 years and manages all hiring for front-end, the one area of front-end that
everyone seems to think is easy but also one of the rarest skills to find on
the market is someone who actually understands the finer points of CSS, like
why one would use "font-display: swap" in the context of performance, the
performance implications of complex CSS on mobile devices, CSS methodology
rationale, accessibility implications of using X vs Y, best way of delivering
CSS to accelerate the "Start Render" metric, etc.

------
nadam
I am wondering whether this is also a problem in game development or not. In
game development to create a game often you need an even more broad skillset
in your organization than in web frontend developemnt. Can frontend
development learn from game development when defining the roles?

~~~
Qwertystop
UI is roughly gamedev's equivalent of the HTML/CSS part of "front-end
development", and within my experience, UI is one of the more common places
for games to have problems.

------
kamikazekazoo
Seems like people just want someone to do everything for cheap to me.

------
enginaar
What's the argument to call designers developers?

