"CSS is dramatically more difficult than learning assembly language" [audio]

Claims that learning CSS is “dramatically more difficult” than learning assembly language trigger a broader examination of what makes technologies hard to master. Commenters contrast assembly’s small, logical instruction sets and need for deep hardware understanding with CSS’s sprawling, historically accreted layout model, edge cases, and browser quirks, especially around layout, cascading, and inconsistencies. Many argue difficulty is highly context- and experience-dependent, noting that modern tooling, better specs, and focusing on core concepts like the box model, flexbox, and grid can make CSS manageable, while others still find its behavior opaque enough to avoid front-end work entirely.

Difficulty: CSS vs Assembly

  • Many find assembly conceptually logical but tedious; CSS feels inconsistent and “unintuitive,” especially for layout.
  • Others argue assembly is clearly harder overall: many ISAs, need hardware understanding, poor abstractions, verbose control flow.
  • Some say the comparison is misleading: “assembly” is many different languages; CSS has one spec; they solve orthogonal problems.
  • Several commenters who know both say they personally find CSS harder; others say the opposite and prefer CSS’s rapid visual feedback.

Sources of CSS Complexity

  • Major pain points: box model, display modes, flexbox/grid mental models, positioning and stacking contexts, margin/padding rules (e.g., margin auto, margin collapse), and text overflow.
  • CSS behavior differs by element type (e.g., width on span, default link colors vs inherited font-size), which feels inconsistent to many.
  • Historical baggage: early browsers, floats-as-layout, vendor prefixes, hacks for old IE created a reputation of “voodoo” and trial‑and‑error.
  • Some argue CSS is “reverse engineered from desired output” and legacy print/document assumptions, leading to many edge cases.

Tooling, Debugging, and Practice

  • Browser dev tools are seen as essential. Most people, even experts, iteratively tweak in the browser rather than writing perfect CSS from scratch.
  • Visual, incremental feedback makes CSS more approachable than assembly for some; others still can’t mentally predict layouts reliably.

Design, Scope, and Maintainability

  • Cascading and global scope can produce fragile, tangled styles (deep selectors, !important, overrides).
  • Recommended practices mentioned: small, clear selector scopes (ids/classes), CSS modules, using flexbox/grid for layout, and avoiding “grand unified” selector chains.

Learning CSS Today

  • Suggested approach: skip frameworks at first; learn core layout (block/inline, flexbox, grid), selectors, and the cascade.
  • Tailwind and preprocessors (Sass) are framed as tools to use after fundamentals, not replacements for them.
  • Hands-on methods: inspect and tweak existing pages, reproduce designs, build small layouts from scratch, use curated guides and tutorials.