DEV Community

loading...
Cover image for Are you actually good at CSS?

Are you actually good at CSS?

ageekdev profile image AGEEK Originally published at ageek.dev ・Updated on ・3 min read

According to State of CSS 2020, at least 61% developers rated themselves as CSS experts as following proficiency scales:

  • None: Virtually no knowledge of CSS
  • Beginner: Using CSS frameworks and tweaking existing styles
  • Intermediate: Knowing specificity rules, being able to create layouts
  • Advanced: Mastering animations, interactions, transitions, etc.
  • Expert: Able to style an entire front-end from scratch following a consistent methodology.

Are you actually good at CSS after years of styling websites? Developers tend to assess themselves good at something after years using it because the illusion of equalizing experience with knowledge.

I used to interview many developers for my company and I was shocked when modern developers rarely learn anything inside-out or read a book from cover to cover. They need something, they search it, read some tutorials, follow the instructions, finish the tasks, and call it a day.

Many popular tech twitters often tweet like "After [x] years of doing [y] I'm still searching [z]" or "It’s all about knowing how to figure it out and look it up." to lower the expectation. Popularity doesn't mean expert, but the followers often expect so.

You'll be amazed by the fact that CSS is actually easy to pick up but hard to master. Same with Git and Bash. The reason behind all of this is we learn and use different language categories in different ways:

  • General purpose programming languages (Java, JavaScript, Python, etc.): They are used to solve problems in many domains by allowing users writing arbitrary logics using common concepts (types, operators, loops, functions, classes, etc.) Learning one language will translate very well to another even they have different syntax but most likely share above common concepts.

  • Domain specific programming languages (HTML, CSS, SQL, etc): They expressively solve specific goals mostly by combining constructs (rules, keywords, APIs, shorthands, etc.). The more features they want to support, the more constructs they add.

There are jokes around writing domain specific programming languages is not programming. People do respect a general purpose language like Javascript more to learn it inside-out, and consider CSS as ignorable already-working-just-fine stuff.

A domain-specific language like CSS is easy-to-learn and straightforward to get started, you only need a small set of its constructs to be productive on daily basis. Imagine how many times in a year you actually do following CSS stuff:

  • Manually write fancy animations, transitions, or transforms
  • Manually calculate selector specificity
  • Manually write fancy hover effects
  • Manually write fancy border styles
  • Manually debug broken styles on devtools

Majority of the time of writing CSS, you often just write basic layouts and styles. Anything more complicated than that you'll use libraries, frameworks, or copy some code snippets elsewhere.

CSS syntax is simple and there are only a few key CSS concepts. The hard part is memorizing hundreds of CSS properties/values and explicit/implicit meanings behind them. Even if you try to remember tons of them, you'll forget eventually.

There is no official CSS documentation for public users, the best you can find are tons of module specifications written for browser vendors and some online learning resources here and there.

Will you ever be actually expert at CSS? I think 99% frontend developer will be at intermediate-level for life without ever wanted or needed to push forward pass that level unless you're doing CSS-heavy tasks like developing CSS libraries, CSS frameworks, CSS books, or web browsers.


Originally published at ageek.dev as part of online book Advanced CSS.

Discussion (13)

Collapse
riyanagueco profile image
Riri

CSS was the first thing I learned about building websites (yes, even before HTML, thanks Tumblr πŸ˜‚), and after years and years of playing around with it I'd say I'm still at Intermediate. I know enough to know what's wrong with an element's styling without having to look it up or debug it (most of the time at least), but I haven't played around enough with animations to say I'm an Advanced CSS developer.

I get your point with the fact that most developers don't treat CSS as something worth learning in depth, I had a hard time trying to make myself learn a language more "useful" than CSS because CSS is rarely on any "must-learn languages" list. But now I know there are people out there just as interested in CSS as I am and that's amazing! 😁

Collapse
ageekdev profile image
AGEEK Author

Contributing to CSS tooling projects and you'll be good at both CSS and JavaScript/Typescript 😁

Collapse
pris_stratton profile image
pris stratton

I think CSS is rewarding if you sit down and really go in depth with it. The O’Reilly book β€œDefinitive Guide to CSS” is a fantastic way to gain a deeper understanding in my opinion, but it requires patience and, in my case at least, a lot of note taking to keep up.

Collapse
ageekdev profile image
AGEEK Author

Definitely, I'm always amazed at beautiful crafted websites and eager to inspect how they do it with CSS.

Collapse
alvaromontoro profile image
Alvaro Montoro • Edited

Maybe it was just me, but when the survey was running, i got the impression that most of the people sharing and promoting it were people with a CSS-focus and expertise. I don't know how widespread the survey was and that would explain the skewed (no pun intended) results.

Collapse
ageekdev profile image
AGEEK Author

It seems like that but we'll never know for sure, hopefully more insights next year.

Collapse
afif profile image
Temani Afif

And what you call someone who build a Sudoko game using only CSS? css-tricks.com/generating-and-solv...

Collapse
ageekdev profile image
AGEEK Author

I might not cover all the cases where someone is expert at CSS, the only point I want to make is about self assessment of our CSS proficiency.

Collapse
ssimontis profile image
Scott Simontis

Nope and I am quite fine with it, I strongly prefer backend development and cloud architecture.

Collapse
nefomemes profile image
Collapse
pshuffle profile image
Thomas Shepard

I'm definitely not! But trying to get better by reading post on here.

Collapse
ageekdev profile image
AGEEK Author

happy reading πŸ€“

Collapse
aalphaindia profile image
Pawan Pawar

Keep sharing!!

Forem Open with the Forem app